Skip to content

Commit db347d0

Browse files
Nvidia Doca Platform Framework packs (#148)
* Nvidia Doca Platform Framework packs * Adjust defaults * Set contributor source * Add documentation * Cleanup documentation * Add documentation * Refactor all packs, add CAPI support * Adjust NFD for CAPI scenario --------- Co-authored-by: Vishwanath S <[email protected]>
1 parent 684fbe6 commit db347d0

File tree

648 files changed

+111461
-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.

648 files changed

+111461
-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 Host-Trusted mode.
4+
5+
## Prerequisites
6+
7+
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.
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/Ubuntu22.04/bf-bundle-3.1.0-76_25.07_ubuntu-22.04_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+
This is the first version of the Nvidia DPF Deployment pack. There are no previous versions to upgrade from.
26+
27+
28+
## Usage
29+
30+
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)).
31+
32+
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.
33+
34+
35+
## References
36+
37+
- [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.
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.7.0
3+
description: DPF Deployment creates the custom resources for a DPF Trusted Mode deployment
4+
name: dpf-deployment
5+
type: application
6+
version: 25.7.0
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: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: provisioning.dpu.nvidia.com/v1alpha1
2+
kind: BFB
3+
metadata:
4+
name: bf-bundle
5+
namespace: dpf-operator-system
6+
spec:
7+
url: {{ .Values.bfb.url | quote }}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
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+
dpus: {{ $conf.dpus | toYaml | nindent 4 }}
10+
services: {{ $conf.services | toYaml | nindent 4 }}
11+
serviceChains: {{ $conf.serviceChains | toYaml | nindent 4 }}
12+
{{- end }}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
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+
{{- end }}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{{- range $conf := .Values.dpuServiceCredentialRequests }}
2+
---
3+
apiVersion: svc.dpu.nvidia.com/v1alpha1
4+
kind: DPUServiceCredentialRequest
5+
metadata:
6+
name: {{ $conf.name | quote }}
7+
namespace: {{ $.Release.Namespace }}
8+
spec:
9+
duration: {{ $conf.duration | quote }}
10+
metadata: {{ $conf.metadata | toYaml | nindent 4 }}
11+
secret: {{ $conf.secret | toYaml | nindent 4 }}
12+
serviceAccount: {{ $conf.serviceAccount | toYaml | nindent 4 }}
13+
type: {{ $conf.type | quote }}
14+
{{- end }}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{{- range $conf := .Values.dpuServiceInterfaces }}
2+
---
3+
apiVersion: svc.dpu.nvidia.com/v1alpha1
4+
kind: DPUServiceInterface
5+
metadata:
6+
name: {{ $conf.name | quote }}
7+
namespace: {{ $.Release.Namespace }}
8+
spec:
9+
template:
10+
spec:
11+
template: {{ $conf.template | toYaml | nindent 8 }}
12+
{{- end }}

0 commit comments

Comments
 (0)