doca-platform

module
v0.1.0-latest-stable Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 30, 2026 License: Apache-2.0

README

DOCA Platform Framework (DPF)

Overview

DOCA Platform Framework (DPF) is a system that provisions and orchestrates NVIDIA BlueField DPUs in cloud environments.

Key Features

  • Kubernetes Integration: Streamlines DPU provisioning and management via Kubernetes APIs.
  • DPU Service Orchestration: Enables efficient deployment and orchestration of services on DPUs.
  • Cluster Management: Simplifies the management of DPUs within Kubernetes clusters.

Hardware support

DPF supports dual port NVIDIA BlueField-3 DPUs.

BlueField DPUs are installed as PCI devices in servers to manage various types of network traffic, such as data center communication and storage traffic, through dedicated ports. They feature arm64 CPUs running Linux OS and NVIDIA DOCA Software components.

Refer to Prerequisites for detailed hardware requirements:

Documentation

  • System overview: High-level description of DPF components and functionality.

  • System architecture: Detailed explanation of DPF components and their interactions.

  • User guide: Guides on installing and utilizing DPF effectively for specific use-cases.

  • Release notes: Features and known issues for specific DPF versions.

API reference

Comprehensive DPF API documentation is available here.

Directories

Path Synopsis
api
dpuservice/v1alpha1
Package v1alpha1 contains API Schema definitions for the svc.dpf v1alpha1 API group +kubebuilder:object:generate=true +groupName=svc.dpu.nvidia.com
Package v1alpha1 contains API Schema definitions for the svc.dpf v1alpha1 API group +kubebuilder:object:generate=true +groupName=svc.dpu.nvidia.com
noderesources/v1alpha1
Package v1alpha1 contains API Schema definitions for the noderesources v1alpha1 API group +kubebuilder:object:generate=true +groupName=noderesources.dpu.nvidia.com
Package v1alpha1 contains API Schema definitions for the noderesources v1alpha1 API group +kubebuilder:object:generate=true +groupName=noderesources.dpu.nvidia.com
operator/v1alpha1
Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=operator.dpu.nvidia.com
Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=operator.dpu.nvidia.com
provisioning/v1alpha1
Package v1alpha1 contains API Schema definitions for the provisioning.dpu v1alpha1 API group +kubebuilder:object:generate=true +groupName=provisioning.dpu.nvidia.com
Package v1alpha1 contains API Schema definitions for the provisioning.dpu v1alpha1 API group +kubebuilder:object:generate=true +groupName=provisioning.dpu.nvidia.com
storage/v1alpha1
Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group +kubebuilder:object:generate=true +groupName=storage.dpu.nvidia.com
Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group +kubebuilder:object:generate=true +groupName=storage.dpu.nvidia.com
vpc/v1alpha1
Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group +kubebuilder:object:generate=true +groupName=vpc.dpu.nvidia.com
Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group +kubebuilder:object:generate=true +groupName=vpc.dpu.nvidia.com
cmd
cniinstaller command
dpf-kms-plugin command
dpf-ovs-cni command
dpfctl command
dpu-hw-agent command
Command dpu-hw-agent is the agent-side SPIRE NodeAttestor plugin for DPU node attestation.
Command dpu-hw-agent is the agent-side SPIRE NodeAttestor plugin for DPU node attestation.
dpu-hw-server command
Command dpu-hw-server is the server-side SPIRE NodeAttestor plugin for DPU node attestation.
Command dpu-hw-server is the server-side SPIRE NodeAttestor plugin for DPU node attestation.
dpuagent command
dpudetector command
dpuservice command
dummydpuservice command
hostagent command
ipallocator command
operator command
provisioning command
provisioning/certreloader command
Command certreloader watches the bfb-registry server-certificate directory and triggers an nginx graceful reload (SIGHUP via `nginx -s reload`) whenever the mounted certificate changes.
Command certreloader watches the bfb-registry server-certificate directory and triggers an nginx graceful reload (SIGHUP via `nginx -s reload`) whenever the mounted certificate changes.
servicechainset command
sfc-controller command
spiffe-helper command
hack
tools/dpfdev module
internal
cni/dpf-ovs-cni/pkg/ipam/mock
Package mock_ipam is a generated GoMock package.
Package mock_ipam is a generated GoMock package.
cni/dpf-ovs-cni/pkg/ovsdb/mock
Package mock_ovsdb is a generated GoMock package.
Package mock_ovsdb is a generated GoMock package.
dpfctl/bmcdump
Package bmcdump collects BlueField BMC diagnostic dumps for DPUDevices.
Package bmcdump collects BlueField BMC diagnostic dumps for DPUDevices.
dpfctl/util
Package util contains shared dpfctl helpers.
Package util contains shared dpfctl helpers.
features
Package features defines DPF-wide feature gates.
Package features defines DPF-wide feature gates.
kmsplugin/config
Package config parses the plugin configuration from command-line flags.
Package config parses the plugin configuration from command-line flags.
kmsplugin/server
Package server implements the Kubernetes KMS v2 gRPC service on top of a pluggable encryption Backend.
Package server implements the Kubernetes KMS v2 gRPC service on top of a pluggable encryption Backend.
kmsplugin/vault
Package vault implements the Vault Transit backend used by the KMS plugin.
Package vault implements the Vault Transit backend used by the KMS plugin.
provisioning/controllers/dpu/state/redfish/diag
Package diag translates Redfish task / SEL telemetry into operator-actionable hints.
Package diag translates Redfish task / SEL telemetry into operator-actionable hints.
provisioning/dpuagent/operations/sriovconfig
Package sriovconfig creates the SR-IOV functions a DPUFlavor declares: the Scalable Functions of spec.scalableFunctions (plus the DMA SF of spec.dma) and the Virtual Functions of spec.virtualFunctions.
Package sriovconfig creates the SR-IOV functions a DPUFlavor declares: the Scalable Functions of spec.scalableFunctions (plus the DMA SF of spec.dma) and the Virtual Functions of spec.virtualFunctions.
provisioning/dpuagent/spiffe
Package spiffe implements the DPU Agent SPIFFE heartbeat writer.
Package spiffe implements the DPU Agent SPIFFE heartbeat writer.
provisioning/dpuflavortemplate
Package dpuflavortemplate renders a DPUFlavorTemplate body into a concrete DPUFlavor using per-device values from DPUDevice.spec.values.
Package dpuflavortemplate renders a DPUFlavorTemplate body into a concrete DPUFlavor using per-device values from DPUDevice.spec.values.
provisioning/utils/nvconfig
Package nvconfig holds NVConfig parameter parsing shared by the provisioning controllers and the DPU agent.
Package nvconfig holds NVConfig parameter parsing shared by the provisioning controllers and the DPU agent.
spire/attestor
Package attestor enables the SPIRE Kubernetes workload attestor on a DPU.
Package attestor enables the SPIRE Kubernetes workload attestor on a DPU.
spire/dpu_hw/agent
Package agent implements the agent half of the dpu_hw SPIRE NodeAttestor.
Package agent implements the agent half of the dpu_hw SPIRE NodeAttestor.
spire/dpu_hw/server
Package server implements the server half of the dpu_hw SPIRE NodeAttestor.
Package server implements the server half of the dpu_hw SPIRE NodeAttestor.
spire/identity
Package identity normalizes DPU hardware serials and builds agent SPIFFE IDs.
Package identity normalizes DPU hardware serials and builds agent SPIFFE IDs.
sriovdpconfiginit
Package sriovdpconfiginit resolves which SR-IOV device-plugin configuration the plugin consumes on a DPU node.
Package sriovdpconfiginit resolves which SR-IOV device-plugin configuration the plugin consumes on a DPU node.
storage/snap/csi-plugin/utils/mount/mock
Package mock_mount is a generated GoMock package.
Package mock_mount is a generated GoMock package.
storage/snap/csi-plugin/utils/nvme/mock
Package mock_nvme is a generated GoMock package.
Package mock_nvme is a generated GoMock package.
storage/snap/csi-plugin/utils/pci/mock
Package mock_pci is a generated GoMock package.
Package mock_pci is a generated GoMock package.
storage/snap/node-driver/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
pkg
dpuheartbeat
Package dpuheartbeat provides the canonical freshness check for the DPU Agent's SPIFFE heartbeat.
Package dpuheartbeat provides the canonical freshness check for the DPU Agent's SPIFFE heartbeat.
ecpf/mock
Package mock is a generated GoMock package.
Package mock is a generated GoMock package.
openflow
Package openflow is a generated GoMock package.
Package openflow is a generated GoMock package.
ovsutils
Package ovsutils is a generated GoMock package.
Package ovsutils is a generated GoMock package.
utils/networkhelper/mock
Package mock_networkhelper is a generated GoMock package.
Package mock_networkhelper is a generated GoMock package.
test
apivalidation
apivalidation package is used to test the API validations of DPF
apivalidation package is used to test the API validations of DPF
e2e
mock/dms command
mock/dms/pkg/certs
Package certs implements utilities for managing certificates for the mock DMS server.
Package certs implements utilities for managing certificates for the mock DMS server.
mock/dpuagent command
mock-dpuagent is one non-existent BlueField DPU for control plane scale testing: it serves the BMC Redfish API the provisioning controllers talk to and, once the controllers have "installed" an OS on it, impersonates the dpu-agent that reports DPU.status.agentStatus and joins the DPU cluster.
mock-dpuagent is one non-existent BlueField DPU for control plane scale testing: it serves the BMC Redfish API the provisioning controllers talk to and, once the controllers have "installed" an OS on it, impersonates the dpu-agent that reports DPU.status.agentStatus and joins the DPU cluster.
mock/dpuagent/pkg/agent
Package agent impersonates the dpu-agent of one DPU: it takes the identity the install artifact carries, exchanges the bootstrap token for a client certificate exactly like cmd/dpuagent does and then runs the agent operation pipeline against the DPU object with no-op operations that write the same status the real ones would.
Package agent impersonates the dpu-agent of one DPU: it takes the identity the install artifact carries, exchanges the bootstrap token for a client certificate exactly like cmd/dpuagent does and then runs the agent operation pipeline against the DPU object with no-op operations that write the same status the real ones would.
mock/dpuagent/pkg/artifact
Package artifact downloads and parses the artifacts the provisioning controller sends to a BMC: the BFB + bf.cfg concat stream (BF3), the OS ISO and cidata seed.iso (BF4) and the PLDM firmware bundle (BF4), plus the cloud-init user-data both DPU types carry.
Package artifact downloads and parses the artifacts the provisioning controller sends to a BMC: the BFB + bf.cfg concat stream (BF3), the OS ISO and cidata seed.iso (BF4) and the PLDM firmware bundle (BF4), plus the cloud-init user-data both DPU types carry.
mock/dpuagent/pkg/config
Package config loads the single YAML file that drives one mock-dpuagent process.
Package config loads the single YAML file that drives one mock-dpuagent process.
mock/dpuagent/pkg/hostctl
Package hostctl is the plain-HTTP control entry point that stands in for "the host was rebooted by an external system".
Package hostctl is the plain-HTTP control entry point that stands in for "the host was rebooted by an external system".
mock/dpuagent/pkg/node
Package node replays "kubeadm join" and kubelet node registration in-process so a mock DPU shows up as a Ready Node in the DPU cluster without kubeadm, kubelet or any admin credentials.
Package node replays "kubeadm join" and kubelet node registration in-process so a mock DPU shows up as a Ready Node in the DPU cluster without kubeadm, kubelet or any admin credentials.
mock/dpuagent/pkg/redfish
Package redfish is the trimmed BlueField BMC Redfish server of mock-dpuagent.
Package redfish is the trimmed BlueField BMC Redfish server of mock-dpuagent.
mock/dpuagent/rebootcontroller command
mock-reboot-controller is the "external system" of DPUNode nodeRebootMethod external for mock-dpuagent DPUs: it reboots the mock DPUs of an annotated DPUNode and clears the annotation.
mock-reboot-controller is the "external system" of DPUNode nodeRebootMethod external for mock-dpuagent DPUs: it reboots the mock DPUs of an annotated DPUNode and clears the annotation.
mock/fake-block-storage-vendor-dpu-plugin command
Binary fake-block-storage-vendor-dpu-plugin provides local AIO block devices for SNAP e2e tests.
Binary fake-block-storage-vendor-dpu-plugin provides local AIO block devices for SNAP e2e tests.
mock/fake-fs-storage-vendor-dpu-plugin command
Binary fake-fs-storage-vendor-dpu-plugin is a test-only stand-in for fs-storage-vendor-dpu-plugin, the vendor plugin that runs on the DPU and turns a DPUVolume into a filesystem device SNAP can emulate.
Binary fake-fs-storage-vendor-dpu-plugin is a test-only stand-in for fs-storage-vendor-dpu-plugin, the vendor plugin that runs on the DPU and turns a DPUVolume into a filesystem device SNAP can emulate.
mock/md5sum command
rshim-console-collector command
Command rshim-console-collector is an E2E-only helper that discovers host rshim console devices, streams DPU console output to stdout, and reconnects after DPU resets so the existing pod log pipeline can archive the output.
Command rshim-console-collector is an E2E-only helper that discovers host rshim console devices, streams DPU console output to stdout, and reconnects after DPU resets so the existing pod log pipeline can archive the output.
rshim-console-collector/pkg
Package collector provides E2E-only collection of locally attached DPU consoles.
Package collector provides E2E-only collection of locally attached DPU consoles.
utils/dpuagent
Package dpuagent holds e2e validations for the DPU Agent operations that run inside the DPU (internal/provisioning/dpuagent/operations/...).
Package dpuagent holds e2e validations for the DPU Agent operations that run inside the DPU (internal/provisioning/dpuagent/operations/...).
utils/dpuflavor
Package dpuflavor provides helpers for adapting DPUFlavor fixtures in tests.
Package dpuflavor provides helpers for adapting DPUFlavor fixtures in tests.
utils/remotehost
Package remotehost runs SSH and docker/podman commands on remote test machines.
Package remotehost runs SSH and docker/podman commands on remote test machines.
utils/rshimconsole
Package rshimconsole provides E2E helpers for deploying the rshim console collector and exporting its logs.
Package rshimconsole provides E2E helpers for deploying the rshim console collector and exporting its logs.
utils/snap
Package snap holds assertions for SNAP storage objects and consumer I/O.
Package snap holds assertions for SNAP storage objects and consumer I/O.
utils/testedservices
Package testedservices dumps Ready cluster CRs for the tested-services BOM.
Package testedservices dumps Ready cluster CRs for the tested-services BOM.
utils/vpc/topology
Package topology describes per-hardware Weave rail layout used by e2e tests.
Package topology describes per-hardware Weave rail layout used by e2e tests.
utils/vpc/topology/bf3
Package bf3 holds Weave e2e topology for BlueField-3 lab hardware.
Package bf3 holds Weave e2e topology for BlueField-3 lab hardware.
utils/vpc/topology/bf4
Package bf4 holds Weave e2e topology and lab wiring for BlueField-4.
Package bf4 holds Weave e2e topology and lab wiring for BlueField-4.
third_party
forked/argoproj/argo-cd/pkg/apis/application/v1alpha1
Package v1alpha1 contains code that was copied from the upstream ArgoCD types.
Package v1alpha1 contains code that was copied from the upstream ArgoCD types.
forked/github.com/clastix/kamaji/api/v1alpha1
Package v1alpha1 contains API Schema definitions for the kamaji v1alpha1 API group +kubebuilder:object:generate=true +groupName=kamaji.clastix.io
Package v1alpha1 contains API Schema definitions for the kamaji v1alpha1 API group +kubebuilder:object:generate=true +groupName=kamaji.clastix.io
forked/github.com/spiffe/spire-controller-manager/api/v1alpha1
Package v1alpha1 contains API Schema definitions for the spire v1alpha1 API group +kubebuilder:object:generate=true +groupName=spire.spiffe.io
Package v1alpha1 contains API Schema definitions for the spire v1alpha1 API group +kubebuilder:object:generate=true +groupName=spire.spiffe.io
+k8s:deepcopy-gen=package
forked/nvidia-external-attacher/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
forked/nvidia-external-attacher/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
forked/nvidia-external-attacher/client/clientset/versioned/typed/storage/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL