API Reference

August 5, 2026 ยท View on GitHub

Packages

noderesources.dpu.nvidia.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the noderesources v1alpha1 API group

Resource Types

DevicePluginResource

DevicePluginResource defines a single device plugin resource configuration.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the endpoint resource name for the device plugin.
Should contain only alphanumeric characters, underscores and hyphens.
The full extended resource name will be constructed as resource-prefix/name.
Example: pods_vf, ovnk_mgmt_vf
MinLength: 1
Pattern: ^[a-zA-Z0-9_-]+$
Required: {}
resourcePrefix stringResourcePrefix is the resource prefix used by the device plugin to prefix the resource name.
If not set, the default resource prefix will be used.
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
Optional: {}
type DevicePluginResourceTypeType specifies the type of the device plugin resource.Enum: [vf]
Required: {}
options DevicePluginResourceOptionsOptions contains additional options for the device plugin resource.Optional: {}
ranges VFRange arrayRanges specifies the VF ranges on PFs to be included in this resource.MinItems: 1
Required: {}

DevicePluginResourceOptions

DevicePluginResourceOptions contains additional options for a device plugin resource.

Appears in:

FieldDescriptionDefaultValidation
isRdma booleanIsRdma indicates whether RDMA is enabled for this resource.Optional: {}

DevicePluginResourceType

Underlying type: string

DevicePluginResourceType specifies the type of the device plugin resource.

Validation:

  • Enum: [vf]

Appears in:

FieldDescription
vfDevicePluginResourceTypeVF represents a Virtual Function resource.

NodeSRIOVDevicePluginConfig

NodeSRIOVDevicePluginConfig is the Schema for the nodesriovdevicepluginconfigs API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringnoderesources.dpu.nvidia.com/v1alpha1
kind stringNodeSRIOVDevicePluginConfig
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec NodeSRIOVDevicePluginConfigSpec
status NodeSRIOVDevicePluginConfigStatus

NodeSRIOVDevicePluginConfigList

NodeSRIOVDevicePluginConfigList contains a list of NodeSRIOVDevicePluginConfig

FieldDescriptionDefaultValidation
apiVersion stringnoderesources.dpu.nvidia.com/v1alpha1
kind stringNodeSRIOVDevicePluginConfigList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items NodeSRIOVDevicePluginConfig array

NodeSRIOVDevicePluginConfigSpec

NodeSRIOVDevicePluginConfigSpec defines the desired state of NodeSRIOVDevicePluginConfig

Appears in:

FieldDescriptionDefaultValidation
devicePluginResources DevicePluginResource arrayDevicePluginResources is the list of device plugin resource configurations.MinItems: 1
Required: {}

NodeSRIOVDevicePluginConfigStatus

NodeSRIOVDevicePluginConfigStatus defines the observed state of NodeSRIOVDevicePluginConfig

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions exposes the current state of the NodeSRIOVDevicePluginConfig.
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

VFRange

VFRange defines a range of Virtual Functions on a Physical Function.

Appears in:

FieldDescriptionDefaultValidation
pfIndex integerPFIndex is the index of the Physical Function.Minimum: 0
Required: {}
start integerStart is the starting VF index (inclusive).
If not set, the range starts from VF 0.
Minimum: 0
Optional: {}
end integerEnd is the ending VF index (inclusive).
If not set, the range extends to the last VF on the PF.
Minimum: 0
Optional: {}

operator.dpu.nvidia.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group

Resource Types

BFBRegistryConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the BFB Registry is not deployed when set to true.Optional: {}
port integerPort is the port on which the BFB Registry will listenOptional: {}

BaseComponentConfig

BaseComponentConfig provides common configuration fields that can be embedded by all component configurations to reduce code duplication.

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}

BaseControllerConfig

BaseControllerConfig provides common configuration fields that can be embedded by all controller configurations to reduce code duplication.

Appears in:

FieldDescriptionDefaultValidation
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}

CNIInstallerConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
installer DefaultOverridesConfigurationInstaller contains the configuration for the CNI-Installer component.
It contains the image for the controller and its resource requirements.
Optional: {}

ConfigMapKeyRef

ConfigMapKeyRef selects a single key from a ConfigMap living in the same namespace as the DPFOperatorConfig.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the ConfigMap.MinLength: 1
Required: {}
key stringKey is the key within the ConfigMap data to select.MinLength: 1
Required: {}

DPFOperatorConfig

DPFOperatorConfig is the Schema for the dpfoperatorconfigs API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringoperator.dpu.nvidia.com/v1alpha1
kind stringDPFOperatorConfig
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPFOperatorConfigSpec
status DPFOperatorConfigStatus

DPFOperatorConfigList

DPFOperatorConfigList contains a list of DPFOperatorConfig

FieldDescriptionDefaultValidation
apiVersion stringoperator.dpu.nvidia.com/v1alpha1
kind stringDPFOperatorConfigList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPFOperatorConfig array

DPFOperatorConfigSpec

DPFOperatorConfigSpec defines the desired state of DPFOperatorConfig

Appears in:

FieldDescriptionDefaultValidation
overrides OverridesOptional: {}
networking Networking{ controlPlaneMTU:1500 }Optional: {}
monitoring MonitoringConfigurationMonitoring is the configuration for monitoring resources.Optional: {}
security SecurityConfigurationSecurity groups configuration for security-related components managed by the DPF Operator.Optional: {}
imagePullSecrets string arrayList of secret names which are used to pull images for DPF system components and DPUServices.
These secrets must be in the same namespace as the DPF Operator Config and should be created before the config is created.
System reconciliation will not proceed until these secrets are available.
Optional: {}
deploymentMode DeploymentModeDeploymentMode selects zero-trust vs host-trusted deployment alignment.
Required: operators must set this explicitly; provisioning controllers propagate this to DPU.status.deploymentMode.
Enum: [zero-trust host-trusted]
Required: {}
dpuServiceController DPUServiceControllerConfigurationDPUServiceController is the configuration for the DPUServiceControllerOptional: {}
provisioningController ProvisioningControllerConfigurationProvisioningController is the configuration for the ProvisioningController
serviceSetController ServiceSetControllerConfigurationServiceSetController is the configuration for the ServiceSetControllerOptional: {}
dpuDetector DPUDetectorConfigurationDPUDetector is the configuration for the DPUDetector.Optional: {}
multus MultusConfigurationMultus is the configuration for MultusOptional: {}
sriovDevicePlugin SRIOVDevicePluginConfigurationSRIOVDevicePlugin is the configuration for the SRIOVDevicePluginOptional: {}
flannel FlannelConfigurationFlannel is the configuration for FlannelOptional: {}
ovsCNI OVSCNIConfigurationOVSCNI is the configuration for OVSCNI
Deprecated: OVS CNI is installed by CNIInstaller. Remove after 26.7 is released.
Optional: {}
nvipam NVIPAMConfigurationNVIPAM is the configuration for NVIPAMOptional: {}
cniInstaller CNIInstallerConfigurationCNIInstaller is the configuration for the cni-installerOptional: {}
sfcController SFCControllerConfigurationSFCController is the configuration for the SFCControllerOptional: {}
kamajiClusterManager KamajiClusterManagerConfigurationKamajiClusterManager is the configuration for the kamaji-cluster-managerOptional: {}
staticClusterManager StaticClusterManagerConfigurationStaticClusterManager is the configuration for the static-cluster-managerOptional: {}
nodeSRIOVDevicePluginController NodeSRIOVDevicePluginControllerConfigurationNodeSRIOVDevicePluginController is the configuration for the NodeSRIOVDevicePlugin controller.
This controller manages per-node SRIOV device plugin pods based on DPU configurations.
The controller is disabled by default.
Optional: {}

DPFOperatorConfigStatus

DPFOperatorConfigStatus defines the observed state of DPFOperatorConfig

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions exposes the current state of the OperatorConfig.
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.
version stringVersion is the version of the DPF Operator that is currently deployed.

DPUDetectorConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
image ImageImage overrides the container image used by the DPUDetector Container.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field daemon instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
daemon DefaultOverridesConfigurationDaemon contains the configuration for the DPU Detector component.
It contains the image for the controller and its resource requirements.
Optional: {}

DPUServiceControllerConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}
image ImageImage overrides the container image used by the DPUService controller.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field controller instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
controller DefaultOverridesConfigurationController contains the configuration for the DPU Service controller component.
It contains the image for the controller and its resource requirements.
Optional: {}
disableDPUReadyTaints booleanDisableDPUReadyTaints disables the DPU ready taints feature in the DPU Service Controller.
This feature adds taints to the worker nodes when the DPU is not ready.
This is useful when the DPU is used for networking and the node should not be scheduled until the DPU is ready.
Optional: {}

DefaultOverridesConfiguration

Appears in:

FieldDescriptionDefaultValidation
image ImagePattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
resources ResourceRequirementsResources defines the memory and CPU resource requests and limits for the component.
This field is optional, and if not set, the component will use the default resource.
Optional: {}

DeploymentMode

Underlying type: string

DeploymentMode describes the cluster deployment model for DPU provisioning (zero-trust vs host-trusted).

Validation:

  • Enum: [zero-trust host-trusted]

Appears in:

FieldDescription
zero-trustDeploymentModeZeroTrust requires provisioningController.installInterface.installViaRedfish
host-trustedDeploymentModeHostTrusted allows provisioningController.installInterface.installViaHostAgent, or installViaGNOI

EtcdEncryptionAtRestConfiguration

EtcdEncryptionAtRestConfiguration is the per-cluster encryption-at-rest selector for Kamaji clusters.

Appears in:

FieldDescriptionDefaultValidation
provider EtcdEncryptionAtRestProviderProvider selects the encryption-at-rest provider.Enum: [staticKey vaultKMS]
Required: {}
staticKey StaticKeyConfigurationStaticKey configures the staticKey provider. It is required when provider is staticKey and
must not be set otherwise.
Optional: {}

EtcdEncryptionAtRestProvider

Underlying type: string

EtcdEncryptionAtRestProvider selects the etcd encryption-at-rest provider.

Validation:

  • Enum: [staticKey vaultKMS]

Appears in:

FieldDescription
staticKeyEtcdEncryptionProviderStaticKey encrypts etcd data with an AES-GCM key rendered inline into the encryption config.
vaultKMSEtcdEncryptionProviderVaultKMS encrypts etcd data via the KMS v2 plugin served by the vaultKMS component.

FlannelCNI

Appears in:

FieldDescriptionDefaultValidation
image ImagePattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}

FlannelConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
cni FlannelCNICNI is the configuration for the Flannel CNI component.
It contains the image for the CNI init container.
Note: The resources for the CNI container are not configurable.
Optional: {}
daemon FlannelDaemonDaemon is the configuration for the Flannel Daemon component.
It contains the image for the Flannel Daemon container and its resource requirements.
Optional: {}
image FlannelImagesImages overrides the container images used by flannel
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new fields cni and daemon instead.
Optional: {}
podCIDR stringPodCIDR is the pod cidr for flannel.Optional: {}

FlannelDaemon

Appears in:

FieldDescriptionDefaultValidation
image ImagePattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
resources ResourceRequirementsResources defines the memory and CPU resource requests and limits for the component.
This field is optional, and if not set, the component will use the default resource.
Optional: {}

FlannelImages

Appears in:

FieldDescriptionDefaultValidation
flannelCNI stringFlannelCNI must be set if FlannelImages is set.MinLength: 1
Required: {}
kubeFlannel stringKubeFlannel must be set if FlannelImages is set.MinLength: 1
Required: {}

HelmChart

Underlying type: string

HelmChart is a reference to a helm chart.

Validation:

  • Pattern: ^(oci://|https://).+$

Appears in:

HelmComponentConfig

Appears in:

FieldDescriptionDefaultValidation
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}

Image

Underlying type: string

Image is a reference to a container image.

Validation:

  • Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]{0,127}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]{32,}))?$

Appears in:

ImageComponentConfig

ImageComponentConfig provides common configuration fields that can be embedded by all component configurations to reduce code duplication.

Appears in:

FieldDescriptionDefaultValidation
image ImagePattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}

InstallViaGNOI

InstallViaGNOI is the interface used to install the BFB via GNOI

Appears in:

InstallViaHostAgent

InstallViaHostAgent is the interface used to install the BFB

Appears in:

InstallViaRedfish

InstallViaRedfish is the interface used to install the BFB via Redfish

Appears in:

FieldDescriptionDefaultValidation
bfbRegistryAddress stringBFBRegistryAddress is the address of the BFB Registry
Deprecated: Use RegistryConfiguration instead.
MinLength: 1
bfbRegistry BFBRegistryConfigurationBFBRegistry is the configuration for the BFB Registry
Deprecated: Use RegistryConfiguration instead.
Optional: {}
skipDPUNodeDiscovery booleanSkipDPUNodeDiscovery is a flag to skip the DPU node discovery.trueOptional: {}

KamajiClusterManagerConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}
image ImageImage overrides the container image used by the Kamaji Cluster Manager.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field controller instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
controller DefaultOverridesConfigurationController contains the configuration for the Kamaji Cluster Manager component.
It contains the image for the controller and its resource requirements.
Optional: {}
etcdEncryptionAtRest EtcdEncryptionAtRestConfigurationEtcdEncryptionAtRest configures encryption at rest for the etcd datastore of
Kamaji-managed DPU clusters. The provider selection is applied only when a
Kamaji cluster is first created and is not changed for existing clusters.
Optional: {}

KataContainersConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
daemon ImageComponentConfigDaemon contains the configuration for the kata-deploy component.
It contains the image for the kata-deploy container.
Optional: {}
nodeSelector object (keys:string, values:string)NodeSelector restricts which nodes kata-deploy runs on.
This is passed as the Helm chart's nodeSelector value.
Optional: {}
shims KataShim arrayShims selects which Kata hypervisor shims to enable.
Defaults to ["qemu"] if empty.
Enum: [qemu]
items:Enum: [qemu]
Optional: {}
containerdConfigFileName stringContainerdConfigFileName overrides the containerd config file name
on the target nodes. Defaults to "config-mlnx.toml".
Optional: {}

KataShim

Underlying type: string

KataShim identifies a Kata hypervisor shim variant. Values must match the shim keys in the kata-deploy Helm chart's shims.<name>.enabled values. Only arm64-compatible shims are supported.

Validation:

  • Enum: [qemu]

Appears in:

FieldDescription
qemuKataShimQEMU is the QEMU hypervisor shim.

KubeStateMetricsConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
daemon DefaultOverridesConfigurationDaemon contains the configuration for the kube-state-metrics component.
It contains the image for kube-state-metrics and its resource requirements.
Optional: {}

MonitoringConfiguration

MonitoringConfiguration defines the configuration for monitoring resources.

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable controls whether monitoring resources are installed.
When enabled (default), the controller:
- Creates ServiceMonitors for Kamaji clusters to scrape control-plane metrics.
- Deploys kube-state-metrics as a DPUService to expose metrics for custom resources.
- Deploys node-problem-detector as a DaemonSet on DPU nodes to detect and report node-level problems.
- Deploys opentelemetry-collector as a DaemonSet on DPU nodes to collect and forward logs.
Optional: {}
kubeStateMetrics KubeStateMetricsConfigurationKubeStateMetrics is the configuration for kube-state-metricsOptional: {}
nodeProblemDetector NodeProblemDetectorConfigurationNodeProblemDetector is the configuration for node-problem-detectorOptional: {}
openTelemetryCollector OpenTelemetryCollectorConfigurationOpenTelemetryCollector is the configuration for opentelemetry-collectorOptional: {}

MultusConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
image ImageImage overrides the container image used by the Multus Container.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field cni instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
cni DefaultOverridesConfigurationCNI contains the configuration for the Multus CNI component.
It contains the image for the controller and its resource requirements.
Optional: {}

NVIPAMConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}
image ImageImage overrides the container image used by the NVIPAM controller.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field controller instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
controller NVIPAMControllerController contains the configuration for the NVIPAM controller component.
It contains the image for the controller and its resource requirements.
Optional: {}
node NVIPAMNodeNode contains the configuration for the NVIPAM node component.
It contains the image for the node and its resource requirements.

NVIPAMController

Appears in:

FieldDescriptionDefaultValidation
image ImagePattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
resources ResourceRequirementsResources defines the memory and CPU resource requests and limits for the component.
This field is optional, and if not set, the component will use the default resource.
Optional: {}

NVIPAMNode

Appears in:

FieldDescriptionDefaultValidation
image ImagePattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
resources ResourceRequirementsResources defines the memory and CPU resource requests and limits for the component.
This field is optional, and if not set, the component will use the default resource.
Optional: {}

Networking

Networking defines the networking configuration for the system components.

Appears in:

FieldDescriptionDefaultValidation
controlPlaneMTU integerControlPlaneMTU is the MTU value to be set on the management network.
In zero-trust mode this value is applied to the DPU OOB interface (oob_net0), which does not
support jumbo frames; it must not exceed 1500 when deploymentMode is zero-trust.
The default is 1500.
1500Maximum: 9216
Minimum: 1280
Optional: {}
highSpeedMTU integerHighSpeedMTU is the MTU value to be set on the high-speed interface.
The default is 1500.
1500Maximum: 9216
Minimum: 1280
Optional: {}
dpuNodeOOBBridgeName stringDPUNodeOOBBridgeName is the name of the Linux bridge on the host used for
out-of-band DPU management traffic. If not specified, defaults to "br-dpu".
This setting applies only to host-trusted deployments.
br-dpuMaxLength: 15
MinLength: 1
Pattern: ^[a-z][a-z0-9-]*$
Optional: {}

NodeProblemDetectorConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
daemon DefaultOverridesConfigurationDaemon contains the configuration for the node-problem-detector component.
It contains the image for node-problem-detector and its resource requirements.
Optional: {}

NodeSRIOVDevicePluginControllerConfiguration

NodeSRIOVDevicePluginControllerConfiguration is the configuration for the NodeSRIOVDevicePlugin controller. This controller manages per-node SRIOV device plugin pods based on DPU configurations. The controller is disabled by default.

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}
controller DefaultOverridesConfigurationController contains the configuration for the NodeSRIOVDevicePlugin controller component.
It contains the image for the controller and its resource requirements.
Optional: {}
devicePlugin NodeSRIOVDevicePluginSettingsDevicePlugin contains the configuration for the SRIOV device plugin pods
managed by this controller.
Optional: {}

NodeSRIOVDevicePluginSettings

NodeSRIOVDevicePluginSettings contains configuration for the SRIOV device plugin pods managed by the NodeSRIOVDevicePlugin controller.

Appears in:

FieldDescriptionDefaultValidation
image ImageImage overrides the container image for the SRIOV device plugin.Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
initImage ImageInitImage overrides the container image for the init container
that generates device plugin configuration.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
defaultResourcePrefix stringDefaultResourcePrefix is the default resource prefix for the SRIOV device plugin resources.
Defaults to "nvidia.com".
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
Optional: {}

OVSCNIConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
image ImageImage overrides the container image used by the OVS CNI.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field cni instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
cni DefaultOverridesConfigurationCNI contains the configuration for the OVS CNI component.
It contains the image for the controller and its resource requirements.
Optional: {}

OpenTelemetryCollectorConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
daemon DefaultOverridesConfigurationDaemon contains the configuration for the opentelemetry-collector component.
It contains the image for opentelemetry-collector and its resource requirements.
Optional: {}
logging OpenTelemetryCollectorLoggingConfigurationLogging contains the configuration for the opentelemetry-collector logging component.
If not specified, logging will not be streamed.
Optional: {}
metrics OpenTelemetryCollectorMetricsConfigurationMetrics contains the configuration for the opentelemetry-collector metrics component.
If not specified, metrics will not be streamed from DPU clusters.
Optional: {}

OpenTelemetryCollectorLoggingConfiguration

Appears in:

FieldDescriptionDefaultValidation
endpoint stringEndpoint is the OTLP endpoint where the DPU cluster opentelemetry-collector sends data to.
This could be the management cluster's opentelemetry-collector endpoint.
If not specified, nothing will be forwarded from DPU clusters.
Required: {}

OpenTelemetryCollectorMetricsConfiguration

Appears in:

FieldDescriptionDefaultValidation
endpoint stringEndpoint is the OTLP endpoint where the DPU cluster opentelemetry-collector sends metrics to.
This could be the management cluster's opentelemetry-collector endpoint.
If not specified, metrics will not be forwarded from DPU clusters.
Required: {}

Overrides

Overrides exposes a set of fields which impact the recommended behavior of the DPF Operator. These fields should only be set for advanced use cases. The fields here have no stability guarantees.

Appears in:

