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/nvstaging/mellanox
    version: doca3.3.0-26.01-0.9.6.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: nvcr.io/nvstaging/mellanox
    version: network-operator-v26.1.0-rc.1
    # 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: nvcr.io/nvstaging/mellanox
    version: network-operator-v26.1.0-rc.1
    config: |
      {
        "resourceList": [
          {
            "resourcePrefix": "nvidia.com",
            "resourceName": "hostdev",
            "selectors": {
              "vendors": ["15b3"],
              "isRdma": true
            }
          }
        ]
      }
   secondaryNetwork:
     cniPlugins:
       image: plugins
       repository: nvcr.io/nvstaging/mellanox
       version: network-operator-v26.1.0-rc.1
     ipoib:
       image: ipoib-cni
       repository: nvcr.io/nvstaging/mellanox
       version: network-operator-v26.1.0-rc.1
     multus:
       image: multus-cni
       repository: nvcr.io/nvstaging/mellanox
       version: network-operator-v26.1.0-rc.1
   nvIpam:
     image: nvidia-k8s-ipam
     repository: nvcr.io/nvstaging/mellanox
     version: network-operator-v26.1.0-rc.1
     enableWebhook: false
   ibKubernetes:
     image: ib-kubernetes
     repository: nvcr.io/nvstaging/mellanox
     version: network-operator-v26.1.0-rc.1
     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: nvcr.io/nvstaging/mellanox
     version: network-operator-v26.1.0-rc.1
   docaTelemetryService:
     image: doca_telemetry
     repository: nvcr.io/nvidia/doca
     version: 1.23.4-doca3.2.0-host
   spectrumXOperator:
     image: spectrum-x-operator
     repository: nvcr.io/nvstaging/mellanox
     version: network-operator-v26.1.0-rc.1
   nicConfigurationOperator:
     operator:
       image: nic-configuration-operator
       repository: nvcr.io/nvstaging/mellanox
       version: network-operator-v26.1.0-rc.1
     configurationDaemon:
       image: nic-configuration-operator-daemon
       repository: nvcr.io/nvstaging/mellanox
       version: network-operator-v26.1.0-rc.1
     nicFirmwareStorage:
       create: true
       pvcName: nic-fw-storage-pvc
       storageClassName: nic-fw-storage-class
       availableStorageSize: 1Gi
     logLevel: info