NVIDIA Network Operator
When you enable the NVIDIA Network Operator cluster add-on, you can pass the following key/value pairs as arguments.
| Key (API and CLI) | Key's Display Name (Console) | Description | Required/Optional | Default Value | Example Value |
|---|---|---|---|---|---|
affinity |
affinity |
A group of affinity scheduling rules. JSON format in plain text or Base64 encoded. Not used by:
Possible equivalents:
|
Optional | null | null |
nodeSelectors |
node selectors |
You can use node selectors and node labels to control the worker nodes on which add-on pods run. For a pod to run on a node, the pod's node selector must have the same key/value as the node's label. Set JSON format in plain text or Base64 encoded. Not used by:
Possible equivalents:
|
Optional | null | {"foo":"bar", "foo2": "bar2"}The pod will only run on nodes that have the |
numOfReplicas |
numOfReplicas | The number of replicas of the add-on deployment. Not used by:
Possible equivalents:
|
Required | 1Creates one replica of the add-on deployment per cluster. |
2Creates two replicas of the add-on deployment per cluster. |
rollingUpdate |
rollingUpdate |
Controls the desired behavior of rolling update by maxSurge and maxUnavailable. JSON format in plain text or Base64 encoded. Not used by:
Possible equivalents:
|
Optional | null | null |
tolerations |
tolerations |
You can use taints and tolerations to control the worker nodes on which add-on pods run. For a pod to run on a node that has a taint, the pod must have a corresponding toleration. Set JSON format in plain text or Base64 encoded. Possible equivalents:
|
Optional | null | [{"key":"tolerationKeyFoo", "value":"tolerationValBar", "effect":"noSchedule", "operator":"exists"}]Only pods that have this toleration can run on worker nodes that have the |
topologySpreadConstraints |
topologySpreadConstraints |
How to spread matching pods among the given topology. JSON format in plain text or Base64 encoded. Not used by:
|
Optional | null | null |
| Key (API and CLI) | Key's Display Name (Console) | Description | Required/Optional | Default Value | Example Value |
|---|---|---|---|---|---|
operator.nodeSelectors |
nvidia-network-operator nodeSelectors | Node selectors on the NVIDIA Network Operator pods. | Optional | null |
|
operator.tolerations |
nvidia-network-operator tolerations | Tolerations on the NVIDIA Network Operator pods. | Optional | null |
|
nicClusterPolicy.tolerations |
nicClusterPolicy tolerations | Tolerations for DaemonSets managed by NicClusterPolicy. | Optional | null |
|
nicClusterPolicy.deploymentTolerations |
nicClusterPolicy deploymentTolerations | Tolerations for Deployments managed by NicClusterPolicy. | Optional | null |
|
operator.affinity |
nvidia-network-operator affinity | Affinity scheduling rules for NVIDIA Network Operator. JSON format in plain text. | Optional | null |
|
operator.resources |
nvidia-network-operator container resources | NVIDIA Network Operator resources control the resource limits and requests for the nvidia-network-operator container. JSON format in plain text. |
Optional |
|
|
operator.cniBinDirectory |
cniBinDirectory | CNI binary directory for NVIDIA Network Operator. | Optional | /opt/cni/bin |
|
operator.cniNetworkDirectory |
cniNetworkDirectory | CNI network directory for NVIDIA Network Operator. | Optional | /etc/cni/net.d |
|
operator.admissionControllers.enabled |
operator.admissionControllers.enabled | Enable admission controllers for NVIDIA Network Operator. | Optional | false |
|
sriovNetworkOperator.enabled |
sriovNetworkOperator.enabled | Enable the SR-IOV NVIDIA Network Operator. | Optional | false |
|
sriov-network-operator.operator.resourcePrefix |
sriov-network-operator.operator.resourcePrefix | Resource prefix for resources created by SR-IOV Network Operator. | Optional | nvidia.com |
|
sriov-network-operator.operator.admissionControllers.enabled |
sriov-network-operator.operator.admissionControllers.enabled | Enable admission controllers for SR-IOV Network Operator. | Optional | false |
|
sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors |
sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors | Configure configDaemonNodeSelector for sriovOperatorConfig. |
Optional |
|
|
vfCreationMode |
vfCreationMode | Mode for VF creation. Valid values are sriovNetworkOperator and custom. |
Optional | custom |
|
customizeVfCreationConfigMap |
customizeVfCreationConfigMap | Specify whether to skip creating the vf-shape-config ConfigMap. |
Optional | false |
|
skipNodeFeatureDiscoveryDependencyCheck |
skipNFDDependencyCheck | Skip the Node Feature Discovery dependency check. | Optional | false |
The following table describes considerations for configuring this cluster add-on in large clusters.
| Argument Name | Roles wrt number of Nodes | Description | As cluster size increases | Risks | Recommendation |
|---|---|---|---|---|---|
operator.nodeSelectors
|
Y |
Controls where the NVIDIA Network Operator pods are scheduled. |
|
If this argument is misconfigured:
|
|
operator.tolerations
|
Y |
Controls tolerations for the NVIDIA Network Operator pods and related DaemonSets. |
|
If this argument is misconfigured:
|
|
operator.affinity
|
Y |
Controls node-affinity rules for the NVIDIA Network Operator pods. |
|
If this argument is misconfigured:
|
|
operator.resources
|
Y |
Defines CPU and memory requests and limits for the NVIDIA Network Operator container. |
The operator coordinates networking resources across the cluster. As the number of nodes increases, it must process more objects, node-state changes, and reconciliation operations. The operator also relies on Node Feature Discovery labels to determine which nodes require networking components. |
If the resources are undersized:
|
|
operator.cniBinDirectory
|
N |
Controls the directory on nodes where CNI binaries are deployed. |
The CNI binaries must be deployed to the directory used by the container runtime. An incorrect path can affect many nodes at the same time. |
If this argument is misconfigured:
|
|
operator.cniNetworkDirectory
|
N |
Controls the host directory where CNI configuration files are deployed. |
The CNI configuration files must be placed in the directory read by the kubelet or container runtime. An incorrect directory can affect every node that uses the configuration. |
If this argument is misconfigured:
|
|
operator.admissionControllers.enabled
|
N |
Controls whether the NVIDIA Network Operator deploys its admission controller. |
The admission controller helps prevent invalid configuration from entering the cluster. This becomes more important when many users or automation systems create networking custom resources. |
If the admission controller is disabled:
|
|
sriovNetworkOperator.enabled
|
N |
Controls whether the SR-IOV Network Operator is deployed. |
The SR-IOV Network Operator provides the SR-IOV components required for virtual-function-based, high-performance networking, including some RDMA and GPUDirect RDMA configurations. |
If the SR-IOV Network Operator is disabled when required:
|
|
sriov-network-operator.operator.resourcePrefix
|
N |
Sets the prefix used for resources created by the SR-IOV Network Operator. |
The prefix determines the extended resource names that Kubernetes and workloads use. Changing the prefix requires all workload manifests to use the new resource names. |
If this argument is misconfigured:
|
|
sriov-network-operator.operator.admissionControllers.enabled
|
Y |
Controls the SR-IOV Network Operator admission controllers. |
The admission controllers detect invalid SR-IOV configuration before it reaches nodes and help keep virtual-function and NIC settings consistent as the number of node groups and policies increases. |
If the admission controllers are disabled:
|
|
sriov-network-operator.operator.sriovOperatorConfig.configDaemonNodeSelectors
|
Y |
Selects the nodes that the SR-IOV configuration daemon configures. |
The selector determines which nodes receive SR-IOV configuration. In a large cluster, an incorrect selector can affect hundreds or thousands of nodes. |
If this argument is misconfigured:
|
|
vfCreationMode
|
N |
Determines whether virtual-function creation is managed automatically by the operator or by custom logic. |
An automated and consistent virtual-function creation process reduces configuration differences between nodes. Custom creation logic provides more flexibility but increases the likelihood of inconsistent node configuration. |
If this argument is misconfigured:
|
|
skipNodeFeatureDiscoveryDependencyCheck
|
Y |
Determines whether the operator skips the Node Feature Discovery dependency check. |
Skipping the check avoids redundant dependency validation when Node Feature Discovery is managed separately. However, the cluster administrator becomes responsible for ensuring that the required node labels are available and remain correct. |
If this argument is misconfigured:
|
|