FieldDescriptionDefaultValidation
paused booleanPaused disables all reconciliation of the DPFOperatorConfig when set to true.Optional: {}
dpuCNIBinPath stringDPUCNIBinPath is the path at which the CNI binaries will be installed to on the DPU.
This is /opt/cni/bin by default.
This setting does not change where kubelet is configured to use the CNI from.
Optional: {}
dpuCNIPath stringDPUCNIConfigPath is the path to which the CNI config files will be installed on the DPU.
This is /etc/cni/net.d by default.
This setting does not change where kubelet is configured to read the CNI config from.
Optional: {}
dpuOpenvSwitchRunPath stringDPUOpenvSwitchPath is the path at which the openvSwitch run directory can be found on the DPU.
This is /var/run/openvswitch by default.
This setting does not change where components are installed. Installation location fixed in the BFB.
Optional: {}
dpuOpenvSwitchBinPath stringDPUOpenvSwitchBinPath is the path at which the openvSwitch bin directory can be found on the DPU node.
This is /usr/bin/ by default.
This setting does not change where components are installed. Installation location fixed in the BFB.
Optional: {}
dpuOpenvSwitchSystemSharedPath stringDPUOpenvSwitchSystemSharedLibPath is the path at which the system lib used by OVS components can be found on the DPU.
This is /lib by default.
This setting does not change where components are installed. Installation location fixed in the BFB.
Optional: {}
flannelSkipCNIConfigInstallation booleanFlannelSkipCNIConfigInstallation controls whether Flannel should skip CNI config installation.
This is true by default, meaning Flannel does not manage its own CNI configuration.
Set to false if you want Flannel to install a CNI configuration.
Optional: {}
dpuOpenvSwitchSystemSharedLib64Path stringDPUOpenvSwitchSystemSharedLib64Path is the path at which the system lib64 used by OVS components can be found on the DPU.
If this field is not set, no lib64 volume mount will be configured in the SFC Controller component.
This setting does not change where components are installed. Installation location fixed in the BFB.
MinLength: 1
Optional: {}
dpuLinkerCachePath stringDPULinkerCachePath is the path on the DPU at which the prebuilt dynamic-linker cache
file can be found. When set, this file is mounted read-only into the SFC Controller
container so that host OVS binaries can resolve shared libraries using the DPU's
linker configuration. If not set, no linker cache mount is added.
This setting does not change where components are installed. Installation location fixed in the BFB.
MinLength: 1
Optional: {}
dpuOptLibraryPath stringDPUOptLibraryPath is the path on the DPU at which an additional library directory
can be found. When set, this directory is mounted read-only into the SFC Controller
container. Useful on distributions that install vendor libraries outside the standard
paths (e.g. /usr/opt on RHCOS BFB). If not set, no additional library directory is mounted.
This setting does not change where components are installed. Installation location fixed in the BFB.
MinLength: 1
Optional: {}
kubernetesAPIServerVIP stringKubernetesAPIServerVIP is the VIP the Kubernetes API server is accessible at.
This setting enables specific underlying components deployed directly or indirectly by the DPF Operator to reach
the Kubernetes API Server when the ClusterIP Kubernetes Service is not functional.
If set, it should be set to an IP to ensure that components work even if DNS is not available in the cluster.
Optional: {}
kubernetesAPIServerPort integerKubernetesAPIServerPort is the port the Kubernetes API server is accessible at.
This setting is usually used together with the kubernetesAPIServerVIP setting. It enables specific underlying
components deployed directly or indirectly by the DPF Operator to reach the Kubernetes API Server when the
ClusterIP Kubernetes Service is not functional.
Optional: {}
argoCDNamespace stringArgoCDNamespace is the namespace where ArgoCD is deployed.
AppProjects and cluster secrets required by DPF will be created in this namespace.
Defaults to the namespace of the DPFOperatorConfig.
MaxLength: 63
MinLength: 1
Optional: {}
provisioningIssuerCASecretName stringProvisioningIssuerCASecretName overrides the CA secret used by the provisioning Issuer during
controlled CA rotation workflows. When unset, the default issuer secret is used.
MinLength: 1
Optional: {}

ProvisioningControllerConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}
image ImageImage overrides the container image used by the Provisioning controller.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field controller instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
controller DefaultOverridesConfigurationController contains the configuration for the Provisioning controller component.
It contains the image for the controller and its resource requirements.
Optional: {}
bfCFGTemplateConfigMap stringBFCFGTemplateConfigMap is the name of a configMap containing a template for the BF.cfg file used by the DPU controller.
By default the provisioning controller use a hardcoded BF.cfg e.g. https://github.com/NVIDIA/doca-platform/blob/release-v24.10/internal/provisioning/controllers/dpu/bfcfg/bf.cfg.template
Note: Replacing the bf.cfg is an advanced use case. The default bf.cfg is designed for most use cases.
Deprecated: BFCFGTemplateConfigMap is deprecated and will be removed in a future release.
Use enableDynamicBFCFGTemplates instead for custom bf.cfg templates.
Optional: {}
enableDynamicBFCFGTemplates booleanEnableDynamicBFCFGTemplates enables runtime discovery of bf.cfg templates via ConfigMaps.
When enabled, the provisioning controller discovers ConfigMaps by matching labels for BFB
name/namespace and DPUCluster name/namespace. Mutually exclusive with bfCFGTemplateConfigMap.
Optional: {}
bfbPVCName stringBFBPersistentVolumeClaimName is the name of the PersistentVolumeClaim used by dpf-provisioning-controller
If not provided, the controller will use local host storage (hostPath)
Optional: {}
dmsTimeout integerDMSTimeout is the max time in seconds within which a DMS API must respond, 0 is unlimitedMinimum: 1
Optional: {}
customCASecretName stringCustomCASecretName indicates the name of the Kubernetes secret object
which containing the custom CA certificate
Optional: {}
installInterface ProvisioningInstallInterfaceInstallInterface is the interface through which the BFB is installedOptional: {}
registry RegistryConfigurationRegistry is the configuration for the BFB RegistryOptional: {}
maxDPUParallelInstallations integerMaxDPUParallelInstallations specifies the maximum number of DPUs that can be provisioned concurrently.
A DPU is removed from the concurrent provisioning count as soon as it finishes the "OS Installing" phase and
enters the "Rebooting" phase of its provisioning lifecycle.
50Minimum: 1
Optional: {}
multiDPUOperationsSyncWaitTime DurationMultiDPUOperationsSyncWaitTime is the wait time between DPUs sync operations on the same node.
It would take effect only on DPUNode objects which contain more than one DPU.
30sFormat: duration
Pattern: ^([0-9]+(h|m|s|ms|us|ยตs|ns))+$
Type: string
Optional: {}
maxUnavailableDPUNodes integerMaxUnavailableDPUNodes is the maximum number of DPUNodes that are unavailable during the node effect period.50Minimum: 1
Optional: {}
osInstallTimeout DurationOSInstallTimeout is the maximum time allowed for OS installation in zero-trust mode.
If the installation exceeds this timeout, the DPU will transition to an error state.
When unset, the provisioning controller defaults to 60m.
Format: duration
Pattern: ^([0-9]+(h|m|s|ms|us|ยตs|ns))+$
Type: string
Optional: {}
firmwareUpdateTimeout DurationFirmwareUpdateTimeout is the maximum time allowed for BF4 firmware update in zero-trust mode.
If the update exceeds this timeout, the DPU will transition to an error state.
When unset, the provisioning controller defaults to 45m.
Format: duration
Pattern: ^([0-9]+(h|m|s|ms|us|ยตs|ns))+$
Type: string
Optional: {}
preInstallAgentRegistrationTimeout DurationPreInstallAgentRegistrationTimeout is how long Initializing waits for the in-band dpu-agent
to set preInstall.agentReported on a recreated DPU CR (reprovision). When the timeout elapses,
provisioning continues without agent-assisted pre-install for this cycle.
30sFormat: duration
Pattern: ^([0-9]+(h|m|s|ms|us|ยตs|ns))+$
Type: string
Optional: {}
nodeEffectRemovalTimeout DurationNodeEffectRemovalTimeout is the maximum time allowed for the Node Effect Removal phase.
If the DPUNodeMaintenance CR still has requestors after this timeout, the DPU will transition to an error state.
When unset, the provisioning controller defaults to 0s (timeout disabled).
Format: duration
Pattern: ^([0-9]+(h|m|s|ms|us|ยตs|ns))+$
Type: string
Optional: {}
hostAgentDNSPolicy DNSPolicyHostAgentDNSPolicy sets the DNS policy for the hostagent pod.
Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'.
Defaults to 'ClusterFirstWithHostNet'.
Enum: [ClusterFirstWithHostNet ClusterFirst Default None]
Optional: {}
bmcServerCertRenewBefore DurationBMCServerCertRenewBefore is how long before expiry DPF rotates the DPU BMC mTLS
server certificate.
When unset, the provisioning controller defaults to 720h (30 days).
Format: duration
Pattern: ^([0-9]+(h|m|s|ms|us|ยตs|ns))+$
Type: string
Optional: {}

ProvisioningInstallInterface

ProvisioningInstallInterface is the interface used to install the BFB

Appears in:

FieldDescriptionDefaultValidation
installViaGNOI InstallViaGNOIInstallViaGNOI is the interface used to install the BFB via GNOI
Deprecated: Use InstallViaHostAgent instead.
Optional: {}
installViaHostAgent InstallViaHostAgentInstallViaHostAgent is the interface used to install the BFB via HostAgentOptional: {}
installViaRedfish InstallViaRedfishInstallViaRedfish is the interface used to install the BFB via RedfishOptional: {}

RegistryConfiguration

Appears in:

FieldDescriptionDefaultValidation
address stringAddress is the address used to access the BFB Registry. The address must start with "http://".
By default, the BFB Registry can be accessed via its Service.
For non-kubernetes environments, this must be set due to the lack of kubelet on worker nodes.
For zero-trust environments, this must be set so that the BFB Registry can be accessed from DPU BMC.
Deprecated: Address is deprecated and will be removed in a future release.
Pattern: ^http://
Optional: {}
port integerPort is the port on which the registry instances will listen
Deprecated: Address is deprecated and will be removed in a future release.
Maximum: 65535
Minimum: 1
Optional: {}
loadBalancerAddress stringLoadBalancerAddress is the address of the load balancer for the BFB Registry which the hostagent/redfish use to fetch the BFB and generated bf.cfg.
To enable the load balancer, you need to deploy your own load balancer controller and configure the LoadBalancerAddress field.
Then check the bfb-registry nodeport service and make your load balancer controller to distribute the requests to the bfb-registry nodeport.
Pattern: ^http://
Optional: {}

ResourceComponentConfig

ResourceComponentConfig defines the resource requirements for a container.

Appears in:

FieldDescriptionDefaultValidation
resources ResourceRequirementsResources defines the memory and CPU resource requests and limits for the component.
This field is optional, and if not set, the component will use the default resource.
Optional: {}

ResourceRequirements

Appears in:

FieldDescriptionDefaultValidation
requests ResourcesRequests defines the resource requests for the component.
limits ResourcesLimits defines the resource limits for the component.

Resources

Appears in:

FieldDescriptionDefaultValidation
cpu QuantityCPU is the amount of CPU requested by the component.Optional: {}
memory QuantityMemory is the amount of Memory requested by the component.Optional: {}

SFCControllerConfiguration

SFCControllerConfiguration intentionally does not embed BaseControllerConfig: HA is achieved via per-node sharding (DaemonSet + node-local cache + per-node reconcilers); each pod exclusively owns its node's state, which makes leader election unnecessary.

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
image ImageImage overrides the container image used by the SFC controller.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field controller instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
controller DefaultOverridesConfigurationController contains the configuration for the SFC controller component.
It contains the image for the controller and its resource requirements.
Optional: {}
secureFlowDeletionTimeout DurationSecureFlowDeletionTimeout controls the timeout for which the API server is unreachable after which all the flows
are deleted to prevent unintended packet leaks. It has effect when is greater than zero.
Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration.
Optional: {}

SPIFFEConfiguration

SPIFFEConfiguration is the per-cluster SPIFFE bootstrap parameter set

Appears in:

FieldDescriptionDefaultValidation
spireServerAddress stringSPIREServerAddress is the address of the pre-installed SPIRE Server in host:port form
(e.g. "spire-server.spire-system.svc:8081").
MaxLength: 263
MinLength: 1
Required: {}
spireTrustDomain stringSPIRETrustDomain is the SPIRE-internal trust domain (e.g. "cs.internal") embedded in the
DPU Agent SVID URI.
MaxLength: 253
MinLength: 1
Pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$
Required: {}
kubeAPIAudience stringKubeAPIAudience is the audience claim the DPU Agent's JWT-SVID must carry; it must match an
entry in the kube-apiserver AuthenticationConfiguration.audiences[] (owned out-of-band).
MaxLength: 512
MinLength: 1
Required: {}
spireOIDCURL stringSPIREOIDCURL is the OIDC discovery (issuer) URL of the pre-installed SPIRE Server.
The matching kube-apiserver AuthenticationConfiguration.jwt[].issuer value is applied out-of-band.
MaxLength: 2048
MinLength: 1
Required: {}
spireControllerManagerClassName stringspireControllerManagerClassName selects the SPIRE controller-manager instance that renders
DPF ClusterStaticEntries.
MaxLength: 253
MinLength: 1
Required: {}
trustBundle SPIFFETrustBundleConfigMapReferencetrustBundle references a ConfigMap whose data["bundle.pem"] key holds the SPIRE trust
bundle in PEM form.
Required: {}

SPIFFETrustBundleConfigMapReference

SPIFFETrustBundleConfigMapReference references the ConfigMap (by name and namespace) whose data["bundle.pem"] key holds the SPIRE trust bundle in PEM form.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the ConfigMap holding the SPIRE trust bundle.MaxLength: 253
MinLength: 1
Required: {}
namespace stringNamespace is the namespace of the ConfigMap holding the SPIRE trust bundle.MaxLength: 63
MinLength: 1
Required: {}

SRIOVDevicePluginConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
image ImageImage overrides the container image used by the SRIOV Device Plugin container.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field deviceplugin instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
deviceplugin DefaultOverridesConfigurationDevicePlugin contains the configuration for the SRIOV Device Plugin component.
It contains the image for the controller and its resource requirements.
Optional: {}

SecretKeyRef

SecretKeyRef selects a single key from a Secret living in the same namespace as the DPFOperatorConfig.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the Secret.MinLength: 1
Required: {}
key stringKey is the key within the Secret data to select.MinLength: 1
Required: {}

SecurityConfiguration

SecurityConfiguration groups configuration for security-related configurations managed by the DPF Operator.

Appears in:

FieldDescriptionDefaultValidation
privilegedPodEnforcement booleanPrivilegedPodEnforcement controls whether privileged pods are rejected
unless explicitly allowed by the workload API. The DPUService controller
currently implements this by applying the PrivilegedPodEnforcement
ValidatingAdmissionPolicy to DPUService workloads.
Setting it to false does not fully opt out of enforcement: the policy and its
binding are kept, but the binding is switched from Deny to Audit, so privileged
pods are no longer denied and are only recorded in the audit log. The allowlist
is kept populated so the audit log only flags pods that would otherwise be
denied.
The objects are intentionally not deleted to avoid a Kubernetes paramRef
informer bug (https://github.com/kubernetes/kubernetes/issues/133827).
Defaults to true.
trueOptional: {}
kata KataContainersConfigurationKata is the configuration for Kata Containers.
Kata Containers provides VM-based isolation for untrusted workloads on DPU nodes.
This component is disabled by default; set disable to false to enable.
Optional: {}
spiffe SPIFFEConfigurationspiffe configures the SPIFFE-based DPU Agent identity flow. Edits are accepted post-bootstrap
but do NOT retro-apply to already-provisioned DPUs.
Optional: {}
vaultKMS VaultKMSConfigurationVaultKMS is the configuration for the standalone Vault/OpenBao KMS plugin component.
It is deployed as a DaemonSet on control-plane nodes and is disabled by default.
The plugin is used for encryption at rest for DPUClusters.
Optional: {}

ServiceSetControllerConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}
helmChart HelmChartHelmChart overrides the helm chart used by the ServiceSet controller.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Optional: {}
image ImageImage overrides the container image used by the ServiceChainSet Controller.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field controller instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
controller DefaultOverridesConfigurationController contains the configuration for the ServiceChainSet controller component.
It contains the image for the controller and its resource requirements.
Optional: {}

