NicClusterPolicy Custom Resource Example

The following NIC Cluster Policy example contains all the sub-components that NVIDA Network Operator can deploy. This example should serve as a reference, it is not recommended to apply it as is to your cluster.

NOTE: Edit the example to contain only the required components for the target environment.

 apiVersion: mellanox.com/v1alpha1
 kind: NicClusterPolicy
 metadata:
   name: nic-cluster-policy
 spec:
   ofedDriver:
     image: doca-driver
     repository: nvcr.io/nvidia/mellanox
     version: 24.10-0.7.0.0-0
     upgradePolicy:
       autoUpgrade: true
       drain:
         deleteEmptyDir: true
         enable: true
         force: true
         timeoutSeconds: 300
       maxParallelUpgrades: 1
     startupProbe:
       initialDelaySeconds: 10
       periodSeconds: 10
     livenessProbe:
       initialDelaySeconds: 30
       periodSeconds: 30
     readinessProbe:
       initialDelaySeconds: 10
       periodSeconds: 30
   rdmaSharedDevicePlugin:
     image: k8s-rdma-shared-dev-plugin
     repository: ghcr.io/mellanox
     version: sha-4f3eb2224b8b5f97be3f17441ddee8d41753b7d5
     # The config below directly propagates to k8s-rdma-shared-device-plugin configuration.
     # Replace 'devices' with your (RDMA capable) netdevice name.
     config: |
       {
         "configList": [
           {
             "resourceName": "rdma_shared_device_a",
             "rdmaHcaMax": 63,
             "selectors": {
               "vendors": ["15b3"],
               "deviceIDs": ["101b"]
             }
           }
         ]
       }
   sriovDevicePlugin:
     image: sriov-network-device-plugin
     repository: ghcr.io/k8snetworkplumbingwg
     version: v3.8.0
     config: |
       {
         "resourceList": [
           {
             "resourcePrefix": "nvidia.com",
             "resourceName": "hostdev",
             "selectors": {
               "vendors": ["15b3"],
               "isRdma": true
             }
           }
         ]
       }
   secondaryNetwork:
     cniPlugins:
       image: plugins
       repository: ghcr.io/k8snetworkplumbingwg
       version: v1.5.0
     ipoib:
       image: ipoib-cni
       repository: ghcr.io/mellanox
       version: v1.2.0
     multus:
       image: multus-cni
       repository: ghcr.io/k8snetworkplumbingwg
       version: v4.1.0
       config: ''
     ipamPlugin:
       image: whereabouts
       repository: ghcr.io/k8snetworkplumbingwg
       version: v0.7.0
   nvIpam:
     image: nvidia-k8s-ipam
     repository: ghcr.io/mellanox
     version: v0.2.0
     enableWebhook: false
   ibKubernetes:
     image: ib-kubernetes
     repository: ghcr.io/mellanox/ib-kubernetes
     version: v1.1.0
     pKeyGUIDPoolRangeStart: "02:00:00:00:00:00:00:00"
     pKeyGUIDPoolRangeEnd: "02:FF:FF:FF:FF:FF:FF:FF"
     ufmSecret: ufm-secret
   nicFeatureDiscovery:
     image: nic-feature-discovery
     repository: ghcr.io/mellanox
     version: v0.0.1
   docaTelemetryService:
     image: doca_telemetry
     repository: nvcr.io/nvidia/doca
     version: 1.16.5-doca2.6.0-host