Policy Deployment#
QoS → PDPolicy Deployments
A brief introduction to QoS
Quality of Service (QoS) is a set of technologies and mechanisms used to manage traffic prioritization, often but not exclusively used in scenarios of network congestion. A full explanation of QoS is beyond the scope of this documentation, as the concepts are often as complex as the implementation of them on various network operating systems, along with chip-specific capabilities and limitations.
The PolicyDeployment is a resource that configures IngressPolicies and EgressPolicies on a node. It specifies which interfaces follow a particular QoS policy. For example, some interfaces could be connected to a "premium" service without traffic policers, while non-premium users have bandwidth restrictions. The PolicyDeployment decides which interfaces follow which rules.
Interface types
Some hardware platforms like SR OS have different QoS capabilities for network ports (connected to other routers) compared to access ports. The PolicyDeployment resource only supports QoS policies for access interfaces. The interfaceType parameter is ignored for now.
PolicyDeployment vs PolicyAttachment#
Some parameters like the queue mapping are configured for all subinterfaces on the interface: this is done by the PolicyDeployment resource.
Other parameters such as rewrite policies and classifiers are configured on the sub-interface level: this is done by the PolicyAttachment.
A PolicyAttachment automatically emits a PolicyDeployment as a derived resource.
Dependencies#
IngressPolicy#
The PolicyDeployment deploys QoS policies onto a node. If IngressPolicies are used, these must be created first.
EgressPolicy#
The PolicyDeployment deploys QoS policies onto a node. If EgressPolicies are used, these must be created first.
Referenced resources#
The PolicyDeployment does not reference any other EDA resources.
Examples#
apiVersion: qos.eda.nokia.com/v2
kind: PolicyDeployment
metadata:
name: edgesubinterface-my-datacenter
namespace: scale-across
spec:
ingressPolicy: edgesubinterface-ingress-my-datacenter
interfaces:
- dc1-leaf-1-ethernet-1-6
- dc1-leaf-1-ethernet-1-7
- dc1-leaf-2-ethernet-1-1
- dc1-leaf-2-ethernet-1-2
cat << 'EOF' | kubectl apply -f -
apiVersion: qos.eda.nokia.com/v2
kind: PolicyDeployment
metadata:
name: edgesubinterface-my-datacenter
namespace: scale-across
spec:
ingressPolicy: edgesubinterface-ingress-my-datacenter
interfaces:
- dc1-leaf-1-ethernet-1-6
- dc1-leaf-1-ethernet-1-7
- dc1-leaf-2-ethernet-1-1
- dc1-leaf-2-ethernet-1-2
EOF
Custom Resource Definition#
To browse the Custom Resource Definition go to crd.eda.dev.
PolicyDeployment
SPEC
PolicyDeploymentSpec defines the desired state of PolicyDeployment
-
Specifies an EgressPolicy to deploy on the specified Node.
-
Specifies the IngressPolicy to deploy on the specified Node.
-
Specifies a label selector to filter the interfaces on which to deploy the policies.
-
Used for platforms that differentiate between access/service interfaces and network interface. These platforms may require different classifiers depending on whether they are applied on access/service interfaces or network interfaces. Specifies whether the classifier should be configured as a service Egress classifier or network Egress classifier
enum: "Access", "Network" -
Specifies a list of Interfaces on which to deploy the policies.
-
Specifies a Node to deploy the policies on.
-
Specifies a label selector to filter the nodes on which to deploy the policies.
STATUS
PolicyDeploymentStatus defines the observed state of PolicyDeployment