StaticClusterManagerConfiguration

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
replicas integerReplicas is the number of replicas for the controller deployment.
Used for High Availability via leader election.
2Maximum: 3
Minimum: 1
Optional: {}
image ImageImage overrides the container image used by the Static Cluster Manager.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Use the new field controller instead.
Pattern: ^((?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*)(?::([\w][\w.-]\{0,127\}))?(?:@([A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*[:][[:xdigit:]]\{32,\}))?$
Optional: {}
controller DefaultOverridesConfigurationController contains the configuration for the Static Cluster Manager controller component.
It contains the image for the controller and its resource requirements.
Optional: {}

StaticKeyConfiguration

StaticKeyConfiguration configures the staticKey encryption-at-rest provider.

Appears in:

FieldDescriptionDefaultValidation
keySecretRef SecretKeyRefKeySecretRef selects the AES-GCM key from a Secret in the DPFOperatorConfig namespace.
The referenced Secret value must be base64-encoded AES key text whose decoded length is 16,
24, or 32 bytes. For Kubernetes manifests, use stringData.key with the output of
openssl rand -base64 32. For External Secrets, configure the external value or template so
the resulting Kubernetes Secret data decodes to that base64 text, not to raw key bytes.
The referenced key is used as the desired static key source. Changing the referenced
Secret value triggers automatic rotation for existing staticKey-encrypted Kamaji clusters.
The per-cluster rendered encryption configuration must be backed up together with the
cluster etcd backup because Kubernetes encrypted data references encryption config key names.
Required: {}
automaticRotationDisabled booleanAutomaticRotationDisabled disables automatic staticKey rotation for existing Kamaji clusters.
In-flight rotations stop at the next stable checkpoint; encryption at rest remains enabled.
Optional: {}

VaultKMSAppRoleAuth

VaultKMSAppRoleAuth configures the AppRole auth method using a single merged Secret.

Appears in:

FieldDescriptionDefaultValidation
secretName stringSecretName is the name of the Secret holding the AppRole role ID and secret ID.MinLength: 1
Required: {}
authEngineMountPath stringAuthEngineMountPath optionally overrides the Vault auth engine mount path. It is not the transit mount.MaxLength: 512
MinLength: 1
Optional: {}
roleIDKey stringRoleIDKey is the Secret data key holding the AppRole role ID.MinLength: 1
Required: {}
secretIDKey stringSecretIDKey is the Secret data key holding the AppRole secret ID.MinLength: 1
Required: {}

VaultKMSAuth

VaultKMSAuth configures the Vault/OpenBao auth method. Exactly one auth block matching method must be set.

Appears in:

FieldDescriptionDefaultValidation
method VaultKMSAuthMethodMethod selects the Vault auth method.Enum: [token approle userpass kubernetes jwt]
Required: {}
token VaultKMSTokenAuthToken configures token auth.Optional: {}
appRole VaultKMSAppRoleAuthAppRole configures AppRole auth.Optional: {}
userpass VaultKMSUserpassAuthUserpass configures userpass auth.Optional: {}
kubernetes VaultKMSKubernetesAuthKubernetes configures Kubernetes auth.Optional: {}
jwt VaultKMSJWTAuthJWT configures JWT auth.Optional: {}

VaultKMSAuthMethod

Underlying type: string

VaultKMSAuthMethod selects the Vault/OpenBao auth method used by the KMS plugin.

Validation:

  • Enum: [token approle userpass kubernetes jwt]

Appears in:

FieldDescription
tokenVaultKMSAuthMethodToken authenticates using a Vault token.
approleVaultKMSAuthMethodAppRole authenticates using the AppRole auth method.
userpassVaultKMSAuthMethodUserpass authenticates using the userpass auth method.
kubernetesVaultKMSAuthMethodKubernetes authenticates using the Kubernetes auth method.
jwtVaultKMSAuthMethodJWT authenticates using the JWT auth method.

VaultKMSConfiguration

VaultKMSConfiguration configures the standalone Vault/OpenBao KMS plugin component. The component is deployed as a DaemonSet on control-plane nodes and is disabled by default. The plugin is used for encryption at rest for DPUClusters.

Appears in:

FieldDescriptionDefaultValidation
disable booleanDisable ensures the component is not deployed when set to true.Optional: {}
daemon DefaultOverridesConfigurationDaemon contains the image and resource overrides for the KMS plugin DaemonSet.Optional: {}
tls VaultKMSTLSTLS configures TLS settings used to connect to Vault/OpenBao.Optional: {}
auth VaultKMSAuthAuth configures how the plugin authenticates to Vault/OpenBao.Required: {}
tokenCheckIntervalSeconds integerTokenCheckIntervalSeconds optionally overrides how often the plugin checks and renews the current Vault token, in seconds.
This is an advanced setting. The plugin default should work for most environments.
Must be at least 5 seconds.
Minimum: 5
Optional: {}
loginTimeoutSeconds integerLoginTimeoutSeconds optionally overrides the maximum time for one Vault token check cycle, including authentication, in seconds.
This is an advanced setting. The plugin default should work for most environments.
Must be at least 1 second.
Minimum: 1
Optional: {}
address stringAddress is the Vault/OpenBao server address.
WARNING: Changing this field does not automatically rotate the encryption key or
re-encrypt existing DPU cluster secrets. Do not change it while active DPU clusters
depend on this KMS plugin unless the new endpoint provides access to the key material
used by the previous endpoint. Otherwise, those clusters will be unable to decrypt
their existing secrets, causing an outage.
MaxLength: 2048
MinLength: 1
Pattern: ^https://.+$
Required: {}
transit VaultKMSTransitTransit configures the Vault Transit secrets engine used for encrypt/decrypt.
WARNING: Changing this field does not automatically rotate the encryption key or
re-encrypt existing DPU cluster secrets. Do not change it while active DPU clusters
depend on this KMS plugin unless the new Transit configuration provides access to all
key material used by the previous configuration. Otherwise, those clusters will be
unable to decrypt their existing secrets, causing an outage.
Required: {}
namespace stringNamespace optionally configures the Vault/OpenBao namespace used for requests.
This is a Vault/OpenBao namespace, not a Kubernetes namespace.
WARNING: Changing this field does not automatically rotate the encryption key or
re-encrypt existing DPU cluster secrets. Do not change it while active DPU clusters
depend on this KMS plugin unless the new namespace provides access to the key material
used by the previous namespace. Otherwise, those clusters will be unable to decrypt
their existing secrets, causing an outage.
MaxLength: 512
MinLength: 1
Optional: {}

VaultKMSJWTAuth

VaultKMSJWTAuth configures the JWT auth method.

Appears in:

FieldDescriptionDefaultValidation
role stringRole is the Vault JWT auth role name.MinLength: 1
Required: {}
jwtSecretRef SecretKeyRefJWTSecretRef selects the JWT presented to Vault from a Secret in the DPFOperatorConfig namespace.Required: {}
authEngineMountPath stringAuthEngineMountPath optionally overrides the Vault auth engine mount path. It is not the transit mount.MaxLength: 512
MinLength: 1
Optional: {}

VaultKMSKubernetesAuth

VaultKMSKubernetesAuth configures the Kubernetes auth method.

Appears in:

FieldDescriptionDefaultValidation
role stringRole is the Vault Kubernetes auth role name (not a Kubernetes RBAC role).MinLength: 1
Required: {}
audience stringAudience optionally sets the audience for the projected Kubernetes service account token.
Use this when the Vault Kubernetes auth role is configured with bound audiences.
MaxLength: 512
MinLength: 1
Optional: {}
authEngineMountPath stringAuthEngineMountPath optionally overrides the Vault auth engine mount path. It is not the transit mount.MaxLength: 512
MinLength: 1
Optional: {}

VaultKMSTLS

VaultKMSTLS configures TLS settings for the connection to Vault/OpenBao.

Appears in:

FieldDescriptionDefaultValidation
caConfigMapRef ConfigMapKeyRefCACertConfigMapRef selects a CA bundle key from a ConfigMap used to verify the
Vault/OpenBao server certificate. It is mounted as a file.
Optional: {}

VaultKMSTokenAuth

VaultKMSTokenAuth configures the token auth method.

Appears in:

FieldDescriptionDefaultValidation
tokenSecretRef SecretKeyRefTokenSecretRef selects the Vault token from a Secret in the DPFOperatorConfig namespace.Required: {}

VaultKMSTransit

VaultKMSTransit configures the Vault Transit secrets engine.

Appears in:

FieldDescriptionDefaultValidation
keyName stringKeyName is the Transit key used for encrypt and decrypt operations.MinLength: 1
Pattern: ^\w(([\w-.]+)?\w)?$
Required: {}
mount stringMount is the Transit secrets engine mount path. Defaults to "transit".transitMaxLength: 512
MinLength: 1
Pattern: ^/?[^/\s][^\s]*$
Optional: {}

VaultKMSUserpassAuth

VaultKMSUserpassAuth configures the userpass auth method using a single merged Secret.

Appears in:

FieldDescriptionDefaultValidation
secretName stringSecretName is the name of the Secret holding the username and password.MinLength: 1
Required: {}
authEngineMountPath stringAuthEngineMountPath optionally overrides the Vault auth engine mount path. It is not the transit mount.MaxLength: 512
MinLength: 1
Optional: {}
usernameKey stringUsernameKey is the Secret data key holding the username.MinLength: 1
Required: {}
passwordKey stringPasswordKey is the Secret data key holding the password.MinLength: 1
Required: {}

provisioning.dpu.nvidia.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the provisioning.dpu v1alpha1 API group

Resource Types

Action

Action defines the mutually exclusive node effect applied during provisioning. Exactly one of taint, noEffect=true, drain=true, non-empty customLabel, non-empty customAction, or hold=true must be set.

Appears in:

FieldDescriptionDefaultValidation
taint TaintAdd specify taint on the DPU nodeOptional: {}
noEffect booleanDo not do any action on the DPU nodeOptional: {}
customLabel object (keys:string, values:string)Add specify labels on the DPU nodeOptional: {}
drain booleanDrain the K8s host node by NodeMaintenance operatorOptional: {}
customAction stringName of a config map which contains a pod yaml definition to run which will apply the nodeEffect.
The pod is expected to exit when node effect is done, if pod terminates with error then DPU would move to an error phase.
The DPUNode's name will be exported as an environment variable, named as DPUNODE_NAME, to each container and init container in the pod.
The labels and annotations of DPUNode will be exported in /etc/dpu/dpf-pod-info/labels and /etc/dpu/dpf-pod-info/annotations accordingly; the volume name dpf-pod-info is used to mount the labels and annotations.
If any name confliction for env or volume, the controller will not export the name or labels/annotations of DPUNode accordingly.
Optional: {}
hold booleanPlaces annotation wait-for-external-nodeeffect and waits for it to be removed
this is the default behavior in a non K8S environment
Optional: {}
force booleanForce is the flag to indicate if the node effect should be applied immediately.
If true, dpfOperatorConfig.multiDPUOperationsSyncWaitTime and dpfOperatorConfig.maxUnavailableDPUNodes will be ignored when applying node effect for DPUNodeMaintenance CR
falseOptional: {}

AgentPreInstallStatus

AgentPreInstallStatus is agent status for reprovisioning.

Appears in:

FieldDescriptionDefaultValidation
agentReported TimeAgentReported is set with a timestamp when dpu-agent detects a new DPU CR is created for reprovisioning.Optional: {}
conditions Condition arrayConditions contains pre-install conditions (e.g. NVConfigApplied for reprovisioning).Optional: {}

AgentStatus

Appears in:

FieldDescriptionDefaultValidation
lastStartupTime TimeLastStartupTime is the time when the DPU was last startedOptional: {}
initialBootID stringInitialBootID is the boot ID of the DPU OS during the first boot
rebootMethod RebootMethodTypeRebootMethod is the type of reset/reboot set by the DPU agent
See enum values in RebootMethodType.
No default is set intentionally: nil means "check not run or not applicable"
(e.g. legacy flow, or agent has not run the check yet);
a non-nil value means the check ran and this is the result.
Enum: [Unknown NoAction PowerCycle SystemReboot SystemLevelReset FirmwareReset DPUWarmReboot HostlessDPUReboot]
Optional: {}
lastObservedPendingNvconfig PendingNVConfigStateLastObservedPendingNVConfig stores the last pending NVConfig parameters seen
during reboot-method discovery on this boot. It is used on the next boot to
ignore repeated parameters that remained unchanged across boots.
Optional: {}
rebootSequenceCount integerRebootSequenceCount is the length of the current non-NoAction RebootMethod sequence:
it increments on each agent run that reports a RebootMethod other than NoAction and
resets to 0 when the agent reports NoAction. Used with RebootMethod to bound host reboot loops.
Minimum: 0
Optional: {}
kubeletVersion stringKubeletVersion represents the kubelet version running on the DPU.
preInstall AgentPreInstallStatusPreInstall holds agent-reported status for work done before OS install in the reprovisioning process.Optional: {}
trustBundleHash stringTrustBundleHash is the bundle-hash value last applied by the DPU agent.Optional: {}
trustBundleLastUpdateTime TimeTrustBundleLastUpdateTime is when the trust bundle was last updated by the DPU agent.Optional: {}
conditions Condition arrayConditions contains the conditions reported from inside the DPUOptional: {}
spiffe SpiffeStatusSpiffe contains the SPIFFE heartbeat status reported by the DPU Agent when running in
SPIFFE identity mode.
Optional: {}
hostOSInit HostOSInitStatushostOSInit reports terminal host OS init release status from the DPU agent.
Unset while the agent is polling or has not reached ReleaseHostOSInit.
Optional: {}

BFB

BFB is the Schema for the bfbs API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringBFB
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec BFBSpec
status BFBStatus{ phase:Initializing }Optional: {}

BFBList

BFBList contains a list of BFB

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringBFBList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items BFB array

BFBPhase

Underlying type: string

BFBPhase describes current state of BFB CR. Only one of the following state may be specified. Default is Initializing.

Validation:

  • Enum: [Initializing Downloading Ready Deleting Error]

Appears in:

FieldDescription
InitializingBFB CR is created
DownloadingDownloading BFB file
ReadyFinished downloading BFB file, ready for DPU to use
DeletingDelete BFB
ErrorError happens during BFB downloading

BFBReference

BFBReference is a reference to a specific BFB

Appears in:

FieldDescriptionDefaultValidation
name stringSpecifies name of the bfb CR to use for this DPUMinLength: 1

BFBSpec

BFBSpec defines the content of the BFB

Appears in:

FieldDescriptionDefaultValidation
fileName stringSpecifies the file name where the BFB is downloaded on the volume.Pattern: ^[A-Za-z0-9\_\-\.]+\.bfb$
Optional: {}
url stringThe url of the bfb image to download.Pattern: ^(http|https)://.+$
Required: {}
versions BFBVersionsOptionally specify BFB component versions. When set, these versions are
used directly in status instead of being extracted from the BFB file.
If set, all four fields (BSP, DOCA, UEFI, ATF) must be provided.
Optional: {}

BFBStatus

BFBStatus defines the observed state of BFB

Appears in:

FieldDescriptionDefaultValidation
fileName stringFilename is the name of the file where the BFB can be accessed on its volume.
This is the same as .spec.Filename if set.
phase BFBPhaseThe current state of BFB.InitializingEnum: [Initializing Downloading Ready Deleting Error]
Required: {}
versions BFBVersionsBFB versions - BSP, DOCA, UEFI and ATF
Holds detailed version information for each component within the BFB
Optional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.
conditions Condition arrayConditions represent the latest available observations of BFB stateOptional: {}

BFBVersions

BFBVersions represents the version information for BFB components.

Appears in:

FieldDescriptionDefaultValidation
bsp stringBSP (Board Support Package) version.
This field stores the version of the BSP, which provides essential
support and drivers for the hardware platform.
Optional: {}
doca stringDOCA version
Specifies the version of NVIDIA's Data Center-on-a-Chip Architecture (DOCA),
a platform for developing applications on DPUs
Optional: {}
uefi stringUEFI (Unified Extensible Firmware Interface) version.
Indicates the UEFI firmware version, which is responsible for booting
the operating system and initializing hardware components
Optional: {}
atf stringATF (Arm Trusted Firmware) version.
Contains the version of ATF, which provides a secure runtime environment
Optional: {}

BlueFieldSoftware

BlueFieldSoftware is the Schema for the bluefieldsoftware API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringBlueFieldSoftware
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec BlueFieldSpec
status BlueFieldSoftwareStatus{ phase:Initializing }Optional: {}

BlueFieldSoftwareList

BlueFieldSoftwareList contains a list of BlueFieldSoftware

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringBlueFieldSoftwareList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items BlueFieldSoftware array

BlueFieldSoftwarePhase

Underlying type: string

BlueFieldSoftwarePhase describes current state of BlueFieldSoftware CR. Only one of the following state may be specified. Default is Initializing.

Validation:

  • Enum: [Initializing Downloading Extracting Ready Deleting Error]

Appears in:

FieldDescription
InitializingBlueFieldSoftware CR is created
DownloadingDownloading BlueFieldSoftware components
ExtractingExtracting BlueFieldSoftware components from downloaded bundle
ReadyFinished downloading BlueFieldSoftware components, ready for DPU to use
DeletingDelete BlueFieldSoftware
ErrorError happens during BlueFieldSoftware downloading

BlueFieldSoftwareReference

BlueFieldSoftwareReference is a reference to a specific BlueFieldSoftware

Appears in:

FieldDescriptionDefaultValidation
name stringSpecifies name of the BlueFieldSoftware CR to use for this DPUMinLength: 1

BlueFieldSoftwareStatus

BlueFieldSoftwareStatus defines the observed state of BlueFieldSoftware

Appears in:

FieldDescriptionDefaultValidation
phase BlueFieldSoftwarePhaseThe current state of BlueFieldSoftware.InitializingEnum: [Initializing Downloading Extracting Ready Deleting Error]
Required: {}
versions BluefieldSoftwareVersionsVersions tracks the versions of the componentsOptional: {}
downloadedComponents DownloadedComponentsDownloadedComponents tracks which components have been successfully downloadedOptional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.
conditions Condition arrayConditions represent the latest available observations of BlueFieldSoftware stateOptional: {}

BlueFieldSpec

BlueFieldSpec defines the desired state of BlueFieldSoftware.

Appears in:

FieldDescriptionDefaultValidation
pldmFwBundle stringPldmFwBundle points to the BluefieldPLDM firmware bundle for baseline firmware updates.MinLength: 1
Optional: {}
forceFwUpdate booleanForceFwUpdate points to the force firmware update flag.falseOptional: {}
osIso stringOS ISO points to the OS ISO used by DPU OS installation flow.MinLength: 1
Required: {}
platformPldmFwBundle stringPlatformPldmFwBundle points to the Vera Rubin PLDM firmware bundle used for NIC firmware updates.MinLength: 1
Optional: {}
nicFw stringNicFw points to the NIC firmware binary used for E/W NIC firmware updates.
Use this when a specific NIC firmware binary is required and is not included in the platform PLDM firmware bundle.
In production, prefer using PlatformPldmFwBundle.
MinLength: 1
Optional: {}

BluefieldSoftwareVersions

BluefieldSoftwareVersions defines the versions of various software components for a Bluefield device.

Appears in:

FieldDescriptionDefaultValidation
doca stringDOCA is the formatted, user-facing DOCA version derived from the OS ISO.Optional: {}
fwBundleVersion string
osISOVersion stringOSISOVersion is the raw DOCA version for the OS ISO, taken from the ISO filenameOptional: {}
ewNicFwVersion string
bmcVersion string
bmcErotVersion string
sbiosVersion string
bfNicFwVersion string

CertificateStatus

CertificateStatus reports the rotation state of a DPF-managed certificate.

Appears in:

FieldDescriptionDefaultValidation
notAfter TimeNotAfter is the expiry time of the certificate currently installed. It is taken
from the issued certificate at rotation time.
Optional: {}
lastRotationTime TimeLastRotationTime is the time DPF last successfully rotated the certificate.Optional: {}
observedManualTrigger stringObservedManualTrigger records the value of the manual rotation annotation that
was last honored, so the same trigger is not processed twice.
Optional: {}

ClusterEndpointSpec

Appears in:

FieldDescriptionDefaultValidation
keepalived KeepalivedSpecKeepalived configures the keepalived that will be deployed for the cluster control-planeOptional: {}

ClusterPhase

Underlying type: string

ClusterPhase describes current state of DPUCluster. Only one of the following state may be specified. Default is Pending.

Validation:

  • Enum: [Pending Creating Ready NotReady Failed]

Appears in:

FieldDescription
Pending
Creating
Ready
NotReady
Failed

ClusterSpec

Appears in:

FieldDescriptionDefaultValidation
nodeLabels object (keys:string, values:string)NodeLabels specifies the labels to be added to the node.Optional: {}
nodeAnnotations object (keys:string, values:string)NodeAnnotations specifies the annotations to be added to the node.Optional: {}
selector LabelSelectorSelector defines the selector of the DPUClusters the produced DPUs should joinOptional: {}

ConfigFile

ConfigFile describes a file materialized from inline raw content or external contentFrom.

Appears in:

FieldDescriptionDefaultValidation
type ConfigFileTypeType controls when the file content is materialized.
cloud-init files use raw inline content and are written during cloud-init.
agent-applied files use contentFrom and are written later by dpu-agent.
Defaults to cloud-init when omitted.
cloud-initEnum: [cloud-init agent-applied]
Optional: {}
path stringPath is the path of the file to be written.Required: {}
operation DPUFlavorFileOpOperation is the operation to be performed on the file.Enum: [override append]
Optional: {}
raw stringRaw is the inline file content.
Supported only when type is cloud-init. When type is omitted, type defaults
to cloud-init and raw must be set.
Optional: {}
contentFrom ConfigFileContentSourceContentFrom references external content for the file.
Supported only when type is agent-applied.
Optional: {}
permissions stringPermissions are the permissions to be set on the file.Optional: {}

ConfigFileContentSource

Appears in:

FieldDescriptionDefaultValidation
configMapKeyRef ConfigMapKeySelectorConfigMapKeyRef selects a key from a ConfigMap in the DPU namespace.Optional: {}

ConfigFileType

Underlying type: string

ConfigFileType defines when a config file is materialized.

Validation:

  • Enum: [cloud-init agent-applied]

Appears in:

FieldDescription
cloud-init
agent-applied

ContainerdConfig

Appears in:

FieldDescriptionDefaultValidation
registryEndpoint stringRegistryEndpoint is the endpoint of the container registry.Optional: {}

DMAScalableFunction

DMAScalableFunction configures the DMA SF that the dpu-agent creates on BlueField-4 socket-direct systems when Enabled is true.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled controls whether the dpu-agent creates the DMA SF. The presence of
the dma struct alone does not enable creation; enabled must be set
explicitly. Only takes effect on BlueField-4 socket-direct systems.
Required: {}
sfNum integerSFNum is the number of the DMA Scalable Function. Defaults to 8000 when
unset. Only takes effect on BlueField-4 socket-direct systems.
Minimum: 1
Optional: {}
macAddress stringMACAddress pins the DMA SF's MAC address (canonical colon-separated
48-bit form, e.g. "02:40:51:7c:e3:0f"). Defaults to a deterministic,
vendor-compatible derivation when unset.
Pattern: ^([0-9A-Fa-f]\{2\}:)\{5\}[0-9A-Fa-f]\{2\}$
Optional: {}

DMSAddress

DMSAddress represents the IP and Port configuration for DMS.

Appears in:

FieldDescriptionDefaultValidation
ip stringIP address in IPv4 format.Format: ipv4
port integerPort number.Minimum: 1

DPU

DPU is the Schema for the dpus API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPU
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUSpec
status DPUStatus{ phase:Initializing }Optional: {}

DPUCluster

DPUCluster is the Schema for the dpuclusters API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUCluster
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUClusterSpecRequired: {}
status DPUClusterStatus{ phase:Pending }Optional: {}

DPUClusterEtcdEncryptionAtRestStatus

DPUClusterEtcdEncryptionAtRestStatus defines the observed encryption-at-rest state for a DPUCluster.

Appears in:

FieldDescriptionDefaultValidation
provider stringProvider is the committed encryption-at-rest provider for the cluster.Enum: [staticKey vaultKMS]
Required: {}
staticKey DPUClusterStaticKeyEncryptionStatusStaticKey exposes staticKey-specific observed state.Optional: {}

DPUClusterList

DPUClusterList contains a list of DPUCluster

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUClusterList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUCluster array

DPUClusterSpec

DPUClusterSpec defines the desired state of DPUCluster

Appears in:

FieldDescriptionDefaultValidation
type stringType of the cluster with few supported values
static - existing cluster that is deployed by user. For DPUCluster of this type, the kubeconfig field must be set.
kamaji - DPF managed cluster. The kamaji-cluster-manager will create a DPU cluster on behalf of this CR.
$(others) - any string defined by ISVs, such type names must start with a prefix.
Pattern: kamaji|static|[^/]+/.*
Required: {}
maxNodes integerMaxNodes is the max amount of node in the cluster1000Maximum: 3000
Minimum: 1
Optional: {}
kubeconfig stringKubeconfig is the secret that contains the admin kubeconfigOptional: {}
clusterEndpoint ClusterEndpointSpecClusterEndpoint contains configurations of the cluster entry pointOptional: {}

DPUClusterStaticKeyEncryptionStatus

DPUClusterStaticKeyEncryptionStatus defines observed staticKey encryption-at-rest state.

Appears in:

FieldDescriptionDefaultValidation
activeKeyRef ObservedSecretKeyRefActiveKeyRef is the source Secret observed for the currently active key.
This field is informational and must not be used by controllers to select desired key material.
Optional: {}

DPUClusterStatus

DPUClusterStatus defines the observed state of DPUCluster

Appears in:

FieldDescriptionDefaultValidation
phase ClusterPhasePendingEnum: [Pending Creating Ready NotReady Failed]
version stringVersion is the K8s control-plane version of the clusterOptional: {}
nodesCount integerNodesCount is the number of DPUs assigned to the clusterMinimum: 0
Optional: {}
etcdEncryptionAtRest DPUClusterEtcdEncryptionAtRestStatusEtcdEncryptionAtRest exposes the observed encryption-at-rest state for the cluster.Optional: {}
conditions Condition arrayOptional: {}

DPUDevice

DPUDevice is the Schema for the dpudevices API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUDevice
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUDeviceSpec
status DPUDeviceStatus

DPUDeviceClusterSpec

DPUDeviceClusterSpec holds node labels and annotations propagated from DPUDevice to the DPU and cluster node.

Appears in:

FieldDescriptionDefaultValidation
nodeLabels object (keys:string, values:string)NodeLabels specifies labels to be added to the DPU cluster node for this device.Optional: {}
nodeAnnotations object (keys:string, values:string)NodeAnnotations specifies annotations to be added to the DPU cluster node for this device.Optional: {}

DPUDeviceList

DPUDeviceList contains a list of DPUDevices

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUDeviceList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUDevice array

DPUDeviceSpec

DPUDeviceSpec defines the content of DPUDevice

Appears in:

FieldDescriptionDefaultValidation
psid stringPSID is the Product Serial ID of the device.
It's used to track the device's lifecycle and for inventory management.
This value is immutable and should not be changed once set.
Example: "MT_0001234567", "MT25066004C7"
Deprecated: This field is deprecated and will be removed in a future version. Use status.psid instead.
Optional: {}
serialNumber stringSerialNumber is the serial number of the device.
It's used to track the device's lifecycle and for inventory management.
This value is immutable and should not be changed once set.
Example: "MT_0001234567", "MT25066004C7"
MinLength: 1
Required: {}
opn stringOPN is the Ordering Part Number of the device.
It's used to track the device's compatibility with different software versions.
This value is immutable and should not be changed once set.
Example: "900-9D3B4-00SV-EA0"
Deprecated: This field is deprecated and will be removed in a future version. Use status.opn instead.
Optional: {}
bmcIp stringBMCIP is the IP address of the BMC (Base Management Controller) on the device.
This is used for remote management and monitoring of the device.
Example: "10.1.2.3"
Format: ipv4
Optional: {}
bmcPort integerBMCPort is the port number of the BMC (Base Management Controller) on the device.
This is used for remote management and monitoring of the device.
This value is immutable and should not be changed once set.
Example: 443
443Minimum: 1
Optional: {}
numberOfPFs integerNumberOfPFs is the number of PFs on the device.
This value is immutable and should not be changed once set.
Example: 1
1Minimum: 1
Optional: {}
nicDeviceCount integerNICDeviceCount is the expected number of NIC devices used by dpu-agent provisioning.
Valid range is 1 to 8. When unspecified, it defaults to 8.
Maximum: 8
Minimum: 1
Optional: {}
pf0Name stringPF0Name is the name of the PF0 on the device.
This value is immutable and should not be changed once set.
Example: "eth0"
Deprecated: This field is deprecated and will be removed in a future version. Use status.pf0Name instead.
Optional: {}
bmcCredentialSecretName stringBMCCredentialSecretName is the name of a Secret in the same namespace containing
per-device BMC credentials. The secret must contain a "password" key with the BMC credential value.
If specified, this password takes precedence over the shared bmc-shared-password secret.
Optional: {}
cluster DPUDeviceClusterSpecSpecifies details on the K8S cluster to joinOptional: {}
values RawExtensionValues contains free-form per-device values used to render a DPUFlavorTemplate
into a concrete generated DPUFlavor for this device.
Optional: {}

DPUDeviceStatus

Appears in:

FieldDescriptionDefaultValidation
psid stringPSID is the Product Serial ID of the device.
It's used to track the device's lifecycle and for inventory management.
This value is discovered and should not be changed once set.
Example: "MT_0001234567", "MT25066004C7"
Optional: {}
serialNumber stringSerialNumber is the serial number of the device.
It's used to track the device's lifecycle and for inventory management.
This value is discovered and should not be changed once set.
Example: "MT_0001234567", "MT25066004C7"
Optional: {}
opn stringOPN is the Ordering Part Number of the device.
It's used to track the device's compatibility with different software versions.
This value is discovered and should not be changed once set.
Example: "900-9D3B4-00SV-EA0"
Optional: {}
bmcIp stringBMCIP is the IP address of the BMC (Base Management Controller) on the device.
This is used for remote management and monitoring of the device.
This value is discovered and should not be changed once set.
Example: "10.1.2.3"
Format: ipv4
Optional: {}
bmcPort integerBMCPort is the port number of the BMC (Base Management Controller) on the device.
This is used for remote management and monitoring of the device.
This value is immutable and should not be changed once set.
Example: 443
443Minimum: 1
Optional: {}
pciAddress stringPCIAddress is the PCI address of the device in the host system.
Example: "0000-03-00", "03-00"
Optional: {}
pf0Name stringPF0Name is the name of the PF0 on the device.
Example: "eth0"
Optional: {}
pf0Mac stringPF0MAC is the MAC address of the PF0 on the device.
Example: "00:00:00:00:00:00"
Pattern: ^([0-9A-Fa-f]\{2\}[:-])\{5\}([0-9A-Fa-f]\{2\})$
Optional: {}
dpuType DPUTypeDPUType is the type of the DPU.UnknownEnum: [Unknown BlueField2 BlueField3 BlueField4]
Optional: {}
dpuMode DpuModeTypeDPUMode is the mode of the DPU.dpuEnum: [dpu nic]
Optional: {}
secureBoot SecureBootStatusSecureBoot indicates the current UEFI Secure Boot state.Optional: {}
bmcCredentialSecretName stringBMCCredentialSecretName is the name of the Secret last used successfully for BMC authentication.Optional: {}
bmcServerCertificate CertificateStatusBMCServerCertificate reports the BMC mTLS server certificate rotation state.Optional: {}
caTrustBundle TrustBundleStatusCATrustBundle stores trust bundle reconciliation progress for the DPUDevice.Optional: {}
conditions Condition arrayOptional: {}

DPUDiscovery

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUDiscovery
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUDiscoverySpec
status DPUDiscoveryStatus

DPUDiscoveryList

DPUDiscoveryList contains a list of DPUDiscovery types

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUDiscoveryList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUDiscovery array

DPUDiscoverySpec

DPUDiscoverySpec defines the desired state of DPUDiscovery

Appears in:

FieldDescriptionDefaultValidation
ipRangeSpec IPRangeValidationSpecIPRange defines the range of IP addresses to scan
scanInterval DurationScanInterval defines how often to perform the scan1h
workers integerWorkers defines the number of workers to use for the scan (default 1 worker for each 255 IPs in the range)Optional: {}

DPUDiscoveryStatus

DPUDiscoveryStatus defines the observed state of DPUDiscovery

Appears in:

FieldDescriptionDefaultValidation
observedGeneration integerObservedGeneration is the generation of the spec that was last applied by a successful scan.
When spec (e.g. IP range) changes, reconciliation runs a scan immediately instead of waiting for the next interval.
Optional: {}
lastScanTime TimeLastScanTime is the timestamp of the last successful scan
foundDPUs integerFoundDPUs is the list of discovered DPU BMC IPs

DPUFLavorSysctl

Appears in:

FieldDescriptionDefaultValidation
parameters string arrayParameters are the sysctl parameters to be set.Optional: {}

DPUFlavor

DPUFlavor is the Schema for the dpuflavors API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUFlavor
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUFlavorSpec

DPUFlavorFileOp

Underlying type: string

DPUFlavorFileOp defines the operation to be performed on the file

Validation:

  • Enum: [override append]

Appears in:

FieldDescription
override
append

DPUFlavorGrub

Appears in:

FieldDescriptionDefaultValidation
kernelParameters string arrayKernelParameters are the kernel parameters to be set in the grub configuration.Optional: {}

DPUFlavorList

DPUFlavorList contains a list of DPUFlavor

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUFlavorList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUFlavor array

DPUFlavorOVS

Appears in:

FieldDescriptionDefaultValidation
rawConfigScript stringRawConfigScript is the raw configuration script for OVS.Optional: {}

DPUFlavorSpec

DPUFlavorSpec defines the content of DPUFlavor

Appears in:

FieldDescriptionDefaultValidation
grub DPUFlavorGrubGrub contains the grub configuration for the DPUFlavor.Optional: {}
sysctl DPUFLavorSysctlSysctl contains the sysctl configuration for the DPUFlavor.Optional: {}
nvconfig NVConfig arrayNVConfig contains the device-specific configuration (firmware settings, device parameters).
Each entry specifies a device (wildcard '', or port identifiers 'p0'/'P0'/'p1'/'P1') and its parameters.
If device is '
' or unspecified (defaults to ''), it applies to all devices and must be the only entry.
Each device (including unspecified as '
') must be unique across all nvconfig entries (case-insensitive).
Validation enforces: device enum values, parameter format (KEY=VALUE), case-insensitive uniqueness, and size limits.
MaxItems: 3
Optional: {}
ovs DPUFlavorOVSOVS contains the OVS configuration for the DPUFlavor.Optional: {}
bfcfgParameters string arrayBFCfgParameters are the parameters to be set in the bf.cfg file.Optional: {}
configFiles ConfigFile arrayConfigFiles are the files to be written on the DPU.Optional: {}
packages PackageSpec arrayPackages are the packages to reconcile on the node.MaxItems: 64
Optional: {}
systemdServices SystemdServiceSpec arraySystemdServices are the systemd services to manage on the node.MaxItems: 64
Optional: {}
containerdConfig ContainerdConfigContainerdConfig contains the configuration for containerd.Optional: {}
dpuResources ResourceListDPUResources indicates the minimum amount of resources needed for a BFB with that flavor to be installed on a
DPU. Using this field, the controller can understand if that flavor can be installed on a particular DPU. It
should be set to the total amount of resources the system needs + the resources that should be made available for
DPUServices to consume.
Optional: {}
systemReservedResources ResourceListSystemReservedResources indicates the resources that are consumed by the system (OS, OVS, DPF system etc) and are
not made available for DPUServices to consume. DPUServices can consume the difference between DPUResources and
SystemReservedResources. This field must not be specified if dpuResources are not specified.
Optional: {}
dpuMode DpuModeTypeDpuMode is deprecated and no longer used by provisioning workflows.
Deployment mode is sourced from DPFOperatorConfig and exposed on DPU.status.deploymentMode.
Enum: [dpu zero-trust nic]
Optional: {}
hostNetworkInterfaceConfigs NetworkInterfaceConfig arrayHostNetworkInterfaceConfigs contains the configuration for the host-side network interfaces.Optional: {}
ewNicConfigurations NicConfiguration arrayEWNicConfigurations lists per-NIC configuration for the E/W NICs.
Only the first entry is applied in this release; additional entries are ignored until a future
release adds multi-NIC support. The field is modeled as a list now so the API shape does not
need to change when multiple entries are supported.
MaxItems: 16
Optional: {}
scalableFunctions ScalableFunctionsScalableFunctions configures Scalable Functions (SFs) created on the DPU.Optional: {}
hostOSInit HostOSInithostOSInit configures when the DPU agent releases host OS init after DELAY_HOST_OS_INIT=0x3
(ENABLE_USER) is set in nvconfig. Omitted releaseAfter defaults to dpuServiceCriticalPodsReady
at agent runtime.
Optional: {}

DPUFlavorTemplate

DPUFlavorTemplate is the Schema for the dpuflavortemplates API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUFlavorTemplate
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUFlavorTemplateSpec

DPUFlavorTemplateList

DPUFlavorTemplateList contains a list of DPUFlavorTemplate

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUFlavorTemplateList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUFlavorTemplate array

DPUFlavorTemplateSpec

DPUFlavorTemplateSpec defines the content of a DPUFlavorTemplate. The template body is rendered per-DPU against DPUDevice.spec.values to produce a concrete DPUFlavor.

Appears in:

FieldDescriptionDefaultValidation
template stringTemplate is the DPUFlavor body as a YAML/JSON string with Go template actions
(delimited by double curly braces). It is rendered against DPUDevice.spec.values and the result is
unmarshalled into a typed DPUFlavor and validated by DPUFlavor admission when
the generated flavor is created. Referencing a key that is absent from the device
values fails the render, and the "define", "block" and "template" actions are
rejected. It should not contain dpuResources or systemReservedResources: the
structured fields below take precedence and, when set, override anything the
rendered body contains.
MaxLength: 1048576
MinLength: 1
Required: {}
dpuResources ResourceListDPUResources is resource-fitting metadata mirrored from DPUFlavor. It is NOT
templated: when set it is stamped onto every generated DPUFlavor and takes
precedence over anything in the rendered body.
Optional: {}
systemReservedResources ResourceListSystemReservedResources is resource-fitting metadata mirrored from DPUFlavor. It is
NOT templated: when set it is stamped onto every generated DPUFlavor and takes
precedence over anything in the rendered body.
Optional: {}

DPUList

DPUList contains a list of DPU

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPU array

DPUNode

DPUNode is the Schema for the dpunodes API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUNode
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUNodeSpec
status DPUNodeStatus

DPUNodeList

DPUNodeList contains a list of DPUNode

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUNodeList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUNode array

DPUNodeMaintenance

DPUNodeMaintenance is the Schema for the dpunodemaintenances API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUNodeMaintenance
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUNodeMaintenanceSpec
status DPUNodeMaintenanceStatus

DPUNodeMaintenanceList

DPUNodeMaintenanceList contains a list of DPUNodeMaintenance

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUNodeMaintenanceList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUNodeMaintenance array

DPUNodeMaintenanceSpec

DPUNodeMaintenanceSpec is the specification of the DPUNodeMaintenance object

Appears in:

FieldDescriptionDefaultValidation
dpuNodeName stringDPUNodeName is the name of the DPUNode that is being maintained.Required: {}
nodeEffect NodeEffectNodeEffect is the effect to be applied to the node.Optional: {}
requestor string arrayRequestor is the list of consumers for the maintenance.Optional: {}

DPUNodeMaintenanceStatus

DPUNodeMaintenanceStatus defines the observed state of DPUNodeMaintenance

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the objectOptional: {}
nodeEffectSyncStartTime TimeNodeEffectSyncStartTime is the time when the node effect sync started.Optional: {}
multiDPUOperationsSyncWaitTime DurationMultiDPUOperationsSyncWaitTime is the wait time between DPUs on the same node.Optional: {}
maxUnavailableDPUNodes integerMaxUnavailableDPUNodes is the maximum number of DPUNodes that are unavailable during the node effect period.Minimum: 1
Optional: {}

DPUNodeSpec

DPUNodeSpec defines the desired state of DPUNode

Appears in:

FieldDescriptionDefaultValidation
nodeRebootMethod NodeRebootMethodDefines the method for rebooting the host.
One of the following options can be chosen for this field:
- "external": Reboot the host via an external means, not controlled by the
DPU controller.
- "script": Reboot the host by executing a custom script.
- "hostAgent": Use the host agent to reboot the host.
- "none": Do not reboot a host through the DPUNode.
"hostAgent" is the default value.
{ hostAgent:map[] }Optional: {}
nodeDMSAddress DMSAddressThe IP address and port where the DMS is exposed. Only applicable if dpuInstallInterface is set to gNOI.
Deprecated: this field is no longer used.
Optional: {}
dpus DPURef arrayA map containing names of each DPUDevice attached to the node.Optional: {}

DPUNodeStatus

DPUNodeStatus defines the observed state of DPUNode

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions represent the latest available observations of an object's state.Type: array
Optional: {}
dpuInstallInterface stringThe name of the interface which will be used to install the bfb image, can be one of hostAgent,redfishEnum: [gNOI hostAgent redfish]
Optional: {}
kubeNodeRef stringThe name of the Kubernetes Node object that this DPUNode represents.
This field is optional and only relevant if the x86 host is part of the DPF Kubernetes cluster.
Optional: {}
rebootInProgress booleanRebootInProgress indicates if the node is in the process of rebooting.Optional: {}
rebootMethod RebootMethodTypeRebootMethod is the host-level reboot method recommended by child DPUs in
DPURebooting phase, aggregated by priority (most disruptive wins, ties broken
by ascending DPU name):
PowerCycle > SystemLevelReset > SystemReboot > HostlessDPUReboot > FirmwareReset > DPUWarmReboot > NoAction > Unknown.
Stamped once at least one DPU reports a method, preserved across the
rebooting -> idle transition, and cleared with DPUNodeRebootInProgress
when the DPUNode loses all its DPUs.
Enum: [Unknown NoAction PowerCycle SystemReboot SystemLevelReset FirmwareReset DPUWarmReboot HostlessDPUReboot]
Optional: {}

DPUOutdated

DPUOutdated reports that the DPU has drifted from its owning DPUSet's DPUTemplate in a way that requires the DPU to be reprovisioned. The struct is presence-based: when the DPU matches the template, DPUStatus.Outdated is nil. The DPUSet controller is the sole writer.

Appears in:

FieldDescriptionDefaultValidation
timeStamp TimeTimeStamp records when this drift was first observed for the current Reason.
It is preserved across reconciles as long as Reason is unchanged.
Required: {}
reason stringReason is the machine-readable drift code (e.g. OutdatedBFB). When more
than one template field has drifted, Reason reports the first in fixed
precedence order: BFB -> DPUFlavor -> SecureBoot -> BlueFieldSoftware.
Required: {}
message stringMessage is a human-readable summary that lists every drifted field,
e.g. "DPU template has changed (BFB: bfb-v1 -> bfb-v2, DPUFlavor: ...)".
Required: {}

DPUPhase

Underlying type: string

DPUPhase describes current state of DPU. Only one of the following state may be specified. Default is Initializing.

Validation:

  • Enum: [Initializing Node Effect Pending Update Firmware Config FW Parameters Prepare BFB OS Installing DPU Config DPU Cluster Config Host Network Configuration Host OS Init Release Ready Error Deleting Rebooting Perform ARM Force Restart Initialize Interface Node Effect Removal Checking Host Reboot Required]

Appears in:

FieldDescription
InitializingDPUInitializing is the first phase after the DPU is created.
Node EffectDPUNodeEffect means the controller will handle the node effect provided by the user.
PendingDPUPending means the controller is waiting for the BFB to be ready.
Prepare BFBDPUPrepareBFB means the controller is preparing the BFB and bf.cfg to be installed to DPU
Update FirmwareDPUUpdateFirmware means the controller will update the DPU firmware for BlueField4.
DPU ConfigDPUConfig means the DPU agent will configure the DPU
Config FW ParametersDPUConfigFWParameters means the controller will manipulate DPU firmware, e.g., set DPU mode, check firmware version
Initialize InterfaceDPUInitializeInterface means the controller will intitialize the interface used to provision the DPUs, e.g., create the DMS pod, set up RedFish account.
OS InstallingDPUOSInstalling means the controller will provision the DPU through the DMS gNOI interface.
DPU Cluster ConfigDPUClusterConfig means the node configuration and Kubernetes Node join procedure are in progress .
Host Network ConfigurationDPUHostNetworkConfiguration means the host network configuration is running.
Host OS Init ReleaseDPUHostOSInitRelease waits for the DPU agent to release host OS init when configured.
Node Effect RemovalDPUNodeEffectRemoval means the controller will remove the node effect from the DPU.
ReadyDPUReady means the DPU is ready to use.
ErrorDPUError means error occurred.
DeletingDPUDeleting means the DPU CR will be deleted, controller will do some cleanup works.
RebootingDPURebooting means the host of DPU is rebooting.
Perform ARM Force RestartDPUPerformArmForceRestart means ARM ForceRestart operations are in progress for Secure Boot configuration.

DPURef

Appears in:

FieldDescriptionDefaultValidation
name stringName of the DPU device.MinLength: 1
Required: {}

DPUSet

DPUSet is the Schema for the dpusets API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUSet
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUSetSpec
status DPUSetStatus

DPUSetList

DPUSetList contains a list of DPUSet

FieldDescriptionDefaultValidation
apiVersion stringprovisioning.dpu.nvidia.com/v1alpha1
kind stringDPUSetList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUSet array

DPUSetSpec

DPUSetSpec defines the desired state of DPUSet

Appears in:

FieldDescriptionDefaultValidation
strategy DPUSetStrategyThe rolling update strategy to use to updating existing DPUs with new ones.Required: {}
dpuNodeSelector LabelSelectorSelect the DPUNodes with specific labelsOptional: {}
dpuSelector object (keys:string, values:string)Select the DPU with specific labels
Deprecated: This field is deprecated and will be removed with v26.7.0. Use DPUDeviceSelector instead.
Optional: {}
dpuDeviceSelector LabelSelectorDPUDeviceSelector defines the selector for DPUDevices that the DPUSet should target and should create a DPU for.Optional: {}
dpuTemplate DPUTemplateObject that describes the DPU that will be created if insufficient replicas are detectedRequired: {}

DPUSetStatus

DPUSetStatus defines the observed state of DPUSet

Appears in:

FieldDescriptionDefaultValidation
dpuStatistics object (keys:DPUPhase, values:integer)DPUStatistics is a map of DPUPhase to the number of DPUs in that phase.Optional: {}
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

DPUSetStrategy

Appears in:

FieldDescriptionDefaultValidation
type StrategyTypeCan be "OnDelete" or "RollingUpdate".Enum: [OnDelete RollingUpdate]
Required: {}
rollingUpdate RollingUpdateDPURolling update config params. Present only if StrategyType = RollingUpdate.Optional: {}

DPUSpec

DPUSpec defines the desired state of DPU

Appears in:

FieldDescriptionDefaultValidation
dpuNodeName stringSpecifies the DPUNode this DPU belongs toRequired: {}
dpuDeviceName stringSpecifies the name of the DPUDevice this DPU is associated withMinLength: 1
Required: {}
bfb stringSpecifies name of the bfb CR to use for this DPUMaxLength: 253
MinLength: 1
Optional: {}
blueFieldSoftware stringSpecifies the name of the BlueFieldSoftware CR to use for this DPUMaxLength: 253
MinLength: 1
Optional: {}
serialNumber stringThe serial number of the DPUMinLength: 1
Required: {}
pciAddress stringThe PCI device related DPU
Example: "0000-03-00", "03-00"
Pattern: ^([0-9a-fA-F]\{4\}[-])?[0-9a-fA-F]\{2\}[-][0-9a-fA-F]\{2\}$
Optional: {}
nodeEffect NodeEffectSpecifies how changes to the DPU should affect the NodeRequired: {}
cluster K8sClusterSpecifies details on the K8S cluster to joinOptional: {}
dpuFlavor stringDPUFlavor is the name of the DPUFlavor that will be used to deploy the DPU.MinLength: 1
Required: {}
astraEnabled booleanAstraEnabled indicates whether E/W NIC configuration (Astra) is enabledOptional: {}
secureBoot booleanSecureBoot specifies whether UEFI Secure Boot should be enabled.Optional: {}
bmcIP stringBMCIP is the ip address of the DPU BMC
Deprecated: Use BMCIP from DPUDevice instead.
Optional: {}

DPUStatus

DPUStatus defines the observed state of DPU

Appears in:

FieldDescriptionDefaultValidation
phase DPUPhaseThe current state of DPU.InitializingEnum: [Initializing Node Effect Pending Update Firmware Config FW Parameters Prepare BFB OS Installing DPU Config DPU Cluster Config Host Network Configuration Host OS Init Release Ready Error Deleting Rebooting Perform ARM Force Restart Initialize Interface Node Effect Removal Checking Host Reboot Required]
Required: {}
previousPhase DPUPhasePreviousPhase is the last non-empty Phase before the current Phase, set by the controller
when Phase transitions. It may be unset during early initialization (empty Phase) or until
the first transition from a non-empty Phase. Internal controller tracking only.
Enum: [Initializing Node Effect Pending Update Firmware Config FW Parameters Prepare BFB OS Installing DPU Config DPU Cluster Config Host Network Configuration Host OS Init Release Ready Error Deleting Rebooting Perform ARM Force Restart Initialize Interface Node Effect Removal Checking Host Reboot Required]
Optional: {}
outdated DPUOutdatedOutdated, when present, indicates the DPU has drifted from its owning
DPUSet's DPUTemplate and needs to be reprovisioned. Set by the DPUSet
controller; absent when the DPU matches the template.
Optional: {}
conditions Condition arrayConditions represents the provisioning lifecycle conditions.Optional: {}
operationalConditions Condition arrayOperationalConditions represents aggregated operational readiness conditions.
These conditions reflect the runtime health and readiness of DPU services and node health,
separate from the provisioning lifecycle represented by Conditions.
Optional: {}
bfbFile stringBFBFile is the path to the BFB fileOptional: {}
bfCFGFile stringBFCFGFile is the path to the bf.cfgOptional: {}
bfbVersion stringbfb version of this DPUOptional: {}
dpfVersion stringDPF version used to install this DPUOptional: {}
pciDevice stringpci device information of this DPUOptional: {}
requiredReset booleanwhether require reset of DPUOptional: {}
firmware Firmwarethe firmware information of DPUOptional: {}
addresses NodeAddress arrayThe DPU node's IP addressesOptional: {}
dpuInstallInterface stringthe name of the interface which will be used to install the bfb image,
and communicate with DPU, can be one of hostAgent,redfish
Enum: [gNOI hostAgent redfish]
Optional: {}
postProvisioningNodeEffect booleanIndicates that node effect was triggered by post-provisioning label changesOptional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.
dpuType DPUTypeThe type of the DPUUnknownEnum: [Unknown BlueField2 BlueField3 BlueField4]
Optional: {}
agentLastStartupTime TimeAgentLastStartupTime is the time when the DPU agent was last started. This is copied from agentStatus.lastStartupTime.Optional: {}
agentStatus AgentStatusAgentStatus contains the information reported from inside the DPUOptional: {}
rebootStatus RebootStatusRebootStatus contains host reboot progress.
DPU controller derives user-facing DPUCondRebooted from this status.
Optional: {}
dpuMode DpuModeTypeThe mode of the DPUdpuEnum: [dpu nic]
Optional: {}
deploymentMode DeploymentModeDeploymentMode is copied from DPFOperatorConfig.spec.deploymentMode by the controller.
This field is read-only for users.
Enum: [zero-trust host-trusted]
Optional: {}
hostless booleanHostless indicates that the DPU is attached to a system-managed synthetic
DPUNode rather than a physical host.
Optional: {}
secureBoot SecureBootStatusSecureBoot indicates the current UEFI Secure Boot state.Optional: {}
identityMode IdentityModeIdentityMode records which authentication mechanism the DPU Agent uses to reach the
management-cluster kube-apiserver. Stamped exactly once by the DPU controller during phase
Initializing (nil guard); immutable thereafter. Pre-SPIFFE legacy DPUs have IdentityMode
unset (nil) which consumers MUST treat semantically as bootstrap-token.
Enum: [spiffe bootstrap-token]
Optional: {}
redfishTaskId stringThe task ID of the last task performed on the DPU BMCOptional: {}

DPUTemplate

DPUTemplate is a template for DPU

Appears in:

FieldDescriptionDefaultValidation
annotations object (keys:string, values:string)Annotations specifies annotations which are added to the DPU.
spec DPUTemplateSpecSpec specifies the DPU specification.

DPUTemplateSpec

DPUTemplateSpec defines the desired provisioning template for DPUs.

Appears in:

FieldDescriptionDefaultValidation
bfb BFBReferenceSpecifies a BFB CROptional: {}
blueFieldSoftware BlueFieldSoftwareReferenceSpecifies a BlueFieldSoftware CROptional: {}
nodeEffect NodeEffectSpecifies how changes to the DPU should affect the NodeRequired: {}
cluster ClusterSpecSpecifies details on the K8S cluster to joinOptional: {}
dpuFlavor stringDPUFlavor is the name of the DPUFlavor that will be used to deploy the DPU.
Mutually exclusive with DPUFlavorTemplate.
MinLength: 1
Optional: {}
dpuFlavorTemplate stringDPUFlavorTemplate is the name of a DPUFlavorTemplate that is rendered per-DPU
(against DPUDevice.spec.values) into a generated DPUFlavor. Mutually exclusive
with DPUFlavor.
MinLength: 1
Optional: {}
astraEnabled booleanAstraEnabled indicates whether E/W NIC configuration (Astra) is enabledOptional: {}
secureBoot booleanSecureBoot specifies whether UEFI Secure Boot should be enabled.Optional: {}

DPUType

Underlying type: string

Appears in:

FieldDescription
Unknown
BlueField2
BlueField3
BlueField4

DeploymentMode

Underlying type: string

DeploymentMode describes the cluster deployment model for provisioning (zero-trust vs host-trusted). This type is intentionally duplicated from operator/v1alpha1.DeploymentMode: the provisioning API must not import the operator API group. Keep values and semantics aligned with DPFOperatorConfig.spec.deploymentMode.

Validation:

  • Enum: [zero-trust host-trusted]

Appears in:

FieldDescription
zero-trust
host-trusted

DownloadedComponents

DownloadedComponents tracks which components have been downloaded

Appears in:

FieldDescriptionDefaultValidation
pldmFwBundle string
platformPldmFwBundle string
osIso string
nicFw string

DpuModeType

Underlying type: string

DpuModeType defines the mode of the DPU

Validation:

  • Enum: [dpu zero-trust nic]

Appears in:

FieldDescription
dpu
nic
zero-trustZeroTrustMode is deprecated and kept for backward compatibility with DPUFlavor.spec.dpuMode.
Deprecated: DPUFlavor.spec.dpuMode is deprecated; use DPFOperatorConfig.spec.deploymentMode.

External

Appears in:

Firmware

Appears in:

FieldDescriptionDefaultValidation
bmc stringBMC is the used BMC firmware version
nic stringNIC is the used NIC firmware version
uefi stringUEFI is the used UEFI firmware version

GNOI

Appears in:

HostAgent

Appears in:

HostOSInit

HostOSInit configures the readiness gate for host OS init release.

Appears in:

FieldDescriptionDefaultValidation
releaseAfter HostOSInitReleaseAfterreleaseAfter selects which operational readiness gate must be True before the agent
calls mlxreg to release the host. When omitted, dpuServiceCriticalPodsReady is used.
Optional: {}

HostOSInitGate

Underlying type: struct{}

HostOSInitGate marks a release gate branch in a one-of union.

Appears in:

HostOSInitReleaseAfter

HostOSInitReleaseAfter is a one-of selector for the host OS init release gate.

Appears in:

FieldDescriptionDefaultValidation
operationalReady HostOSInitGateoperationalReady waits for DPU.status.operationalConditions[OperationalReady] == True.Optional: {}
dpuServiceCriticalPodsReady HostOSInitGatedpuServiceCriticalPodsReady waits for DPU.status.operationalConditions[DPUServiceCriticalPodsReady] == True.Optional: {}

HostOSInitSkipped

HostOSInitSkipped reports that host OS init release was not required.

Appears in:

FieldDescriptionDefaultValidation
reason stringreason is a stable machine-readable outcome code.Optional: {}
message stringmessage is a human-readable explanation.Optional: {}

HostOSInitStatus

HostOSInitStatus is the agent-reported terminal status for host OS init release.

Appears in:

FieldDescriptionDefaultValidation
skipped HostOSInitSkippedskipped indicates release was not required for this DPU.Optional: {}
succeeded HostOSInitSucceededsucceeded indicates host OS init was released or was already cleared.Optional: {}

HostOSInitSucceeded

HostOSInitSucceeded reports successful host OS init release.

Appears in:

FieldDescriptionDefaultValidation
releaseAfter HostOSInitReleaseAfterreleaseAfter echoes the effective gate used for release.Optional: {}

IPRange

IPRange represents a range of IP addresses to scan

Appears in:

FieldDescriptionDefaultValidation
startIP stringPattern: ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
Required: {}
endIP stringPattern: ^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.)\{3\}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$
Required: {}
port integerPort defines the port to on which BMC is listening443Maximum: 65535
Minimum: 1
Optional: {}

IPRangeValidationSpec

IPRangeValidationSpec defines the desired state of IPRangeValidation IPRange defines the IP range to validate

Appears in:

FieldDescriptionDefaultValidation
ipRange IPRange

IdentityMode

Underlying type: string

IdentityMode records which authentication mechanism the DPU Agent uses to reach the management-cluster kube-apiserver. It is stamp-once (see DPUStatus.IdentityMode).

Appears in:

FieldDescription
spiffeIdentityModeSpiffe indicates the DPU Agent authenticates with a SPIFFE-issued JWT-SVID.
bootstrap-tokenIdentityModeBootstrapToken indicates the DPU Agent authenticates with a kubeadm bootstrap token.
An unset (nil) IdentityMode is treated semantically as bootstrap-token; no sentinel is declared
for the unset case deliberately, to force explicit handling by consumers.

K8sCluster

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the DPUs Kubernetes clusterOptional: {}
namespace stringNamespace is the tenants namespace name where the Kubernetes cluster will be deployedOptional: {}
nodeLabels object (keys:string, values:string)NodeLabels specifies the labels to be added to the node.Optional: {}
nodeAnnotations object (keys:string, values:string)NodeAnnotations specifies the annotations to be added to the node.Optional: {}
selector LabelSelectorSelector defines the selector of the DPUClusters the produced DPUs should joinOptional: {}

KeepalivedSpec

Appears in:

FieldDescriptionDefaultValidation
vip stringVIP is the virtual IP owned by the keepalived instances
virtualRouterID integerVirtualRouterID is the virtual_router_id in keepalived.confMaximum: 255
Minimum: 1
interface stringInterface specifies on which interface the VIP should be assignedMinLength: 1
nodeSelector object (keys:string, values:string)NodeSelector is used to specify a subnet of control plane nodes to deploy keepalived instances.
Note: keepalived instances are always deployed on control plane nodes
Optional: {}

NVConfig

Appears in:

FieldDescriptionDefaultValidation
device stringDevice is the device to which the configuration applies. If not specified, the configuration applies to all.
Supported values: "*" (wildcard for all devices), "p0"/"P0" (port 0), "p1"/"P1" (port 1). Case-insensitive.
Enum: [* p0 p1 P0 P1]
Optional: {}
parameters string arrayParameters are the parameters to be set for the device.MaxItems: 32
MinItems: 1
items:MaxLength: 200
items:Pattern: ^[^=\s]+=[^\s]*$
Optional: {}

NetworkInterfaceConfig

NetworkInterfaceConfig defines the configuration for a network interface

Appears in:

FieldDescriptionDefaultValidation
mtu integerMTU is the MTU value to be set on the network interface.Maximum: 9216
Minimum: 1280
Optional: {}
dhcp booleanDHCP is the DHCP configuration for the network interface.Optional: {}
portNumber integerPortNumber identifies which port this configuration applies to.Maximum: 1
Minimum: 0
Required: {}
nvconfig NVConfigNVConfig contains port-specific configuration for this network interface.
This configuration is applied in addition to the global NVConfig settings in DPUFlavorSpec.
Both global and per-interface NVConfig settings can coexist without collision.
Optional: {}

NicConfiguration

NicConfiguration is a set of configurations for the NICs

Appears in:

FieldDescriptionDefaultValidation
numVfs integerNumber of VFs to be configuredRequired: {}
linkType LinkTypeEnumLinkType to be configured, Ethernet|Infiniband. Required unless networkBay is configured;
for Network Bay the link type is governed by the system configuration and must not be set.
Enum: [Ethernet Infiniband]
Optional: {}
spectrumXOptimized SpectrumXOptimizedSpecSpectrum-X optimization settings. Works only with linkType==Ethernet && numVfs==1. RawNvConfig parameters, if provided, are merged as overrides on top of Spectrum-X calculated params.
rawNvConfig NvConfigParam arrayList of arbitrary nv config parameters
networkBay NetworkBaySpecNetworkBay configures a ConnectX-9 Network Bay card (per-ASIC set_system_conf). Allowed only for ConnectX-9 (nicType 1025).Optional: {}
force booleanForce passes --force to mlxconfig set commands. When set, the daemon
applies the nv config batch and set_system_conf with --force, letting
mlxconfig accept a batch it would otherwise refuse due to implicit
parameter dependencies.
falseOptional: {}

NodeEffect

NodeEffect is the effect the DPU has on Nodes during provisioning. Only one of Taint, NoEffect, CustomLabel, Drain, CustomAction, Hold can be set.

Appears in:

FieldDescriptionDefaultValidation
taint TaintAdd specify taint on the DPU nodeOptional: {}
noEffect booleanDo not do any action on the DPU nodeOptional: {}
customLabel object (keys:string, values:string)Add specify labels on the DPU nodeOptional: {}
drain booleanDrain the K8s host node by NodeMaintenance operatorOptional: {}
customAction stringName of a config map which contains a pod yaml definition to run which will apply the nodeEffect.
The pod is expected to exit when node effect is done, if pod terminates with error then DPU would move to an error phase.
The DPUNode's name will be exported as an environment variable, named as DPUNODE_NAME, to each container and init container in the pod.
The labels and annotations of DPUNode will be exported in /etc/dpu/dpf-pod-info/labels and /etc/dpu/dpf-pod-info/annotations accordingly; the volume name dpf-pod-info is used to mount the labels and annotations.
If any name confliction for env or volume, the controller will not export the name or labels/annotations of DPUNode accordingly.
Optional: {}
hold booleanPlaces annotation wait-for-external-nodeeffect and waits for it to be removed
this is the default behavior in a non K8S environment
Optional: {}
force booleanForce is the flag to indicate if the node effect should be applied immediately.
If true, dpfOperatorConfig.multiDPUOperationsSyncWaitTime and dpfOperatorConfig.maxUnavailableDPUNodes will be ignored when applying node effect for DPUNodeMaintenance CR
falseOptional: {}
applyOnLabelChange booleanApply node effect when labels change on the DPU object
When set to true, label changes in Ready state will trigger node effect logic
falseOptional: {}
nodeMaintenanceAdditionalRequestors string arrayAdditional requestors to be added to the NvidiaNodeMaintenance CR when Drain is selectedOptional: {}

NodeRebootMethod

NodeRebootMethod defines the desired reboot method

Appears in:

FieldDescriptionDefaultValidation
gNOI GNOIUse the DPU's DMS interface to reboot the host.
Deprecated: Use HostAgent instead.
Optional: {}
hostAgent HostAgentUse the HostAgent to reboot the host.Optional: {}
external ExternalReboot the host via an external means, not controlled by the DPU controller.Optional: {}
script ScriptReboot the host by executing a custom script. This field defined which ConfigMap store the custom script.
The ConfigMap should include a pod template of Job object under the pod-template key.
That pod template will be put in a Job object to be executed.
Optional: {}
none NoneDo not reboot a host through the DPUNode. Used for hostless devices where
DPF manages the DPU reboot directly through Redfish.
Optional: {}

None

Appears in:

ObservedSecretKeyRef

ObservedSecretKeyRef identifies an observed source Secret version.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the Secret.MinLength: 1
Required: {}
key stringKey is the key within the Secret data.MinLength: 1
Required: {}
namespace stringNamespace is the namespace of the Secret.MinLength: 1
Required: {}
uid stringUID is the UID of the Secret.MinLength: 1
Required: {}
resourceVersion stringResourceVersion is the resourceVersion of the Secret.MinLength: 1
Required: {}

PackageSpec

PackageSpec defines a package to reconcile on the node.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the package name.MaxLength: 253
MinLength: 1
version PackageVersionSpecVersion constrains the package version.
If empty, any installed version satisfies the spec.
Optional: {}
repoFileRef stringRepoFileRef constrains package resolution to a specific repository file available on the node.
If empty, any configured repository may satisfy the package.
If specified, only the referenced repository file may provide candidates.
If that repository file does not provide the package or requested version, the dpu-agent flow does not continue.
Optional: {}

PackageVersionMatchPolicy

Underlying type: string

PackageVersionMatchPolicy defines how a package version constraint is evaluated.

Appears in:

FieldDescription
ExactPackageVersionMatchExact requires the installed package version to equal Value.
AtLeastPackageVersionMatchAtLeast requires the installed package version to be greater than or equal to Value.

PackageVersionSpec

PackageVersionSpec defines a package version constraint.

Appears in:

FieldDescriptionDefaultValidation
value stringValue is the package version to compare against.MinLength: 1
matchPolicy PackageVersionMatchPolicyMatchPolicy controls how Value is matched.
If omitted, AtLeast is used.
AtLeastEnum: [Exact AtLeast]
Optional: {}

PendingNVConfigDevice

Appears in:

FieldDescriptionDefaultValidation
device string
entries PendingNVConfigEntry array

PendingNVConfigEntry

Appears in:

FieldDescriptionDefaultValidation
name string
default string
current string
next_boot stringNextBoot uses the "next_boot" so this type can be reused for parsing mlxfwrest output

PendingNVConfigState

Appears in:

FieldDescriptionDefaultValidation
bootID string
devices PendingNVConfigDevice array

RebootMethodType

Underlying type: string

RebootMethodType is the type of reset/reboot required after NVConfig or firmware changes. Set by the DPU agent. Most values align with NVIDIA BlueField Reset and Reboot Procedures (mlxfwreset levels).

Validation:

  • Enum: [Unknown NoAction PowerCycle SystemReboot SystemLevelReset FirmwareReset DPUWarmReboot HostlessDPUReboot]

Appears in:

FieldDescription
UnknownRebootMethodUnknown is the initial value set by the DPU agent on startup before
HandleReboot determines the actual method. It prevents the controller from acting
on a stale RebootMethod left over from a previous agent session.
NoActionRebootMethodNoAction indicates no reset or reboot is required.
PowerCycleRebootMethodPowerCycle indicates a full server power cycle (cold boot) is required.
SystemRebootRebootMethodSystemReboot firmware update without full server power cycle.
SystemLevelResetRebootMethodSystemLevelReset firmware configuration changes to take effect.
FirmwareResetRebootMethodFirmwareReset driver restart and PCI reset.
DPUWarmRebootRebootMethodDPUWarmReboot indicates the DPU OS is rebooting itself to apply
configuration changes (e.g. grub kernel parameters) that do not originate
from firmware or NVConfig. The provisioning controller should stay in the
current phase and wait for the agent to come back.
HostlessDPURebootRebootMethodHostlessDPUReboot indicates a hostless DPU needs a DPU ARM
reboot performed by the provisioning controller through Redfish.

RebootStatus

RebootStatus stores the host reboot execution status.

Appears in:

FieldDescriptionDefaultValidation
phase RebootStatusPhasePhase is the current host reboot progress.Enum: [WaitForShutdown Pending Succeeded Failed Unknown]
method RebootMethodTypeMethod is the recommended reboot method.Enum: [Unknown NoAction PowerCycle SystemReboot SystemLevelReset FirmwareReset DPUWarmReboot HostlessDPUReboot]
Optional: {}
reason stringReason indicates machine-readable reason for current phase.Optional: {}
message stringMessage provides human-readable details for current phase.Optional: {}
lastTransitionTime TimeLastTransitionTime is the last update time for reboot status.Optional: {}

RebootStatusPhase

Underlying type: string

RebootStatusPhase is the host reboot progress phase.

Validation:

  • Enum: [WaitForShutdown Pending Succeeded Failed Unknown]

Appears in:

FieldDescription
WaitForShutdownRebootStatusWaitForShutdown means the host reboot is held until the DPU has
completed its graceful shutdown. Used in Zero Trust mode for a System Level
Reset so the External/Script host reboot is not triggered while the Arm OS is
still shutting down.
PendingRebootStatusPending means reboot is requested but execution has not started yet
(for example, waiting for a manual external reboot trigger).
SucceededRebootStatusSucceeded means reboot completed successfully.
FailedRebootStatusFailed means reboot execution failed.
UnknownRebootStatusUnknown means reboot execution state cannot be determined.

RollingUpdateDPU

RollingUpdateDPU is the rolling update strategy for a DPUSet.

Appears in:

FieldDescriptionDefaultValidation
maxUnavailable IntOrStringMaxUnavailable is the maximum number of DPUs that can be unavailable during the update.
Deprecated: This field is deprecated and will be removed with v26.7.0.
Optional: {}

ScalableFunctions

ScalableFunctions groups the agent-managed Scalable Function configuration.

Appears in:

FieldDescriptionDefaultValidation
dma DMAScalableFunctionDMA configures the DMA SF that e.g. SNAP DOCA service uses to DMA host
memory over the second Grace PCI link on BlueField-4 socket-direct
systems.
Optional: {}

Script

Appears in:

FieldDescriptionDefaultValidation
name stringMinLength: 1
Required: {}

SecureBootStatus

SecureBootStatus represents the UEFI Secure Boot configuration status on the DPU.

Appears in:

FieldDescriptionDefaultValidation
enabled booleanEnabled indicates whether UEFI Secure Boot is currently enabled on the DPU.Optional: {}

SpiffeStatus

SpiffeStatus is the DPU Agent's SPIFFE heartbeat sub-status.

Appears in:

FieldDescriptionDefaultValidation
lastProbeTime TimeLastProbeTime is the wall-clock timestamp the DPU Agent recorded on its most recent successful
status report. It is informational and subject to DPU clock skew, so it is not a precise
liveness signal on its own.
Optional: {}
lastProbeMessage stringLastProbeMessage is a structured one-line diagnostic for the most recent self-probe. Unset in
the steady-state happy path. Bounded to 256 chars (truncated agent-side).
MaxLength: 256
Optional: {}

StrategyType

Underlying type: string

StrategyType describes strategy to use to reprovision existing DPUs.

Validation:

  • Enum: [OnDelete RollingUpdate]

Appears in:

FieldDescription
OnDeleteNew DPU CR will only be created when you manually delete old DPU CR.
RollingUpdateGradually scale down the old DPUs and scale up the new one.

SystemdServiceOperation

Underlying type: string

SystemdServiceOperation defines the operation to perform on a systemd service.

Validation:

  • Enum: [Start Enable EnableAndStart]

Appears in:

FieldDescription
StartSystemdServiceStart starts the service without enabling it at boot.
EnableSystemdServiceEnable enables the service at boot without starting it immediately.
EnableAndStartSystemdServiceEnableAndStart enables the service at boot and starts it immediately (equivalent to systemctl enable --now).

SystemdServiceSpec

SystemdServiceSpec defines a systemd service to manage on the node.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the systemd service name.MaxLength: 253
MinLength: 1
operation SystemdServiceOperationOperation is the systemd operation to perform on the service.Enum: [Start Enable EnableAndStart]

TrustBundleStatus

TrustBundleStatus reports reconciliation progress for a CA trust bundle.

Appears in:

FieldDescriptionDefaultValidation
observedBundleHash stringObservedBundleHash records the last successfully applied bundle hash.Optional: {}
lastUpdateTime TimeLastUpdateTime is when the last successful reconciliation completed.Optional: {}

UpgradePolicy

UpgradePolicy is the policy for the upgrade of the DPUSet.

Appears in:

FieldDescriptionDefaultValidation
applyOnLabelChange booleanApply node effect when labels change on the DPU object
When set to true, label changes in Ready state will trigger node effect logic
falseOptional: {}
nodeMaintenanceAdditionalRequestors string arrayAdditional requestors to be added to the NvidiaNodeMaintenance CR when Drain is selectedOptional: {}

storage.dpu.nvidia.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group

Resource Types

AttachmentStatusDPU

AttachmentStatusDPU describe the information of DPU volume

Appears in:

FieldDescriptionDefaultValidation
pciAddress stringPCI device address in the following format: (bus:device.function)Optional: {}
deviceName stringThe name of the device that was created by the storage vendor pluginOptional: {}
nvmeAttrs NVMEAttrsThe attributes of the emulated NVME functionOptional: {}
virtioFSAttrs VirtioFSAttrsThe attributes of the emulated VirtioFS functionOptional: {}

BdevAttrs

BdevAttrs represents the attributes of the underlying block device

Appears in:

FieldDescriptionDefaultValidation
nvmeNsID integerThe namespace ID within the NVME controller
nvmeUUID stringThe nvme namespace UUID

CSIReference

CSIReference reference to CSI object

Appears in:

FieldDescriptionDefaultValidation
csiDriverName string
storageClassName string
pvcRef ObjectRef

CapacityRange

CapacityRange represents the capacity of the required storage space in bytes

Appears in:

FieldDescriptionDefaultValidation
request Quantity
limit Quantity

DPUStoragePolicy

DPUStoragePolicy represents a DPUStoragePolicy CR

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUStoragePolicy
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUStoragePolicySpec
status DPUStoragePolicyStatus

DPUStoragePolicyList

DPUStoragePolicyList contains a list of DPUStoragePolicy objects

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUStoragePolicyList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUStoragePolicy array

DPUStoragePolicySpec

DPUStoragePolicySpec defines the desired state of DPUStoragePolicy

Appears in:

FieldDescriptionDefaultValidation
dpuStorageVendors string arrayList of storage vendorsMinItems: 1
Required: {}
parameters object (keys:string, values:string)Parameters supported by the policy{ }Optional: {}
selectionAlgorithm SelectionAlgorithmSelection algorithm used to select DPUStorageVendorNumberVolumesEnum: [Random NumberVolumes]
Optional: {}

DPUStoragePolicyStatus

DPUStoragePolicyStatus defines the observed state of DPUStoragePolicy

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayCurrent service state conditions
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

DPUStorageVendor

DPUStorageVendor represents a StorageVendor CR on the DPU cluster.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUStorageVendor
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUStorageVendorSpec
status DPUStorageVendorStatus

DPUStorageVendorList

DPUStorageVendorList contains a list of DPUStorageVendor

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUStorageVendorList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUStorageVendor array

DPUStorageVendorSpec

DPUStorageVendorSpec defines the desired state of DPUStorageVendor

Appears in:

FieldDescriptionDefaultValidation
storageClassName stringStorage vendor class name, deployed on the DPU K8S cluster.MinLength: 1
Required: {}
pluginName stringStorage vendor DPU plugin nameMinLength: 1
Required: {}

DPUStorageVendorStatus

DPUStorageVendorStatus defines the observed state of DPUStorageVendor

Appears in:

FieldDescriptionDefaultValidation
dpuClusters ObjectReference arrayDPUClusters is the list of clusters on which the DPUStorageVendor is deployed.
conditions Condition arrayConditions defines current service state.
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

DPUVolume

DPUVolume represents a DPUVolume CR.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUVolume
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUVolumeSpec
status DPUVolumeStatus

DPUVolumeAttachment

DPUVolumeAttachment represents a Volume CR on the DPU cluster.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUVolumeAttachment
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUVolumeAttachmentSpec
status DPUVolumeAttachmentStatus

DPUVolumeAttachmentList

DPUVolumeAttachmentList contains a list of DPUVolumeAttachment

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUVolumeAttachmentList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUVolumeAttachment array

DPUVolumeAttachmentSpec

DPUVolumeAttachmentSpec defines the desired state of DPUVolumeAttachment

Appears in:

FieldDescriptionDefaultValidation
dpuNodeName stringDPUNodeName is the name of DPUNode object that represents the node to which the volume should
be attached
MinLength: 1
Required: {}
dpuVolumeName stringDPUVolumeName is the name of DPUVolume object that represents the volume to be attachedMinLength: 1
Required: {}
functionType FunctionTypeFunctionType is the type of the emulated function that should be used to attach the volumeEnum: [pf vf]
Required: {}
hotplugFunction booleanHotplugFunction is a boolean flag that indicates if the emulated function should be hotpluggedRequired: {}

DPUVolumeAttachmentStatus

DPUVolumeAttachmentStatus defines the observed state of DPUVolumeAttachment

Appears in:

FieldDescriptionDefaultValidation
controllerAttached booleanIndicates the volume is successfully attached to by the Vendor CSI driver
dpuAttached booleanIndicates the volume is successfully attached to the node by DPUOptional: {}
attachmentMetadata object (keys:string, values:string)AttachmentMetadata contains the metadata of the volume attachment returned by the Vendor CSI driverOptional: {}
dpu AttachmentStatusDPUDetails about the DPU attachmentOptional: {}
message stringThe last error encountered during the attach operation, if anyOptional: {}
conditions Condition arrayConditions defines current service state.Optional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

DPUVolumeList

DPUVolumeList contains a list of DPUVolume

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringDPUVolumeList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUVolume array

DPUVolumePhase

Underlying type: string

Appears in:

FieldDescription
Pendingused for DPUVolume that are not yet bound to a volume in the DPU cluster
Boundused for DPUVolume that are bound to a volume in the DPU cluster

DPUVolumeSpec

DPUVolumeSpec defines the desired state of DPUVolume

Appears in:

FieldDescriptionDefaultValidation
dpuStoragePolicyName stringName of the DPUStoragePolicyName object that will be used to create the volume.MinLength: 1
Required: {}
parameters object (keys:string, values:string)Additional parameters for the volume, these parameters are merged with the values from the DPUStoragePolicy object.{ }Optional: {}
accessModes PersistentVolumeAccessMode arrayAccess modes define how the volume can be mounted. These modes are directly passed to the
PersistentVolumeClaim created for the Vendor CSI Plugin selected by the DPUStoragePolicy.
MaxItems: 3
MinItems: 1
Required: {}
resources VolumeResourceRequirementsResources represents the storage resources requested for the volume. These resource requirements
are directly passed to the PersistentVolumeClaim created for the Vendor CSI Plugin selected
by the DPUStoragePolicy. Since volume resizing is not supported, modifications to the resource request are prohibited.
Required: {}
volumeMode PersistentVolumeModeVolume mode defines how the volume should be mounted and used. This value is directly passed to the
PersistentVolumeClaim created for the Vendor CSI Plugin selected by the DPUStoragePolicy.
FilesystemEnum: [Filesystem Block]
Optional: {}

DPUVolumeState

DPUVolumeState defines the state of the volume.

Appears in:

FieldDescriptionDefaultValidation
dpuCluster ObjectReferenceDPUCluster contains the reference to the DPUCluster object that was selected for volume creation.Optional: {}
parameters object (keys:string, values:string)Parameters contains the final set of parameters for volume creation, computed by merging
the parameters from the DPUStoragePolicy object with user-provided parameters.
Optional: {}
selectedDPUStorageVendorName stringSelectedDPUStorageVendorName contains the name of the DPUStorageVendor object that was selected for volume creation.Optional: {}
storageVendorPluginName stringStorageVendorPluginName contains the name of the storage vendor plugin deployed on the DPU cluster that was selected for volume creation.Optional: {}
storageClassName stringStorageClassName contains the name of the storage class in the DPU cluster that was selected for volume creation.Optional: {}
csiDriverName stringCSIDriverName contains the name of the CSI driver in the DPU cluster that was selected for volume creation.Optional: {}
persistentVolumeClaimRef ObjectReferencePersistentVolumeClaimRef contains the reference to the PersistentVolumeClaim object in the DPU cluster that was created for the volume.Optional: {}
volumeInfo VolumeInfoVolumeInfo contains a subset of fields from the PersistentVolume object created in the DPU clusterOptional: {}

DPUVolumeStatus

DPUVolumeStatus defines the observed state of DPUVolume

Appears in:

FieldDescriptionDefaultValidation
phase DPUVolumePhasePhase of the volumeEnum: [Pending Bound]
Optional: {}
state DPUVolumeStateState of the volume. This field is managed by the controller. User usually do not need to set fields from this struct.Optional: {}
conditions Condition arrayConditions defines current service state.
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

FSdevAttrs

FSdevAttrs represents the attributes of the underlying filesystem device

Appears in:

FieldDescriptionDefaultValidation
filesystemTag stringFilesystem tag identified by SNAP on the host (used for the mount). Relevant for volume of type filesystem

FunctionType

Underlying type: string

Appears in:

FieldDescription
pfFunctionTypePF is the PF function type
vfFunctionTypeVF is the VF function type

FunctionTypeConfig

FunctionTypeConfig is the configuration for the emulated function that should be used to attach the volume

Appears in:

FieldDescriptionDefaultValidation
functionType FunctionTypeFunctionType is the type of the emulated function that should be used to attach the volumeEnum: [pf vf]
Required: {}
hotplugFunction booleanHotplugFunction is a boolean flag that indicates if the emulated function should be hotpluggedRequired: {}

NVMEAttrs

NVMEAttrs represents the attributes of the NVME emulated function

Appears in:

FieldDescriptionDefaultValidation
namespaceID integerThe namespace ID within the NVME controllerOptional: {}
namespaceUUID stringThe NVMe namespace UUIDOptional: {}

ObjectRef

ObjectRef reference to the object

Appears in:

FieldDescriptionDefaultValidation
kind string
apiVersion string
name string
namespace string

ObjectReference

ObjectReference represents a reference to a Kubernetes object.

Appears in:

FieldDescriptionDefaultValidation
name stringName specifies the name of the referenced objectMinLength: 1
Required: {}
namespace stringNamespace specifies the namespace where the referenced object existsMinLength: 1
Required: {}

SVVolumeAttachment

SVVolumeAttachment captures the intent to attach/detach the specified Volume to/from the specified node.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringSVVolumeAttachment
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec VolumeAttachmentSpec
status VolumeAttachmentStatus

SVVolumeAttachmentList

SVVolumeAttachmentList contains a list of SVVolumeAttachment

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringSVVolumeAttachmentList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items SVVolumeAttachment array

SelectionAlgorithm

Underlying type: string

SelectionAlgorithm represents the storage selection algorithm type

Appears in:

FieldDescription
RandomRandom selection across the vendors defined in the StoragePolicy list.
NumberVolumesLoad-balancing on the number of volumes belonging to the StoragePolicy.
The vendor (in the DPUStoragePolicy list) with the minimal number of volumes should be selected.

VirtioFSAttrs

VirtioFSAttrs represents the attributes of the VirtioFS emulated function

Appears in:

FieldDescriptionDefaultValidation
filesystemTag stringFilesystem tag identified by SNAP on the host (used for the mount). Relevant for volume of type filesystemOptional: {}

Volume

Volume represents a persistent volume on the DPU cluster. It maps between the tenant K8S persistent volume (PV) object on the tenant cluster into the actual volume on the DPU cluster. Volume is an internal API, it is not intended to be used by users.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringVolume
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec VolumeSpec
status VolumeStatus

VolumeAttachment

VolumeAttachment captures the intent to attach/detach the specified NV-Volume to/from the specified node. VolumeAttachment is an internal API, it is not intended to be used by users.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringVolumeAttachment
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec VolumeAttachmentSpec
status VolumeAttachmentStatus

VolumeAttachmentList

VolumeAttachmentList contains a list of VolumeAttachment

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringVolumeAttachmentList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items VolumeAttachment array

VolumeAttachmentSpec

VolumeAttachmentSpec defines the desired state of VolumeAttachment

Appears in:

FieldDescriptionDefaultValidation
nodeName stringThe name of the node that the volume should be attached to
source VolumeSourceReference to the NV-Volume object
volumeAttachmentRef ObjectRefReference to the SV-VolumeAttachment object
parameters object (keys:string, values:string)Opaque static publish properties of the volume returned by the plugin
functionType FunctionTypeFunctionType is the type of the emulated function that should be used to attach the volumeEnum: [pf vf]
Required: {}
hotplugFunction booleanHotplugFunction is a boolean flag that indicates if the emulated function should be hotpluggedRequired: {}

VolumeAttachmentStatus

VolumeAttachmentStatus defines the observed state of VolumeAttachment

Appears in:

FieldDescriptionDefaultValidation
storageAttached booleanIndicates the volume is successfully attached to the target storage system
message stringThe last error encountered during the attach operation, if any
dpu VolumeAttachmentStatusDPUDetails about the DPU attachment

VolumeAttachmentStatusDPU

VolumeAttachmentStatusDPU describe the information of DPU volume

Appears in:

FieldDescriptionDefaultValidation
attached booleanIndicates the volume is successfully attached to the DPU node
pciDeviceAddress stringPCI device address in the following format: (bus:device.function)
deviceName stringThe name of the device that was created by the storage vendor plugin
bdevAttrs BdevAttrsThe attributes of the underlying block deviceOptional: {}
fsdevAttrs FSdevAttrsThe attributes of the underlying filesystem deviceOptional: {}

VolumeInfo

VolumeInfo represents a subset of fields from the PersistentVolume object that was created in the DPU cluster. This struct is used to track and expose key volume information without carrying the full PersistentVolume object.

Appears in:

FieldDescriptionDefaultValidation
volumeName stringVolumeName contains the name of the PersistentVolume object in the DPU clusterOptional: {}
capacity ResourceListActual capacity of the volume in the DPU clusterOptional: {}
accessModes PersistentVolumeAccessMode arrayActual access modes of the volume in the DPU clusterOptional: {}
volumeMode PersistentVolumeModeActual volume mode of the volume in the DPU clusterOptional: {}
volumeAttributes object (keys:string, values:string)VolumeAttributes from the PersistentVolume object in the DPU cluster
This field usually contains parameters returned by the Vendor CSI plugin on volume creation.
Optional: {}

VolumeList

VolumeList contains a list of Volume

FieldDescriptionDefaultValidation
apiVersion stringstorage.dpu.nvidia.com/v1alpha1
kind stringVolumeList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items Volume array

VolumeRequest

VolumeRequest represents the volume's requirements

Appears in:

FieldDescriptionDefaultValidation
capacityRange CapacityRangeThe capacity of the required storage space in bytesOptional: {}
accessModes PersistentVolumeAccessMode arrayContains the types of access modes requiredOptional: {}
volumeMode PersistentVolumeModevolumeMode defines what type of volume is required by the claim.
Value of Filesystem is implied when not included in claim spec.
Optional: {}

VolumeSource

VolumeSource references to the NV-Volume object

Appears in:

FieldDescriptionDefaultValidation
volumeRef ObjectRefReference to the NV-Volume object

VolumeSpec

VolumeSpec defines the desired state of Volume

Appears in:

FieldDescriptionDefaultValidation
storageParameters object (keys:string, values:string)List of storage parameters supported by the policy, values are string onlyOptional: {}
request VolumeRequestThe capacity of the required storage space in bytesRequired: {}
storagePolicyRef ObjectRefReference to the StoragePolicy objectOptional: {}
storagePolicyParameters object (keys:string, values:string)List of storage parameters supported by the policy, values are string onlyOptional: {}
volume VolumeSpecDPUDescribe volume information in DPU clusterOptional: {}

VolumeSpecDPU

VolumeSpecDPU describe volume information in DPU cluster

Appears in:

FieldDescriptionDefaultValidation
id string
capacity Quantity
accessModes PersistentVolumeAccessMode array
reclaimPolicy PersistentVolumeReclaimPolicyEnum: [Delete Retain]
storageVendorName string
storageVendorPluginName string
volumeAttributes object (keys:string, values:string)
csiReference CSIReference

VolumeState

Underlying type: string

VolumeState represents the state of volume

Validation:

  • Enum: [InProgress Available]

Appears in:

FieldDescription
InProgressInProgress means the some of related resource is still in progress
AvailableAvailable means that all related resources are created

VolumeStatus

VolumeStatus defines the observed state of Volume

Appears in:

FieldDescriptionDefaultValidation
state VolumeStateThe state of a Volume objectEnum: [InProgress Available]
Optional: {}

svc.dpu.nvidia.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the svc.dpf v1alpha1 API group

Package v1alpha1 contains API Schema definitions for the sfc v1alpha1 API group

Resource Types

ApplicationSource

ApplicationSource specifies the source of the Helm chart.

Appears in:

FieldDescriptionDefaultValidation
repoURL stringRepoURL specifies the URL to the repository that contains the application Helm chart.
The URL must begin with either 'oci://' or 'https://', ensuring it points to a valid
OCI registry or a web-based repository.
Pattern: ^(oci://|https://).+$
Required: {}
path stringPath is the location of the chart inside the repo.Optional: {}
version stringVersion is a semver tag for the Chart's version.MinLength: 1
Required: {}
chart stringChart is the name of the helm chart.Optional: {}
releaseName stringReleaseName is the name to give to the release generate from the DPUService.Optional: {}

CNIPlugin

CNIPlugin defines a CNI plugin to be used in a chained CNI configuration. When multiple CNI plugins are specified in ChainedCNIs, they are executed in order after the base OVS CNI plugin to provide additional network functionality.

Appears in:

FieldDescriptionDefaultValidation
type stringType specifies the CNI plugin type to be used in the chain.
Currently only "rdma" is supported, which enables RDMA capabilities for the network interface.
Enum: [rdma]
Required: {}
config RawExtensionConfig contains optional plugin-specific configuration as raw JSON.
The configuration is merged into the CNI plugin configuration.
Optional: {}

ConfigPort

ConfigPort defines the configuration of a single port within a DPUService. Each port must have a unique name within the service.

Appears in:

FieldDescriptionDefaultValidation
name stringName is a unique identifier for the port within the DPUService.
This name is used for reference inside the service.
MinLength: 1
Pattern: ^[a-z0-9-]+$
Required: {}
port integerPort is the port number that will be exposed by the service.
Must be within the valid range of TCP/UDP ports (1-65535).
Required: {}
protocol ProtocolProtocol specifies the transport protocol used by the port.
Supported values: TCP, UDP
Enum: [TCP UDP]
Required: {}
nodePort integerNodePort is the external port assigned on each node in the cluster.
If not set, Kubernetes will automatically allocate a NodePort.
Constraints:
- Can only be set when ServiceType is "NodePort".
- Must be within the clusters valid NodePort range (Kubernetes default is 30000-32767).
Optional: {}

ConfigPorts

ConfigPorts defines the desired state of port configurations for a DPUService. This struct determines how ports are exposed from the DPU to the host cluster. A DPUService can only have a single ServiceType across all ports.

Validation:

  • If any port has a NodePort assigned, ServiceType must be "NodePort".

Appears in:

FieldDescriptionDefaultValidation
serviceType ServiceTypeServiceType specifies the type of Kubernetes Service to create.
All ports within this ConfigPorts will have the same ServiceType.
The value is immutable and cannot be changed after creation.
Supported values:
- "NodePort": Exposes ports externally on a node.
- "ClusterIP": Exposes ports internally within the cluster.
- "None": Internal-only service with no cluster IP.
Default: "NodePort"
NodePortEnum: [NodePort ClusterIP None]
Required: {}
ports ConfigPort arrayPorts defines the list of port configurations that will be exposed by the DPUService.
Each port must specify a name, port number, and protocol.
Constraints:
- If ServiceType is "NodePort", ports may optionally specify a NodePort.
- If ServiceType is "None" or "ClusterIP", ports cannot specify a NodePort.
Required: {}

DPUClusterAllocation

DPUClusterAllocation contains the IP range allocations for a specific DPUCluster.

Appears in:

FieldDescriptionDefaultValidation
dpuCluster stringDPUCluster is the NamespacedName of the DPUCluster in the format <namespace>/<name>.
ipRanges IPRange arrayIPRanges contains the IP ranges allocated to this DPUCluster.Optional: {}

DPUDeployment

DPUDeployment is an object that describes a set of DPUServices and a DPUServiceChain that run a on a set of DPUs with a given BFB or BlueFieldSoftware and DPUFlavor.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUDeployment
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUDeploymentSpec
status DPUDeploymentStatus

DPUDeploymentList

DPUDeploymentList contains a list of DPUDeployment

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUDeploymentList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUDeployment array

DPUDeploymentPort

DPUDeploymentPort defines how a port can be configured

Appears in:

FieldDescriptionDefaultValidation
service DPUDeploymentServiceService holds configuration that helps configure the Service Function Chain and identify a port associated with
a DPUService
Optional: {}
serviceInterface ServiceIfcServiceInterface holds configuration that helps configure the Service Function Chain and identify a user defined
port
Optional: {}

DPUDeploymentService

DPUDeploymentService is the struct used for referencing an interface.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the service as defined in the DPUDeployment SpecMaxLength: 28
MinLength: 1
Required: {}
interface stringInterface name is the name of the interface as defined in the DPUServiceConfigurationMaxLength: 15
MinLength: 1
Required: {}
ipam IPAMIPAM defines the IPAM configuration that is configured in the Service Function ChainOptional: {}

DPUDeploymentServiceConfiguration

DPUDeploymentServiceConfiguration describes the configuration of a particular Service

Appears in:

FieldDescriptionDefaultValidation
serviceTemplate stringServiceTemplate is the name of the DPUServiceTemplate object to be used for this Service. It must be in the same
namespace as the DPUDeployment.
serviceConfiguration stringServiceConfiguration is the name of the DPUServiceConfiguration object to be used for this Service. It must be
in the same namespace as the DPUDeployment.
dependsOn LocalObjectDependency arrayDependsOn is a list of local object dependencies that are required for this Service.MinItems: 1
Optional: {}

DPUDeploymentSpec

DPUDeploymentSpec defines the desired state of DPUDeployment

Appears in:

FieldDescriptionDefaultValidation
dpus DPUsDPUs contains the DPU related configurationRequired: {}
services object (keys:string, values:DPUDeploymentServiceConfiguration)Services contains the DPUDeploymentService related configuration. The key is the deploymentServiceName and the value is its
configuration. All underlying objects must specify the same deploymentServiceName in order to be able to be consumed by the
DPUDeployment.
MaxProperties: 50
MinProperties: 1
Required: {}
serviceChains ServiceChainsServiceChains contains the configuration related to the DPUServiceChains that the DPUDeployment creates.Optional: {}
revisionHistoryLimit integerThe maximum number of revisions that can be retained during upgrades.
Defaults to 10.
10Minimum: 1
Optional: {}

DPUDeploymentStatus

DPUDeploymentStatus defines the observed state of DPUDeployment

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

DPUDeploymentSwitch

DPUDeploymentSwitch holds the ports that are connected in switch topology

Appears in:

FieldDescriptionDefaultValidation
ports DPUDeploymentPort arrayPorts contains the ports of the switchMaxItems: 50
MinItems: 1
Required: {}
serviceMTU integerServiceMTU of the switch
The default is 1500.
1500Maximum: 9216
Minimum: 1280
Optional: {}

DPUService

DPUService is the Schema for the dpuservices API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUService
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceSpec
status DPUServiceStatus

DPUServiceChain

DPUServiceChain is the Schema for the DPUServiceChain API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceChain
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceChainSpec
status DPUServiceChainStatus

DPUServiceChainList

DPUServiceChainList contains a list of DPUServiceChain

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceChainList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUServiceChain array

DPUServiceChainSpec

DPUServiceChainSpec defines the desired state of DPUServiceChainSpec

Appears in:

FieldDescriptionDefaultValidation
clusterSelector LabelSelectorSelect the Clusters with specific labels, ServiceChainSet CRs will be created only for these Clusters
Deprecated: This field is deprecated and will be removed with v26.7.0. Use DPUClusterSelector instead.
Optional: {}
dpuClusterSelector LabelSelectorDPUClusterSelector determines in which clusters the DPUServiceChain controller should apply the configuration.Optional: {}
template ServiceChainSetSpecTemplateTemplate describes the ServiceChainSet that will be created for each selected Cluster.

DPUServiceChainStatus

DPUServiceChainStatus defines the observed state of DPUServiceChain

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

DPUServiceConfiguration

DPUServiceConfiguration is the Schema for the dpuserviceconfigurations API. This object is intended to be used in conjunction with a DPUDeployment object. This object is the template from which the DPUService will be created. It contains all configuration options from the user to be provided to the service itself via the helm chart values. This object doesn't allow configuration of nodeSelector and resources in purpose as these are delegated to the DPUDeployment and DPUServiceTemplate accordingly.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceConfiguration
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceConfigurationSpec
status DPUServiceConfigurationStatus

DPUServiceConfigurationList

DPUServiceConfigurationList contains a list of DPUServiceConfiguration

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceConfigurationList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUServiceConfiguration array

DPUServiceConfigurationServiceDaemonSetValues

DPUServiceConfigurationServiceDaemonSetValues reflects the Helm related configuration

Appears in:

FieldDescriptionDefaultValidation
updateStrategy DaemonSetUpdateStrategyUpdateStrategy specifies the DeaemonSet update strategy for the ServiceDaemonset.Optional: {}
labels object (keys:string, values:string)Labels specifies labels which are added to the ServiceDaemonSet.MaxProperties: 50
Optional: {}
annotations object (keys:string, values:string)Annotations specifies annotations which are added to the ServiceDaemonSet.MaxProperties: 50
Optional: {}
resources ResourceListResources specifies resources which are added to the ServiceDaemonSet.Optional: {}

DPUServiceConfigurationSpec

DPUServiceConfigurationSpec defines the desired state of DPUServiceConfiguration

Appears in:

FieldDescriptionDefaultValidation
deploymentServiceName stringDeploymentServiceName is the name of the DPU service this configuration refers to. It must match
.spec.deploymentServiceName of a DPUServiceTemplate object and one of the keys in .spec.services of a
DPUDeployment object.
MaxLength: 28
MinLength: 1
Required: {}
serviceConfiguration ServiceConfigurationServiceConfiguration contains fields that are configured on the generated DPUService.Optional: {}
interfaces ServiceInterfaceTemplate arrayInterfaces specifies the DPUServiceInterface to be generated for the generated DPUService.MaxItems: 50
MinItems: 1
Optional: {}
upgradePolicy UpgradePolicyUpgradePolicy contains the configuration for the upgrade process{ }Required: {}

DPUServiceConfigurationStatus

DPUServiceConfigurationStatus defines the observed state of DPUServiceConfiguration

Appears in:

DPUServiceCredentialRequest

DPUServiceCredentialRequest is the Schema for the dpuserviceCredentialRequests API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceCredentialRequest
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceCredentialRequestSpec
status DPUServiceCredentialRequestStatus

DPUServiceCredentialRequestList

DPUServiceCredentialRequestList contains a list of DPUServiceCredentialRequest

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceCredentialRequestList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUServiceCredentialRequest array

DPUServiceCredentialRequestSpec

DPUServiceCredentialRequestSpec defines the desired state of DPUServiceCredentialRequest

Appears in:

FieldDescriptionDefaultValidation
serviceAccount NamespacedNameServiceAccount defines the needed information to create the service account.Required: {}
duration DurationDuration is the duration for which the token will be valid.
Value must be in units accepted by Go time.ParseDuration https://golang.org/pkg/time/#ParseDuration.
e.g. "1h", "1m", "1s", "1ms", "1.5h", "2h45m".
Value duration must not be less than 10 minutes.
Note: The maximum TTL for a token is 24 hours, after which the token
will be rotated.
Pattern: ^([0-9]+(\.[0-9]+)?(ms|s|m|h))+$
Type: string
Optional: {}
targetCluster NamespacedNameTargetCluster defines the target cluster where the service account will
be created, and where a token for that service account will be requested.
If not provided, the token will be requested for the same cluster where
the DPUServiceCredentialRequest object is created.
Optional: {}
type stringType is the type of the secret that will be created.
The supported types are kubeconfig and tokenFile.
If kubeconfig is selected, the secret will contain a kubeconfig file,
that can be used to access the cluster.
If tokenFile is selected, the secret will contain a token file and several
environment variables that can be used to access the cluster. It can be used
with https://github.com/kubernetes/client-go/blob/v11.0.0/rest/config.go#L52
to create a client that will handle file rotation.
Enum: [kubeconfig tokenFile]
Required: {}
secret NamespacedNameSecret defines the needed information to create the secret.
The secret will be of the type specified in the spec.type field.
Required: {}
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}

DPUServiceCredentialRequestStatus

DPUServiceCredentialRequestStatus defines the observed state of DPUServiceCredentialRequest

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions defines current service state.Optional: {}
serviceAccount stringServiceAccount is the namespaced name of the ServiceAccount resource created by
the controller for the DPUServiceCredentialRequest.
targetCluster stringTargetCluster is the cluster where the service account was created.
It has to be persisted in the status to be able to delete the service account
when the DPUServiceCredentialRequest is updated.
Optional: {}
targetClusterUID stringTargetClusterUID is the UID of the DPUCluster the credentials were last issued against.
Used to detect cluster recreation with the same name and force credential refresh.
Optional: {}
expirationTimestamp TimeExpirationTimestamp is the time when the token will expire.Optional: {}
issuedAt TimeIssuedAt is the time when the token was issued.Optional: {}
secret stringSercet is the namespaced name of the Secret resource created by the controller for
the DPUServiceCredentialRequest.

DPUServiceIPAM

DPUServiceIPAM is the Schema for the dpuserviceipams API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceIPAM
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceIPAMSpec
status DPUServiceIPAMStatus

DPUServiceIPAMList

DPUServiceIPAMList contains a list of DPUServiceIPAM

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceIPAMList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUServiceIPAM array

DPUServiceIPAMSpec

DPUServiceIPAMSpec defines the desired state of DPUServiceIPAM

Appears in:

FieldDescriptionDefaultValidation
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
ipv4Network IPV4NetworkIPV4Network is the configuration related to splitting a network into subnets per node, each with their own gateway.
ipv4Subnet IPV4SubnetIPV4Subnet is the configuration related to splitting a subnet into blocks per node. In this setup, there is a
single gateway.
clusterSelector LabelSelectorClusterSelector determines in which clusters the DPUServiceIPAM controller should apply the configuration.
Deprecated: This field is deprecated and will be removed with v26.7.0. Use DPUClusterSelector instead.
Optional: {}
dpuClusterSelector LabelSelectorDPUClusterSelector determines in which clusters the DPUServiceIPAM controller should apply the configuration.Optional: {}
nodeSelector NodeSelectorNodeSelector determines in which DPU nodes the DPUServiceIPAM controller should apply the configuration.

DPUServiceIPAMStatus

DPUServiceIPAMStatus defines the observed state of DPUServiceIPAM

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.
dpuClusterAllocations DPUClusterAllocation arrayDPUClusterAllocations contains the IPV4Network/IPV4Subnet allocations per DPUCluster as calculated by the controller.Optional: {}

DPUServiceInterface

DPUServiceInterface is the Schema for the DPUServiceInterface API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceInterface
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceInterfaceSpec
status DPUServiceInterfaceStatus

DPUServiceInterfaceList

DPUServiceInterfaceList contains a list of DPUServiceInterface

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceInterfaceList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUServiceInterface array

DPUServiceInterfaceSpec

DPUServiceInterfaceSpec defines the desired state of DPUServiceInterfaceSpec

Appears in:

FieldDescriptionDefaultValidation
clusterSelector LabelSelectorSelect the Clusters with specific labels, ServiceInterfaceSet CRs will be created only for these Clusters
Deprecated: This field is deprecated and will be removed with v26.7.0. Use DPUClusterSelector instead.
Optional: {}
dpuClusterSelector LabelSelectorDPUClusterSelector determines in which clusters the DPUServiceInterface controller should apply the configuration.Optional: {}
template ServiceInterfaceSetSpecTemplateTemplate describes the ServiceInterfaceSet that will be created for each selected Cluster.

DPUServiceInterfaceStatus

DPUServiceInterfaceStatus defines the observed state of DPUServiceInterface

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions defines current service state.
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

DPUServiceList

DPUServiceList contains a list of DPUService

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUService array

DPUServiceNAD

DPUServiceNAD is the Schema for the dpuservicenads API.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceNAD
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceNADSpec
status DPUServiceNADStatus

DPUServiceNADList

DPUServiceNADList contains a list of DPUServiceNAD.

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceNADList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUServiceNAD array

DPUServiceNADSpec

DPUServiceNADSpec defines the desired state of DPUServiceNAD.

Appears in:

FieldDescriptionDefaultValidation
dpuClusterSelector LabelSelectorDPUClusterSelector determines in which clusters the DPUServiceNAD controller should apply the configuration.Optional: {}
resourceType stringResourceType specifies the type of network resource to allocate for pods using this NAD.
- "vf": Virtual Function (SR-IOV VF) from the DPU's physical ports
- "sf": Scalable Function from the DPU (maps to nvidia.com/bf_sf or nvidia.com/bf_sf_trusted)
- "veth": Virtual Ethernet pair (no device plugin resource required)
The resource type determines which SR-IOV device plugin resource will be requested.
Enum: [vf sf veth]
Required: {}
bridge stringBridge specifies the name of the OVS bridge to which the network interface will be connected.
This bridge name is used in the CNI configuration for the OVS plugin.
Optional: {}
serviceMTU integerServiceMTU specifies the MTU size in bytes for the network interface.
This value is passed to the OVS CNI plugin and determines the maximum packet size.
If there is a DPUServiceChain that references an interface that is part of this network,
then the MTU that is defined in the DPUServiceChain takes precedence.
The default is 1500.
1500Maximum: 9216
Minimum: 1280
Optional: {}
ipam booleanIPAM enables IP Address Management for the network interfaces attached to this network
When set to true, a DPUServiceChain that references the DPUServiceInterface that has
requested this network must be created and include the relevant IPAM information. See
DPUServiceChain documentation for more.
When set to false, the network interfaces attached to this network will not get an IP
Optional: {}
chainedCNIs CNIPlugin arrayChainedCNIs specifies additional CNI plugins to be chained after the base OVS plugin.
When specified, the NAD will use the CNI chaining format with the OVS plugin as the
first plugin, followed by the plugins defined in this list.
This allows adding capabilities like RDMA support on top of the base network interface.
If empty, the NAD uses a single OVS plugin configuration (backward compatible format).
Optional: {}

DPUServiceNADStatus

DPUServiceNADStatus defines the observed state of DPUServiceNAD.

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object

DPUServiceSecurity

DPUServiceSecurity contains security-related settings for a DPUService or DPUServiceTemplate.

Appears in:

FieldDescriptionDefaultValidation
privileged booleanPrivileged, when set to true, allows workloads governed by this security
setting to run containers with securityContext.privileged: true in the
DPUCluster. When set to false, a ValidatingAdmissionPolicy in the
DPUCluster rejects such workloads. On DPUService objects, this field must
be unset when deployInCluster is true. For DPUServices that target a
DPUCluster, Privileged must be set explicitly. When set on a
DPUServiceTemplate, the DPUDeployment controller propagates the value to
generated DPUServices that target DPUClusters.
Scope of the policy enforcement:
- Only securityContext.privileged: true is gated. Other
privilege-escalation vectors (hostPID, hostIPC, hostNetwork,
allowPrivilegeEscalation, capabilities, hostPath volumes) are NOT
gated by this field.
- Enforcement matches workloads via the
svc.dpu.nvidia.com/service label. The controller adds this
label to the resources it manages, and to pod templates of
workload-controller resources (Deployment, DaemonSet, etc.). If a
Helm chart strips that label from the pod template, the parent
resource will be admitted but the child Pods will be denied at
Pod admission time.
Optional: {}

DPUServiceSpec

DPUServiceSpec defines the desired state of DPUService

Appears in:

FieldDescriptionDefaultValidation
dpuClusterSelector LabelSelectorSelect the Clusters with specific labels, Applications will be created only for these ClustersOptional: {}
helmChart HelmChartHelmChart reflects the Helm related configurationRequired: {}
serviceID stringServiceID is the ID of the service that the DPUService is associated with.Optional: {}
serviceDaemonSet ServiceDaemonSetValuesServiceDaemonSet specifies the configuration for the ServiceDaemonSet.Optional: {}
deployInCluster booleanDeployInCluster indicates if the DPUService Helm Chart will be deployed on
the Host cluster. Default to false.
Optional: {}
interfaces string arrayInterfaces specifies the DPUServiceInterface names that the DPUService
uses in the same namespace.
MaxItems: 50
MinItems: 1
Optional: {}
paused booleanPaused indicates that the DPUService is paused.
Underlying resources are also paused when this is set to true.
No deletion of resources will occur when this is set to true.
Optional: {}
configPorts ConfigPortsConfigPorts defines the desired state of port configurations for a DPUService.
This struct determines how ports are exposed from the DPU to the host cluster.
A DPUService can only have a single ServiceType across all ports.
Optional: {}
security DPUServiceSecuritySecurity contains security-related settings for the DPUService.Optional: {}

DPUServiceStatus

DPUServiceStatus defines the observed state of DPUService

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions defines current service state.Optional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.Optional: {}
configPorts object (keys:string, values:ConfigPort)ConfigPorts defines the observed state of the config ports.
It contains the actual port numbers that are exposed on the DPUService per cluster.
Optional: {}
serviceID stringServiceID is the ID of the service that the DPUService is associated with.
This is set when the DPUService is created.
Optional: {}

DPUServiceTemplate

DPUServiceTemplate is the Schema for the DPUServiceTemplate API. This object is intended to be used in conjunction with a DPUDeployment object. This object is the template from which the DPUService will be created. It contains configuration options related to resources required by the service to be deployed. The rest of the configuration options must be defined in a DPUServiceConfiguration object.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceTemplate
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUServiceTemplateSpec
status DPUServiceTemplateStatus

DPUServiceTemplateList

DPUServiceTemplateList contains a list of DPUServiceTemplate

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringDPUServiceTemplateList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUServiceTemplate array

DPUServiceTemplateSpec

DPUServiceTemplateSpec defines the desired state of DPUServiceTemplate

Appears in:

FieldDescriptionDefaultValidation
deploymentServiceName stringDeploymentServiceName is the name of the DPU service this configuration refers to. It must match
.spec.deploymentServiceName of a DPUServiceConfiguration object and one of the keys in .spec.services of a
DPUDeployment object.
MaxLength: 28
MinLength: 1
Required: {}
helmChart HelmChartHelmChart reflects the Helm related configuration. The user is supposed to configure the values that are static
across any DPUServiceConfiguration used with this DPUServiceTemplate in a DPUDeployment. These values act as a
baseline and are merged with values specified in the DPUServiceConfiguration. In case of conflict, the
DPUServiceConfiguration values take precedence.
Required: {}
resourceRequirements ResourceListResourceRequirements contains the overall resources required by this particular service to run on a single nodeOptional: {}
security DPUServiceSecuritySecurity contains security-related settings for the generated DPUService.
These settings are inherent to the service and apply to all deployments
using this template. Specifically, Privileged should be set on charts
that need privileged containers (e.g. for direct hardware access).
Optional: {}

DPUServiceTemplateStatus

DPUServiceTemplateStatus defines the observed state of DPUServiceTemplate

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the objectOptional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.Optional: {}
versions object (keys:string, values:string)Versions reflects the required versions the generated DPUService needs in order to function correctly.Optional: {}

DPUSet

DPUSet contains configuration for the DPUSet to be created by the DPUDeployment

Appears in:

FieldDescriptionDefaultValidation
nameSuffix stringNameSuffix is the suffix to be added to the name of the DPUSet object created by the DPUDeployment.MaxLength: 24
MinLength: 1
Required: {}
nodeSelector LabelSelectorNodeSelector defines the nodes that the DPUSet should target
Deprecated: This field is deprecated and will be removed with v26.7.0. Use DPUNodeSelector instead.
Optional: {}
dpuSelector object (keys:string, values:string)DPUSelector defines the DPUs that the DPUSet should target
Deprecated: This field is deprecated and will be removed with v26.7.0. Use DPUDeviceSelector instead.
Optional: {}
dpuNodeSelector LabelSelectorDPUNodeSelector defines the selector for DPUNodes that the DPUSet should target and should create a DPU for.Optional: {}
dpuDeviceSelector LabelSelectorDPUDeviceSelector defines the selector for DPUDevices that the DPUSet should target and should create a DPU for.Optional: {}
dpuClusterSelector object (keys:string, values:string)DPUClusterSelector defines the selector for DPUClusters that the DPUs created by the DPUSets created by the
DPUDeployment should join
require multiple DPUServices, DPUServiceInterfaces, and DPUServiceChains to be created so that we can mathematically
cover the union of all the selectors across all the DPUSets.
Optional: {}
dpuAnnotations object (keys:string, values:string)DPUAnnotations is the annotations to be added to the DPU object created by the DPUSet.MaxProperties: 50
Optional: {}

DPUs

DPUs contains the DPU related configuration

Appears in:

FieldDescriptionDefaultValidation
bfb stringBFB is the name of the BFB object to be used in this DPUDeployment. It must be in the same namespace as the
DPUDeployment.
MinLength: 1
Optional: {}
blueFieldSoftware stringBlueFieldSoftware is the name of the BlueFieldSoftware object to be used in this DPUDeployment. It must be in the
same namespace as the DPUDeployment.
MinLength: 1
Optional: {}
flavor stringFlavor is the name of the DPUFlavor object to be used in this DPUDeployment. It must be in the same namespace as
the DPUDeployment. Exactly one of flavor or flavorTemplate must be set (mutually exclusive).
MinLength: 1
Optional: {}
flavorTemplate stringFlavorTemplate is the name of the DPUFlavorTemplate object to be rendered per-DPU (against each
DPUDevice.spec.values) into a generated DPUFlavor. It must be in the same namespace as the DPUDeployment.
Exactly one of flavor or flavorTemplate must be set (mutually exclusive).
MinLength: 1
Optional: {}
astraEnabled booleanAstraEnabled indicates whether E/W NIC configuration (Astra) is enabledOptional: {}
dpuSets DPUSet arrayDPUSets contains configuration for each DPUSet that is going to be created by the DPUDeploymentMaxItems: 50
MinItems: 1
Optional: {}
nodeEffect ActionNodeEffect is the effect the DPU has on Nodes during provisioning.Required: {}
dpuSetStrategy DPUSetStrategyDPUSetStrategy is the strategy to use for the DPUSets created by the DPUDeployment.Required: {}
secureBoot booleanSecureBoot specifies whether UEFI Secure Boot should be enabled.Optional: {}

HelmChart

HelmChart reflects the helm related configuration

Appears in:

FieldDescriptionDefaultValidation
source ApplicationSourceSource specifies information about the Helm chartRequired: {}
values RawExtensionValues specifies Helm values to be passed to Helm template, defined as a map. This takes precedence over Values.Optional: {}

IPRange

Appears in:

FieldDescriptionDefaultValidation
startIP stringStartIP is the start of the range.Required: {}
endIP stringEndIP is the end of the range.Required: {}

IPV4Network

IPV4Network describes the configuration relevant to splitting a network into subnet per node (i.e. different gateway and broadcast IP per node).

Appears in:

FieldDescriptionDefaultValidation
network stringNetwork is the CIDR from which subnets should be allocated per node.
gatewayIndex integerGatewayIndex determines which IP in the subnet extracted from the CIDR should be the gateway IP. For point to
point networks (/31), one needs to leave this empty to make use of both the IPs.
prefixSize integerPrefixSize is the size of the subnet that should be allocated per node.
exclusions string arrayExclusions is a list of IPs that should be excluded when splitting the CIDR into subnets per node.
Deprecated: This field is deprecated and will be removed with v26.10.0. Use ExcludeRanges instead.
excludeRanges IPRange arrayExcludeRanges is a list of IP ranges that should be excluded from the allocation.
startIP and endIP are part of the Excluded range.
allocations object (keys:string, values:string)Allocations describes the subnets that should be assigned in each DPU node.
defaultGateway booleanDefaultGateway adds gateway as default gateway in the routes list if true.
routes Route arrayRoutes is the static routes list using the gateway specified in the spec.
subnetsPerDPUCluster integerSubnetsPerDPUCluster is the number of PrefixSize-sized subnets each DPUCluster should receive.
When specified, the controller will take care of assigning non-overlapping subnets part of the Network in each
DPUCluster that the DPUServiceIPAM is targeting. Leave empty in case you want the whole Network to be consumed
by a single DPUCluster.
Optional: {}

IPV4Subnet

IPV4Subnet describes the configuration relevant to splitting a subnet to a subnet block per node (i.e. same gateway and broadcast IP across all nodes).

Appears in:

FieldDescriptionDefaultValidation
subnet stringSubnet is the CIDR from which blocks should be allocated per node
gateway stringGateway is the IP in the subnet that should be the gateway of the subnet.
perNodeIPCount integerPerNodeIPCount is the number of IPs that should be allocated per node.
excludeRanges IPRange arrayExcludeRanges is a list of IP ranges that should be excluded from the allocation.
startIP and endIP are part of the Excluded range.
defaultGateway booleanif true, add gateway as default gateway in the routes list
DefaultGateway adds gateway as default gateway in the routes list if true.
routes Route arrayRoutes is the static routes list using the gateway specified in the spec.
blocksPerDPUCluster integerBlocksPerDPUCluster is the number of PerNodeIPCount-sized blocks each DPUCluster should receive.
When specified, the controller will take care of assigning non-overlapping IP blocks part of the Subnet in each
DPUCluster that the DPUServiceIPAM is targeting. Leave empty in case you want the whole Subnet to be consumed by
a single DPUCluster.
Optional: {}

InterfaceEntry

InterfaceEntry defines a single service interface entry within a NodeServiceInterfaces object.

Appears in:

FieldDescriptionDefaultValidation
name stringName uniquely identifies this entry within the NodeServiceInterfaces object.
Format: <namespace>_<service-interface-set-name>. The underscore separator is collision-free
because Kubernetes namespace and resource names follow DNS subdomain rules
and can never contain an underscore. Both components are
bounded to 63 chars, so the full name is at most 127 chars.
MaxLength: 253
MinLength: 1
Required: {}
terminating booleanTerminating indicates this entry is marked for removal. Cleanup may
require one or more reconcilers. ResourceReleased=True is set only
after all required cleanup conditions are satisfied in status.
labels object (keys:string, values:string)Labels used for ServiceChain matchLabels resolution.MaxProperties: 50
Optional: {}
annotations object (keys:string, values:string)Annotations carry operational metadata for this entry.MaxProperties: 50
Optional: {}
interfaceType stringInterfaceType is the type of the interface.Enum: [vlan physical pf vf ovn patch service]
Required: {}
physical PhysicalPhysical is the physical interface definition.Optional: {}
vlan VLANVlan is the VLAN definition.Optional: {}
vf VFVF is the VF definition.Optional: {}
pf PFPF is the PF definition.Optional: {}
service ServiceDefService is the service definition.Optional: {}
ovn OVNOVN is the OVN definition.Optional: {}
patch PatchDefPatch is the patch definition.Optional: {}

InterfaceEntryStatus

InterfaceEntryStatus records reconciliation state for a single interface entry.

Appears in:

FieldDescriptionDefaultValidation
name stringName matches the spec entry name.MinLength: 1
Required: {}
params object (keys:string, values:string)Params carries controller-specific information for handling reconcile/release of the matching InterfaceEntry in spec.
Multiple reconcilers may write distinct keys safely as long as they do not share keys.
Optional: {}
conditions Condition arrayConditions may be written by multiple reconcilers for the same entry.Optional: {}

LocalObjectDependency

LocalObjectDependency is a list of local object dependencies that are required for this Service. The object must be part of the dpuDeployment spec.services list.

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the objectRequired: {}

NICSelectorSpec

NICSelectorSpec defines how a NIC is selected

Appears in:

FieldDescriptionDefaultValidation
type NICSelectorTypeType is the type of selector to be used to identify the NIC.Enum: [dpu pci]
Required: {}
pci PCISelectorPCI is the PCI selector. valid only for selector type pciOptional: {}
controllerNumber integerControllerNumber specifies the controller number that will be used to find the matching representor on the DPU.
A value of 0 targets the local controller, >=1 targets external controllers with the specified number. If unspecified controller number 1 is used.
In case of a DPU/NIC with socket direct or MultiHost, the user should specify the controller number explicitly
Maximum: 255
Minimum: 0
Optional: {}

NICSelectorType

Underlying type: string

NICSelectorType is the type of NIC selector

Appears in:

FieldDescription
dpuNICSelectorTypeDPU selects the DPU NIC
pciNICSelectorTypePCI selects NIC according to the provided PCI address of one of the NIC's Embedded CPU PFs (ECPFs)

NamespacedName

NamespacedName contains enough information to locate the referenced Kubernetes resource object in any namespace.

Appears in:

FieldDescriptionDefaultValidation
name stringName of the object.Required: {}
namespace stringNamespace of the object, if not provided the object will be looked up in
the same namespace as the referring object
Optional: {}

NodeServiceInterfaces

NodeServiceInterfaces is the Schema for the nodeserviceinterfaces API.

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringNodeServiceInterfaces
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec NodeServiceInterfacesSpec
status NodeServiceInterfacesStatus

NodeServiceInterfacesList

NodeServiceInterfacesList contains a list of NodeServiceInterfaces

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringNodeServiceInterfacesList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items NodeServiceInterfaces array

NodeServiceInterfacesSpec

NodeServiceInterfacesSpec defines the desired state of NodeServiceInterfaces.

Appears in:

FieldDescriptionDefaultValidation
node stringNode is the name of the DPU node this object represents.MaxLength: 253
MinLength: 1
Required: {}
type stringType identifies which controller domain owns this NSI shard.
Examples: "sfc", "vpc-my-provisioner".
MaxLength: 253
MinLength: 1
Required: {}
interfaces InterfaceEntry arrayInterfaces is the list of service interface entries for this node.MaxItems: 256
Optional: {}

NodeServiceInterfacesStatus

NodeServiceInterfacesStatus defines the observed state of NodeServiceInterfaces.

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect aggregate status.Optional: {}
observedGeneration integerObservedGeneration is the last observed generation of the NodeServiceInterfaces object.Optional: {}
interfaceStatuses InterfaceEntryStatus arrayInterfaceStatuses tracks per-entry reconciliation state. Written by
the managing controller. The params map carries controller-specific
release information needed during terminating/release handling.
Optional: {}

OVN

OVN defines the configuration for OVN interface type

Appears in:

FieldDescriptionDefaultValidation
externalBridge stringExternalBridge is the name of the OVN bridgebr-ovnOptional: {}

ObjectMeta

ObjectMeta holds metadata like labels and annotations.

Appears in:

FieldDescriptionDefaultValidation
labels object (keys:string, values:string)Labels is a map of string keys and values.Optional: {}
annotations object (keys:string, values:string)Annotations is a map of string keys and values.Optional: {}

PCISelector

Underlying type: struct{Address string "json:"address,omitzero""}

PCISelector selects NIC by PCI address

Appears in:

PF

PF defines the PF configuration

Appears in:

FieldDescriptionDefaultValidation
nicSelector NICSelectorSpecNICSelector defines the NIC selected for the PF interfaceOptional: {}
pfID integerThe PF IDMaximum: 255
Minimum: 0
Required: {}
virtualNetwork stringVirtualNetwork is the VirtualNetwork name in the same namespaceOptional: {}

PatchDef

PatchDef defines the configuration for Patch interface type

Appears in:

FieldDescriptionDefaultValidation
peerBridge stringPeerBridge is the name of the bridge to which the patch port is connected.
This bridge must be created before the ServiceInterface is created.
Required: {}
peerPatchName stringPeerPatchName is the name of the patch port on the peer bridge.
If not set, it is auto-generated in the format: p_<bridgeA>_to_<bridgeB>_<hash>
where bridge names have hyphens removed and <hash> is an 8-character FNV-1a hash
derived from the ServiceInterface's namespace/name.
Example: p_brovn_to_brsfc_7aea60f7 (for bridges br-ovn and br-sfc).
Optional: {}
peerExternalIDs object (keys:string, values:string)PeerExternalIDs are the external IDs used to identify the peer patch port.Optional: {}

Physical

Physical Identifies a physical interface

Appears in:

FieldDescriptionDefaultValidation
interfaceName stringThe interface nameRequired: {}

Port

Port defines the port configuration

Appears in:

FieldDescriptionDefaultValidation
serviceInterface ServiceIfcRequired: {}

Route

Route contains static route parameters

Appears in:

FieldDescriptionDefaultValidation
dst stringThe destination of the route, in CIDR notation

ServiceChain

ServiceChain is the Schema for the servicechains API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceChain
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServiceChainSpec
status ServiceChainStatus

ServiceChainList

ServiceChainList contains a list of ServiceChain

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceChainList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items ServiceChain array

ServiceChainSet

ServiceChainSet is the Schema for the servicechainsets API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceChainSet
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServiceChainSetSpec
status ServiceChainSetStatus

ServiceChainSetList

ServiceChainSetList contains a list of ServiceChainSet

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceChainSetList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items ServiceChainSet array

ServiceChainSetSpec

ServiceChainSetSpec defines the desired state of ServiceChainSet

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectorSelect the Nodes with specific labels, ServiceChain CRs will be created
only for these Nodes
Optional: {}
template ServiceChainSpecTemplateServiceChainSpecTemplate holds the template for the ServiceChainSpecRequired: {}

ServiceChainSetSpecTemplate

ServiceChainSetSpecTemplate describes the data a ServiceChainSet should have when created from a template.

Appears in:

FieldDescriptionDefaultValidation
spec ServiceChainSetSpec
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.

ServiceChainSetStatus

ServiceChainSetStatus defines the observed state of ServiceChainSet

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.
numberApplied integerThe number of nodes where the service chain is applied and is supposed to be applied.
numberReady integerThe number of nodes where the service chain is applied and ready.

ServiceChainSpec

ServiceChainSpec defines the desired state of ServiceChain

Appears in:

FieldDescriptionDefaultValidation
node stringNode where this ServiceChain applies toOptional: {}
switches Switch arrayThe switches of the ServiceChain, order is significantMaxItems: 50
MinItems: 1
Required: {}

ServiceChainSpecTemplate

ServiceChainSpecTemplate defines the template from which ServiceChainSpecs are created

Appears in:

FieldDescriptionDefaultValidation
spec ServiceChainSpecServiceChainSpec is the spec for the ServiceChainSpecRequired: {}
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}

