Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
37 changes: 37 additions & 0 deletions packs/nvidia-dpf-deployment-25.7.0/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# NVIDIA DPF Deployment

This pack installs the Nvidia DPF custom resources for DPF in Host-Trusted mode.

## Prerequisites

This pack should be used in conjunction with the Nvidia DPF Operator v25.7.0 pack. If you're deploying DPF clusters in Host-Trusted mode, you also need to combine this with the Nvidia OVN Kubernetes v25.7.0 CNI.

## Parameters

### dpf-operator-config
| **Parameter** | **Type** | **Default Value** | **Description** |
|---|---|---|---|
| bfb.url | string | `"https://content.mellanox.com/BlueField/BFBs/Ubuntu22.04/bf-bundle-3.1.0-76_25.07_ubuntu-22.04_prod.bfb"` | |
| dpuServiceConfigurations | list | Configs for `blueman`, `dts`, `ovn` and `hbn` | Service configurations for DPU apps |
| dpuDeployments | list | Config for `ovn-hbn` | Deployment configurations of DPU apps |
| dpuServiceTemplates | list | Helm templates for `blueman`, `dts`, `ovn` and `hbn` | Service templates for DPU apps |
| dpuServiceInterfaces | list | Configs for ports `p0`, `p1` and `ovn` | Service interfaces for DPU apps |
| dpuServiceCredentialRequests | list | Config `ovn-hbn` | Service credential requests for DPU apps |
| dpuServiceIPAMs | list | IPAM configs for `asn`, `loopback` and `pool1` | Service IPAMs for DPU apps |


## Upgrade

This is the first version of the Nvidia DPF Deployment pack. There are no previous versions to upgrade from.


## Usage

The deploy this pack for Host-Trusted mode clusters, first configure the parameters mentioned above. 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.7.0/docs/public/user-guides/host-trusted/use-cases/hbn-ovnk/README.md)).

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.


## References

- [Nvidia DOCA Platform Guidance 25.7.0](https://github.com/NVIDIA/doca-platform/blob/v25.7.0/docs/public/user-guides/host-trusted/use-cases/hbn-ovnk/README.md)
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
apiVersion: v2
appVersion: 25.7.0
description: DPF Deployment creates the custom resources for a DPF Trusted Mode deployment
name: dpf-deployment
type: application
version: 25.7.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{{/*
Enable automatic lookup of k8sEndpoint from the cluster-info ConfigMap
When `auto`, it defaults to lookup for a `cluster-info` configmap on the `kube-public` namespace (kubeadm-based)
To override the namespace and configMap when using `auto`:
`.Values.k8sServiceLookupNamespace` and `.Values.k8sServiceLookupConfigMapName`
*/}}
{{- define "k8sEndpoint" }}
{{- $configmapName := "cluster-info" }}
{{- $configmapNamespace := "kube-public" }}
{{- if and (eq . "auto") (lookup "v1" "ConfigMap" $configmapNamespace $configmapName) }}
{{- $configmap := (lookup "v1" "ConfigMap" $configmapNamespace $configmapName) }}
{{- $kubeconfig := get $configmap.data "kubeconfig" }}
{{- $k8sServer := get ($kubeconfig | fromYaml) "clusters" | mustFirst | dig "cluster" "server" "" }}
{{- $k8sServer }}
{{- else }}
{{- . }}
{{- end }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
kind: BFB
metadata:
name: bf-bundle
namespace: dpf-operator-system
spec:
url: {{ .Values.bfb.url | quote }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{{- range $conf := .Values.dpuDeployments }}
---
apiVersion: svc.dpu.nvidia.com/v1alpha1
kind: DPUDeployment
metadata:
name: {{ $conf.name | quote }}
namespace: {{ $.Release.Namespace }}
spec:
dpus: {{ $conf.dpus | toYaml | nindent 4 }}
services: {{ $conf.services | toYaml | nindent 4 }}
serviceChains: {{ $conf.serviceChains | toYaml | nindent 4 }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{{- range $conf := .Values.dpuServiceConfigurations }}
---
apiVersion: svc.dpu.nvidia.com/v1alpha1
kind: DPUServiceConfiguration
metadata:
name: {{ $conf.name | quote }}
namespace: {{ $.Release.Namespace }}
spec:
deploymentServiceName: {{ $conf.name | quote }}
{{- if $conf.interfaces }}
interfaces: {{ $conf.interfaces | toYaml | nindent 4 }}
{{- end }}
{{- if $conf.serviceConfiguration }}
{{- if eq $conf.name "ovn" }}
{{- $k8s := dig "helmChart" "values" "k8sAPIServer" "NotFound" $conf.serviceConfiguration }}
{{- $k := dict "k8sAPIServer" (include "k8sEndpoint" $k8s) }}
{{- $v := dict "values" $k }}
{{- $h := dict "helmChart" $v }}
serviceConfiguration: {{ merge $h $conf.serviceConfiguration | toYaml | nindent 4 }}
{{- else }}
serviceConfiguration: {{ $conf.serviceConfiguration | toYaml | nindent 4 }}
{{- end }}
{{- end }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{{- range $conf := .Values.dpuServiceCredentialRequests }}
---
apiVersion: svc.dpu.nvidia.com/v1alpha1
kind: DPUServiceCredentialRequest
metadata:
name: {{ $conf.name | quote }}
namespace: {{ $.Release.Namespace }}
spec:
duration: {{ $conf.duration | quote }}
metadata: {{ $conf.metadata | toYaml | nindent 4 }}
secret: {{ $conf.secret | toYaml | nindent 4 }}
serviceAccount: {{ $conf.serviceAccount | toYaml | nindent 4 }}
type: {{ $conf.type | quote }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{{- range $conf := .Values.dpuServiceInterfaces }}
---
apiVersion: svc.dpu.nvidia.com/v1alpha1
kind: DPUServiceInterface
metadata:
name: {{ $conf.name | quote }}
namespace: {{ $.Release.Namespace }}
spec:
template:
spec:
template: {{ $conf.template | toYaml | nindent 8 }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{{- range $conf := .Values.dpuServiceIPAMs }}
---
apiVersion: svc.dpu.nvidia.com/v1alpha1
kind: DPUServiceIPAM
metadata:
name: {{ $conf.name | quote }}
namespace: {{ $.Release.Namespace }}
spec:
{{- if $conf.ipv4Network }}
ipv4Network: {{ $conf.ipv4Network | toYaml | nindent 4 }}
{{- end }}
{{- if $conf.ipv4Subnet }}
ipv4Subnet: {{ $conf.ipv4Subnet | toYaml | nindent 4 }}
{{- end }}
{{- end }}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{{- range $conf := .Values.dpuServiceTemplates }}
---
apiVersion: svc.dpu.nvidia.com/v1alpha1
kind: DPUServiceTemplate
metadata:
name: {{ $conf.name | quote }}
namespace: {{ $.Release.Namespace }}
spec:
deploymentServiceName: {{ $conf.name | quote }}
helmChart: {{ $conf.helmChart | toYaml | nindent 4 }}
{{- end }}
Loading
Loading