Skip to content

Commit 7126ff4

Browse files
authored
NVIDIA DPF Operator packs v25.10.1 (#183)
1 parent 7579360 commit 7126ff4

File tree

532 files changed

+98352
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

532 files changed

+98352
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# NVIDIA DPF Deployment
2+
3+
This pack installs the Nvidia DPF custom resources for DPF in eith Host-Trusted or Zero Trust mode.
4+
5+
## Prerequisites
6+
7+
This pack should be used in conjunction with the Nvidia DPF Operator v25.10.1 pack. If you're deploying DPF clusters in Host-Trusted mode, you also need to combine this with the Nvidia OVN Kubernetes v25.10.1 CNI.
8+
9+
## Parameters
10+
11+
### dpf-operator-config
12+
| **Parameter** | **Type** | **Default Value** | **Description** |
13+
|---|---|---|---|
14+
| bfb.url | string | `"https://content.mellanox.com/BlueField/BFBs/Ubuntu24.04/bf-bundle-3.2.1-34_25.11_ubuntu-24.04_64k_prod.bfb"` | |
15+
| dpuServiceConfigurations | list | Configs for `blueman`, `dts`, `ovn` and `hbn` | Service configurations for DPU apps |
16+
| dpuDeployments | list | Config for `ovn-hbn` | Deployment configurations of DPU apps |
17+
| dpuServiceTemplates | list | Helm templates for `blueman`, `dts`, `ovn` and `hbn` | Service templates for DPU apps |
18+
| dpuServiceInterfaces | list | Configs for ports `p0`, `p1` and `ovn` | Service interfaces for DPU apps |
19+
| dpuServiceCredentialRequests | list | Config `ovn-hbn` | Service credential requests for DPU apps |
20+
| dpuServiceIPAMs | list | IPAM configs for `asn`, `loopback` and `pool1` | Service IPAMs for DPU apps |
21+
22+
23+
## Upgrade
24+
25+
To upgrade from a previous version, change the pack version and transfer your custom settings.
26+
27+
## Usage
28+
29+
The deploy this pack for Host-Trusted mode clusters, first select the Host-Trusted preset and configure the parameters mentioned above. Make sure to replace `$DPU_P0` with the proper interface name in the `dpuDeployments:` section. Then deploy just the Control Plane of your cluster and make sure the `ovn-kubernetes-resource-injector.enabled` setting in the Nvidia OVN Kubernetes CNI pack is set to `false`. Then deploy the DPF Framework to the cluster (Spectro Cloud provides a reference profile for this that aligns to the [HBN-OVN guidance from Nvidia](https://github.com/NVIDIA/doca-platform/blob/v25.10.1/docs/public/user-guides/host-trusted/use-cases/hbn-ovnk/README.md)).
30+
31+
Once the DPF Framework is deployed, change the `ovn-kubernetes-resource-injector.enabled` setting to `true` and add worker nodes containing Bluefield-3 DPUs in Host-Trusted mode. It will take between 20 and 40 minutes for the DPF Framework to flash the DPUs, reboot the nodes and configure them appropriately. After that, the nodes should become Healthy in Spectro Cloud Palette and ready for workloads.
32+
33+
The deploy this pack in Zero-Trusted mode, select the Zero Trust - Passthrough preset.
34+
35+
## References
36+
37+
- [Nvidia DOCA Platform Guidance 25.10.1](https://github.com/NVIDIA/doca-platform/blob/v25.10.1/docs/public/user-guides/host-trusted/use-cases/hbn-ovnk/README.md)
Binary file not shown.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Patterns to ignore when building packages.
2+
# This supports shell glob matching, relative path matching, and
3+
# negation (prefixed with !). Only one pattern per line.
4+
.DS_Store
5+
# Common VCS dirs
6+
.git/
7+
.gitignore
8+
.bzr/
9+
.bzrignore
10+
.hg/
11+
.hgignore
12+
.svn/
13+
# Common backup files
14+
*.swp
15+
*.bak
16+
*.tmp
17+
*.orig
18+
*~
19+
# Various IDEs
20+
.project
21+
.idea/
22+
*.tmproj
23+
.vscode/
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: v2
2+
appVersion: 25.10.1
3+
description: DPF Deployment creates the custom resources for a DPF Trusted Mode deployment
4+
name: dpf-deployment
5+
type: application
6+
version: 25.10.1
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{{/*
2+
Enable automatic lookup of k8sEndpoint from the cluster-info ConfigMap
3+
When `auto`, it defaults to lookup for a `cluster-info` configmap on the `kube-public` namespace (kubeadm-based)
4+
To override the namespace and configMap when using `auto`:
5+
`.Values.k8sServiceLookupNamespace` and `.Values.k8sServiceLookupConfigMapName`
6+
*/}}
7+
{{- define "k8sEndpoint" }}
8+
{{- $configmapName := "cluster-info" }}
9+
{{- $configmapNamespace := "kube-public" }}
10+
{{- if and (eq . "auto") (lookup "v1" "ConfigMap" $configmapNamespace $configmapName) }}
11+
{{- $configmap := (lookup "v1" "ConfigMap" $configmapNamespace $configmapName) }}
12+
{{- $kubeconfig := get $configmap.data "kubeconfig" }}
13+
{{- $k8sServer := get ($kubeconfig | fromYaml) "clusters" | mustFirst | dig "cluster" "server" "" }}
14+
{{- $k8sServer }}
15+
{{- else }}
16+
{{- . }}
17+
{{- end }}
18+
{{- end }}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
2+
kind: BFB
3+
metadata:
4+
name: bf-bundle-v25.10.1
5+
namespace: dpf-operator-system
6+
spec: {{ .Values.bfb | toYaml | nindent 2 }}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{{- range $conf := .Values.dpuDeployments }}
2+
---
3+
apiVersion: svc.dpu.nvidia.com/v1alpha1
4+
kind: DPUDeployment
5+
metadata:
6+
name: {{ $conf.name | quote }}
7+
namespace: {{ $.Release.Namespace }}
8+
spec:
9+
{{- if $conf.dpus }}
10+
dpus: {{ $conf.dpus | toYaml | nindent 4 }}
11+
{{- end }}
12+
{{- if $conf.services }}
13+
services: {{ $conf.services | toYaml | nindent 4 }}
14+
{{- end }}
15+
{{- if $conf.serviceChains }}
16+
serviceChains: {{ $conf.serviceChains | toYaml | nindent 4 }}
17+
{{- end }}
18+
{{- if $conf.revisionHistoryLimit }}
19+
revisionHistoryLimit: {{ $conf.revisionHistoryLimit | toYaml | nindent 4 }}
20+
{{- end }}
21+
{{- end }}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
{{- range $conf := .Values.dpuFlavors }}
2+
---
3+
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
4+
kind: DPUFlavor
5+
metadata:
6+
name: {{ $conf.name | quote }}
7+
namespace: {{ $.Release.Namespace }}
8+
spec:
9+
{{- if $conf.bfcfgParameters }}
10+
bfcfgParameters: {{ $conf.bfcfgParameters | toYaml | nindent 4 }}
11+
{{- end }}
12+
{{- if $conf.configFiles }}
13+
configFiles: {{ $conf.configFiles | toYaml | nindent 4 }}
14+
{{- end }}
15+
{{- if $conf.containerdConfig }}
16+
containerdConfig: {{ $conf.containerdConfig | toYaml | nindent 4 }}
17+
{{- end }}
18+
{{- if $conf.dpuMode }}
19+
dpuMode: {{ $conf.dpuMode | toYaml | nindent 4 }}
20+
{{- end }}
21+
{{- if $conf.dpuResources }}
22+
dpuResources: {{ $conf.dpuResources | toYaml | nindent 4 }}
23+
{{- end }}
24+
{{- if $conf.grub }}
25+
grub: {{ $conf.grub | toYaml | nindent 4 }}
26+
{{- end }}
27+
{{- if $conf.hostNetworkInterfaceConfigs }}
28+
hostNetworkInterfaceConfigs: {{ $conf.hostNetworkInterfaceConfigs | toYaml | nindent 4 }}
29+
{{- end }}
30+
{{- if $conf.nvconfig }}
31+
nvconfig: {{ $conf.nvconfig | toYaml | nindent 4 }}
32+
{{- end }}
33+
{{- if $conf.ovs }}
34+
ovs: {{ $conf.ovs | toYaml | nindent 4 }}
35+
{{- end }}
36+
{{- if $conf.sysctl }}
37+
sysctl: {{ $conf.sysctl | toYaml | nindent 4 }}
38+
{{- end }}
39+
{{- if $conf.systemReservedResources }}
40+
systemReservedResources: {{ $conf.systemReservedResources | toYaml | nindent 4 }}
41+
{{- end }}
42+
{{- end }}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{{- range $conf := .Values.dpuServiceChains }}
2+
---
3+
apiVersion: svc.dpu.nvidia.com/v1alpha1
4+
kind: DPUServiceChain
5+
metadata:
6+
name: {{ $conf.name | quote }}
7+
namespace: {{ $.Release.Namespace }}
8+
spec:
9+
{{- if $conf.clusterSelector }}
10+
clusterSelector: {{ $conf.clusterSelector | toYaml | nindent 4 }}
11+
{{- end }}
12+
template:
13+
spec:
14+
template: {{ $conf.template | toYaml | nindent 8 }}
15+
{{- end }}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{{- range $conf := .Values.dpuServiceConfigurations }}
2+
---
3+
apiVersion: svc.dpu.nvidia.com/v1alpha1
4+
kind: DPUServiceConfiguration
5+
metadata:
6+
name: {{ $conf.name | quote }}
7+
namespace: {{ $.Release.Namespace }}
8+
spec:
9+
deploymentServiceName: {{ $conf.name | quote }}
10+
{{- if $conf.interfaces }}
11+
interfaces: {{ $conf.interfaces | toYaml | nindent 4 }}
12+
{{- end }}
13+
{{- if $conf.serviceConfiguration }}
14+
{{- if eq $conf.name "ovn" }}
15+
{{- $k8s := dig "helmChart" "values" "k8sAPIServer" "NotFound" $conf.serviceConfiguration }}
16+
{{- $k := dict "k8sAPIServer" (include "k8sEndpoint" $k8s) }}
17+
{{- $v := dict "values" $k }}
18+
{{- $h := dict "helmChart" $v }}
19+
serviceConfiguration: {{ merge $h $conf.serviceConfiguration | toYaml | nindent 4 }}
20+
{{- else }}
21+
serviceConfiguration: {{ $conf.serviceConfiguration | toYaml | nindent 4 }}
22+
{{- end }}
23+
{{- end }}
24+
{{- if $conf.upgradePolicy }}
25+
upgradePolicy: {{ $conf.upgradePolicy | toYaml | nindent 4 }}
26+
{{- end }}
27+
{{- end }}

0 commit comments

Comments
 (0)