ServiceChainStatus

ServiceChainStatus defines the observed state of ServiceChain

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

ServiceChains

Appears in:

FieldDescriptionDefaultValidation
upgradePolicy UpgradePolicyUpgradePolicy contains the configuration for the upgrade process{ }Required: {}
switches DPUDeploymentSwitch arraySwitches is the list of switches that form the service chainMaxItems: 50
MinItems: 1
Required: {}

ServiceConfiguration

ServiceConfiguration contains fields that are configured on the generated DPUService.

Appears in:

FieldDescriptionDefaultValidation
helmChart ServiceConfigurationHelmChartHelmChart reflects the Helm related configuration. The user is supposed to configure values specific to that
DPUServiceConfiguration used in a DPUDeployment and should not specify values that could be shared across multiple
DPUDeployments using different DPUServiceConfigurations. These values are merged with values specified in the
DPUServiceTemplate. In case of conflict, the DPUServiceConfiguration values take precedence.
Optional: {}
serviceDaemonSet DPUServiceConfigurationServiceDaemonSetValuesServiceDaemonSet contains settings related to the underlying DaemonSet that is part of the Helm chartOptional: {}
deployInCluster booleanDeployInCluster indicates if the DPUService Helm Chart will be deployed on the Host cluster. Default to false.Optional: {}
configPorts ConfigPortsConfigPorts defines the desired state of port configurations for a DPUService.
This struct determines how ports are exposed from the DPU to the host cluster.
A DPUService can only have a single ServiceType across all ports.
Optional: {}

