You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Operators can choose how DPUs receive the CA bundle used to authenticate NICo. This collects every supported deployment path and the safe migration steps in one place.
Primary callouts are:
- Documents the backward-compatible legacy download, site-specific embedded BFB, and operator-mounted bundle modes.
- Shows Helm, environment-variable, site configuration, and DPF examples.
- Explains staged rollout, root rotation, certificate-chain verification, and the remaining boot-chain trust boundary.
This supports #3571
Signed-off-by: Chet Nichols III <chetn@nvidia.com>
The following table describes the available sources:
435
+
436
+
| Source | Behavior |
437
+
|--------|----------|
438
+
| `legacy_download` | Default when the field is omitted. Preserves the historical download and response handling from `nico-pxe` during boot. It does not authenticate or locally validate the response. |
439
+
| `embedded` | Uses a site-specific CA bundle staged at `/opt/forge/embedded_forge_root.pem` in the DPU BFB from an explicit `BOOTSTRAP_CA_PATH`. Generic builds do not include this payload. A missing or invalid bundle stops provisioning. There is no download fallback. |
440
+
| `mounted` | Uses an operator-managed bundle at `/opt/forge/forge_root.pem`. The provisioning environment must populate the path because the bare-metal flow does not create the mount. A missing or invalid bundle stops provisioning. There is no download fallback. |
441
+
442
+
##### Operator Configuration Examples
443
+
444
+
The following examples are independent configurations. Do not combine them.
445
+
Omit the field to preserve the current behavior, or declare the legacy
446
+
behavior explicitly:
447
+
448
+
```toml
449
+
[dpu_config]
450
+
bootstrap_ca_source = "legacy_download"
451
+
```
452
+
453
+
Legacy-download sites can serve a stable operator-owned root bundle without
454
+
changing the DPU policy. Reference an existing ConfigMap in the `nico-pxe`
455
+
release namespace. In the NICo umbrella chart's values, use:
456
+
457
+
```yaml
458
+
nico-pxe:
459
+
bootstrapRootCa:
460
+
configMapName: forge-root-ca
461
+
key: ca.crt
462
+
```
463
+
464
+
Or reference an existing Secret when that matches the site's distribution
465
+
workflow:
466
+
467
+
```yaml
468
+
nico-pxe:
469
+
bootstrapRootCa:
470
+
secretName: forge-root-ca
471
+
key: ca.crt
472
+
```
473
+
474
+
When installing `helm/charts/nico-pxe` directly, omit the `nico-pxe` umbrella
475
+
key. The same top-level shape accepts `secretName` instead of
476
+
`configMapName`:
477
+
478
+
```yaml
479
+
bootstrapRootCa:
480
+
configMapName: forge-root-ca
481
+
key: ca.crt
482
+
```
483
+
484
+
For a non-Helm `nico-pxe` deployment, point the binary directly at the served
485
+
bundle. The file must already exist in the container, for example through a
486
+
read-only mount, and the launcher must export the variable. Omitting it retains
|`bootstrap_ca_source`|`BootstrapCaSource`|`legacy_download`| How non-DPF DPUs obtain the API trust anchor: `legacy_download`, `embedded`, or `mounted`. Omitting the field preserves the historical PXE download. The field is not sent to host Scout boots. Non-network modes do not fall back to downloading. |
443
444
|`dpu_nic_firmware_initial_update_enabled`|`bool`|`false`| Enable DPU NIC firmware updates on initial discovery. |
444
445
|`dpu_nic_firmware_reprovision_update_enabled`|`bool`|`true`| Enable DPU NIC firmware updates on reprovisioning. |
445
446
|`dpu_models`|`HashMap<String, Firmware>`|*(BF2+BF3 defaults)*| DPU model firmware definitions. |
|`num_of_vfs`|`u32`|`16`| Number of VFs configured per DPU PF during BlueField provisioning. Max `126`. |
449
450
|`restart_ovs_on_use_admin_network_change`|`bool`|`false`| Restart OVS on DPU-OS agents when host `use_admin_network` changes. Containerized agents skip the local service restart and still ACK the network config. |
450
451
452
+
To use `embedded`, build a site-specific BFB with an explicit
453
+
`BOOTSTRAP_CA_PATH`. The build provides no repository or default CA fallback
454
+
for the dedicated embedded payload. Existing legacy artifact inputs remain
455
+
unchanged. It stages the source at `/opt/forge/embedded_forge_root.pem`.
456
+
457
+
This path is separate from `/opt/forge/forge_root.pem`, which the provisioning
458
+
environment must populate for `mounted`. NICo does not create that mount. Both
459
+
modes fail closed when their own bundle is absent or invalid. Changing this
460
+
setting affects the next DPU network boot or reprovisioning. It does not affect
461
+
host Scout boots or rewrite installed DPUs in place. The selected CA validates
462
+
the NICo API server certificate. This validation remains necessary even when
463
+
client-certificate authentication is not used.
464
+
451
465
### `NetworkSecurityGroupConfig`
452
466
453
467
| Field | Type | Default | Description |
@@ -539,11 +553,56 @@ events, so consumers handle them identically.
|`dpu_agent_bootstrap_ca`|`DpfDpuAgentBootstrapCa`|`legacy_download`| Bootstrap trust for the containerized DPU agent. Supports `legacy_download` and `mounted`, as described in the following examples. |
557
+
|`services`|`Box<DpfMandatoryServicesConfig>`| built-in mandatory-service defaults | Helm chart, image, and pull-secret settings for the six mandatory DPF services. |
543
558
|`docker_image_pull_secret`|`Option<String>`| — | Override for the Kubernetes `imagePullSecrets` entry used to pull mandatory-service images (applied to every mandatory service except `dts` and `doca_hbn`). |
544
559
|`proxy`|`Option<DpfProxyDetails>`| — | Proxy configuration for the DPU. When set, containerd on the DPU routes outbound HTTPS traffic through it. |
545
560
|`deployments`|`DpfDeploymentsConfig`|*(default)*| Per-generation DPUDeployment configurations. BF3 is always present with defaults; BF4Generic is opt-in via `[dpf.deployments.bf4_generic]`. |
546
561
562
+
Omitting `[dpf.dpu_agent_bootstrap_ca]` preserves the historical download URL.
563
+
Use the following configuration to retain download mode while overriding the
564
+
complete endpoint URL:
565
+
566
+
```toml
567
+
[dpf.dpu_agent_bootstrap_ca]
568
+
source = "legacy_download"
569
+
# Optional full endpoint URL. Omit to use the agent default.
0 commit comments