ServiceConfigurationHelmChart

ServiceConfigurationHelmChart reflects the helm related configuration

Appears in:

FieldDescriptionDefaultValidation
values RawExtensionValues specifies Helm values to be passed to Helm template, defined as a map. This takes precedence over Values.Optional: {}

ServiceDaemonSetValues

ServiceDaemonSetValues specifies the configuration for the ServiceDaemonSet.

Appears in:

FieldDescriptionDefaultValidation
nodeSelector NodeSelectorNodeSelector specifies which Nodes to deploy the ServiceDaemonSet to.Optional: {}
updateStrategy DaemonSetUpdateStrategyUpdateStrategy specifies the DeaemonSet update strategy for the ServiceDaemonset.Optional: {}
labels object (keys:string, values:string)Labels specifies labels which are added to the ServiceDaemonSet.Optional: {}
annotations object (keys:string, values:string)Annotations specifies annotations which are added to the ServiceDaemonSet.Optional: {}
resources ResourceListResources specifies resources which are added to the ServiceDaemonSet.Optional: {}

ServiceDef

ServiceDef Identifies the service and network for the ServiceInterface

Appears in:

FieldDescriptionDefaultValidation
serviceID stringServiceID is the DPU Service IdentifierRequired: {}
network stringNetwork is the Network Attachment Definition in the form of "namespace/name"
or just "name" if the namespace is the same as the ServiceInterface.
Required: {}
interfaceName stringThe interface nameMaxLength: 15
MinLength: 1
Required: {}
virtualNetwork stringVirtualNetwork is the VirtualNetwork name in the same namespaceOptional: {}

ServiceIfc

ServiceIfc defines the service interface configuration

Appears in:

FieldDescriptionDefaultValidation
matchLabels object (keys:string, values:string)Labels matching service interfaceMaxProperties: 50
MinProperties: 1
Required: {}
ipam IPAMIPAM defines the IPAM configuration when referencing a serviceInterface of type 'service'Optional: {}

ServiceInterface

ServiceInterface is the Schema for the serviceinterfaces API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceInterface
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServiceInterfaceSpec
status ServiceInterfaceStatus

ServiceInterfaceList

ServiceInterfaceList contains a list of ServiceInterface

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceInterfaceList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items ServiceInterface array

ServiceInterfaceSet

ServiceInterfaceSet is the Schema for the serviceinterfacesets API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceInterfaceSet
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec ServiceInterfaceSetSpec
status ServiceInterfaceSetStatus

ServiceInterfaceSetList

ServiceInterfaceSetList contains a list of ServiceInterfaceSet

FieldDescriptionDefaultValidation
apiVersion stringsvc.dpu.nvidia.com/v1alpha1
kind stringServiceInterfaceSetList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items ServiceInterfaceSet array

ServiceInterfaceSetSpec

ServiceInterfaceSetSpec defines the desired state of ServiceInterfaceSet

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectorSelect the Nodes with specific labels, ServiceInterface CRs will be
created only for these Nodes
Optional: {}
template ServiceInterfaceSpecTemplateTemplate holds the template for the serviceInterfaceSpecRequired: {}

ServiceInterfaceSetSpecTemplate

ServiceInterfaceSetSpecTemplate describes the data a ServiceInterfaceSet should have when created from a template.

Appears in:

FieldDescriptionDefaultValidation
spec ServiceInterfaceSetSpec
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.

ServiceInterfaceSetStatus

ServiceInterfaceSetStatus defines the observed state of ServiceInterfaceSet

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.
numberApplied integerThe number of nodes where the service chain is applied and is supposed to be applied.
numberReady integerThe number of nodes where the service chain is applied and ready.

ServiceInterfaceSpec

ServiceInterfaceSpec defines the desired state of ServiceInterface

Appears in:

FieldDescriptionDefaultValidation
node stringNode where this interface existsOptional: {}
interfaceType stringThe interface type ("vlan", "physical", "pf", "vf", "ovn", "patch", "service")Enum: [vlan physical pf vf ovn patch service]
Required: {}
physical PhysicalThe physical interface definitionOptional: {}
vlan VLANThe VLAN definitionOptional: {}
vf VFThe VF definitionOptional: {}
pf PFThe PF definitionOptional: {}
service ServiceDefThe Service definitionOptional: {}
ovn OVNThe OVN definition
Deprecated: This field is deprecated and will be removed with v26.10.0.
Migrate to interfaceType="patch" with spec.patch.peerBridge and spec.patch.peerPatchName instead.
Optional: {}
patch PatchDefThe Patch definitionOptional: {}

ServiceInterfaceSpecTemplate

ServiceInterfaceSpecTemplate defines the template from which ServiceInterfaceSpecs are created

Appears in:

FieldDescriptionDefaultValidation
spec ServiceInterfaceSpecServiceInterfaceSpec is the spec for the ServiceInterfaceSpecRequired: {}
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.Optional: {}

ServiceInterfaceStatus

ServiceInterfaceStatus defines the observed state of ServiceInterface

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the object
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.

ServiceInterfaceTemplate

ServiceInterfaceTemplate contains the information related to an interface of the DPUService

Appears in:

FieldDescriptionDefaultValidation
name stringName is the name of the interfaceMaxLength: 15
MinLength: 1
Required: {}
network stringNetwork is the Network Attachment Definition in the form of "namespace/name"
or just "name" if the namespace is the same as the namespace the pod is running.
Required: {}
virtualNetwork stringVirtualNetwork is the VirtualNetwork name in the same namespaceOptional: {}

Switch

Switch defines the switch configuration

Appears in:

FieldDescriptionDefaultValidation
ports Port arrayPorts of the switchMaxItems: 50
MinItems: 1
Required: {}
serviceMTU integerServiceMTU of the switch
The default is 1500.
1500Maximum: 9216
Minimum: 1280
Optional: {}

UpgradePolicy

Appears in:

FieldDescriptionDefaultValidation
applyNodeEffect booleanApplyNodeEffect specifies if the node effect should be applied during the
upgrade. It signals the reconciler that this object upgrade is disruptive.
Hence a new revision of the object should be created and node effect should
be applied.
trueOptional: {}

VF

VF defines the VF configuration

Appears in:

FieldDescriptionDefaultValidation
nicSelector NICSelectorSpecNICSelector defines the NIC selected for the VF interfaceOptional: {}
vfID integerThe VF IDMaximum: 255
Minimum: 0
Required: {}
pfID integerThe PF IDMaximum: 255
Minimum: 0
Required: {}
parentInterfaceRef stringThe parent interface referenceOptional: {}
virtualNetwork stringVirtualNetwork is the VirtualNetwork name in the same namespaceOptional: {}

VLAN

VLAN defines the VLAN configuration

Appears in:

FieldDescriptionDefaultValidation
vlanID integerThe VLAN IDRequired: {}
parentInterfaceRef stringThe parent interface referenceRequired: {}

vpc.dpu.nvidia.com/v1alpha1

Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group

Resource Types

BridgedNetworkIPAMIPv4Spec

BridgedNetworkIPAMIPv4Spec contains IPv4 IPAM configuration for bridged network

Appears in:

FieldDescriptionDefaultValidation
dhcp booleanDHCP if set, enables DHCP for the networkRequired: {}
subnet stringSubnet is the network subnet in CIDR format to use for DHCP. the first IP in the subnet is the gateway.Required: {}
excludeIPs ExcludeIPsEntry arrayExcludeIPs are the IPs to exclude from DHCP allocation.Optional: {}

BridgedNetworkIPAMSpec

BridgedNetworkIPAMSpec contains IPAM configuration for bridged network

Appears in:

FieldDescriptionDefaultValidation
ipv4 BridgedNetworkIPAMIPv4SpecIPv4 contains the IPv4 IPAM configurationOptional: {}

BridgedNetworkSpec

BridgedNetworkSpec contains configuration for bridged network

Appears in:

FieldDescriptionDefaultValidation
ipam BridgedNetworkIPAMSpecIPAM contains the IPAM configuration for the bridged networkOptional: {}

DPUVPC

DPUVPC is the Schema for the dpuvpc API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringvpc.dpu.nvidia.com/v1alpha1
kind stringDPUVPC
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUVPCSpec
status DPUVPCStatus

DPUVPCList

DPUVPCList contains a list of DPUVPC

FieldDescriptionDefaultValidation
apiVersion stringvpc.dpu.nvidia.com/v1alpha1
kind stringDPUVPCList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUVPC array

DPUVPCSpec

DPUVPCSpec defines the desired state of DPUVPCSpec

Appears in:

FieldDescriptionDefaultValidation
tenant stringTenant which owns the VPC.MinLength: 1
Required: {}
nodeSelector LabelSelectorNodeSelector Selects the DPU Nodes with specific labels which belong to this VPC.Optional: {}
isolationClassName stringIsolationClassName is the name of the isolation class to use for the VPCMinLength: 1
Required: {}
interNetworkAccess booleanInterNetworkAccess defines if virtual networks within the VPC are routed or not.
if set to false, communication between virtual networks is not allowed.
Required: {}

DPUVPCStatus

DPUVPCStatus defines the observed state of DPUVPC

Appears in:

FieldDescriptionDefaultValidation
virtualNetworks VirtualNetworkStatus arrayVirtualNetworks contains the virtual networks that belong to this VPCOptional: {}
conditions Condition arrayConditions reflect the status of the objectOptional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.Optional: {}

DPUVirtualNetwork

DPUVirtualNetwork is the Schema for the dpuvirtualnetwork API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringvpc.dpu.nvidia.com/v1alpha1
kind stringDPUVirtualNetwork
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec DPUVirtualNetworkSpec
status DPUVirtualNetworkStatus

DPUVirtualNetworkList

DPUVirtualNetworkList contains a list of DPUVirtualNetwork

FieldDescriptionDefaultValidation
apiVersion stringvpc.dpu.nvidia.com/v1alpha1
kind stringDPUVirtualNetworkList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items DPUVirtualNetwork array

DPUVirtualNetworkSpec

DPUVirtualNetworkSpec defines the desired state of DPUVirtualNetworkSpec

Appears in:

FieldDescriptionDefaultValidation
nodeSelector LabelSelectorNodeSelector Selects the DPU Nodes with specific labels which can belong to the virtual network.Optional: {}
vpcName stringvpcName is the name of the DPUVPC the virtual network belongs within the same namespace.Required: {}
type NetworkTypeType of the virtual networkEnum: [Bridged]
Required: {}
externallyRouted booleanExternallyRouted defines if the virtual network can be routed externallyRequired: {}
masquerade booleanMasquerade defines if the virtual network should masquerade the traffic before egressing to external networks.
valid only if ExternallyRouted is true
trueOptional: {}
bridgedNetwork BridgedNetworkSpecBridgedNetwork contains the bridged network configurationOptional: {}

DPUVirtualNetworkStatus

DPUVirtualNetworkStatus defines the observed state of DPUVirtualNetwork

Appears in:

FieldDescriptionDefaultValidation
conditions Condition arrayConditions reflect the status of the objectOptional: {}
observedGeneration integerObservedGeneration records the Generation observed on the object the last time it was patched.Optional: {}

ExcludeIPsEntry

Appears in:

FieldDescriptionDefaultValidation
ip stringIP is the IP address to exclude from DHCP allocation. must be part for the virtual network subnet.Optional: {}
range RangeEntryRange is the range of IP addresses to exclude from DHCP allocation. must be part for the virtual network subnet.Optional: {}

IsolationClass

IsolationClass is the Schema for the isolationclass API

Appears in:

FieldDescriptionDefaultValidation
apiVersion stringvpc.dpu.nvidia.com/v1alpha1
kind stringIsolationClass
metadata ObjectMetaRefer to Kubernetes API documentation for fields of metadata.
spec IsolationClassSpec
status IsolationClassStatus

IsolationClassList

IsolationClassList contains a list of IsolationClass

FieldDescriptionDefaultValidation
apiVersion stringvpc.dpu.nvidia.com/v1alpha1
kind stringIsolationClassList
metadata ListMetaRefer to Kubernetes API documentation for fields of metadata.
items IsolationClass array

IsolationClassSpec

IsolationClassSpec defines the configuration of IsolationClass

Appears in:

FieldDescriptionDefaultValidation
provisioner stringProvisioner indicates the type of the provisioner.Required: {}
parameters object (keys:string, values:string)Parameters holds the parameters for the provisionerOptional: {}

IsolationClassStatus

IsolationClassStatus defines the status of IsolationClass

Appears in:

NetworkType

Underlying type: string

NetworkType represents the type of the virtual network

Validation:

  • Enum: [Bridged]

Appears in:

FieldDescription
BridgedBridgedVirtualNetworkType represents a bridged virtual network

RangeEntry

Underlying type: struct{Start string "json:"start""; End string "json:"end""}

RangeEntry contains a range of IP addresses

Appears in:

VirtualNetworkStatus

VirtualNetworkStatus is the status of a virtual network

Appears in:

FieldDescriptionDefaultValidation
name stringthe name of the virtual networkRequired: {}