Skip to content

Commit 898ccf3

Browse files
authored
docs(quick-start): add site controller node DPU provisioning requirement (#2859)
<!-- Describe what this PR does --> If site controller nodes have DPUs, they must be flashed and configured before K8s cluster setup. NICo does not provision its own nodes' DPUs. Adds pointer to NVIDIA DOCA BlueField Firmware Bundle download archive. ## Related issues <!-- Refer to existing GitHub issues here --> ## Type of Change - [ ] **Add** - New feature or capability - [ ] **Change** - Changes in existing functionality - [ ] **Fix** - Bug fixes - [ ] **Remove** - Removed features or deprecated functionality - [x] **Internal** - Internal changes (refactoring, tests, docs, etc.) ## Breaking Changes - [ ] **This PR contains breaking changes** ## Testing - [ ] Unit tests added/updated - [ ] Integration tests added/updated - [ ] Manual testing performed - [x] No testing required (docs, internal refactor, etc.) ## Additional Notes The quick-start guide Step 2 ("Prepare the Kubernetes Cluster") had no mention of what to do if site controller nodes are equipped with DPUs. This is a silent failure mode: without pre-provisioned DPUs, the Kubernetes cluster and NICo networking topology may not come up correctly, but the guide gave operators no indication that DPU setup was required before cluster bootstrap. Adds a "Site controller node DPU requirements" subsection that clarifies: - NICo manages DPUs on **downstream bare-metal hosts** after ingestion — it does **not** provision the site controller nodes' own DPUs. - If site controller nodes have DPUs, firmware flashing, operating mode configuration, and ARM OS reachability must all be completed **before** Kubernetes cluster setup. - Points operators to the NVIDIA DOCA BlueField Firmware Bundle download archive for firmware flashing instructions and supported firmware versions.
1 parent 4af9658 commit 898ccf3

2 files changed

Lines changed: 52 additions & 0 deletions

File tree

docs/getting-started/quick-start.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,20 @@ The cluster must have:
3131
- DNS resolution working (`kubernetes.default.svc.cluster.local` resolves on every node).
3232
- Network connectivity to your container registry.
3333

34+
### Site controller node DPU requirements
35+
36+
If your site controller nodes are equipped with DPUs (BlueField NICs), the DPUs must be fully provisioned and configured **before** the Kubernetes cluster is set up. NICo does not provision the site controller nodes' own DPUs — it only manages DPUs on downstream bare-metal hosts after ingestion.
37+
38+
Specifically, you must complete the following before proceeding:
39+
40+
- Flash the DPU firmware to a supported version using the BlueField Firmware Bundle.
41+
- Configure the DPU operating mode (DPU mode or NIC mode) to match your site controller networking topology. See the [network prerequisites](prerequisites/network.md) for the supported topologies.
42+
- Ensure the DPU ARM OS is booted and reachable via its management interface.
43+
44+
Refer to the NVIDIA DOCA documentation and the BlueField Firmware Bundle download archive for firmware flashing instructions and supported firmware versions:
45+
46+
[https://developer.nvidia.com/doca-2-9-2-lts-ovs-doca-download-archive?deployment_platform=BlueField&deployment_package=BF-FW-Bundle](https://developer.nvidia.com/doca-2-9-2-lts-ovs-doca-download-archive?deployment_platform=BlueField&deployment_package=BF-FW-Bundle)
47+
3448
### Required tools (local machine)
3549

3650
The following tools must be installed on the machine that you will use to run `setup.sh`--not on the Kubernetes cluster itself.

docs/manuals/building_nico_containers.md

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,44 @@ Run `make help` from the repo root to list the individual image targets (`images
6666
sections below document the per-image build commands that these targets wrap, for when you
6767
need to build or debug a single image.
6868

69+
### Verifying the build
70+
71+
After `make images-all` completes, verify that all 14 deployable images were produced:
72+
73+
```sh
74+
docker images --filter "reference=${IMAGE_REGISTRY}/*:${IMAGE_TAG}" \
75+
--format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
76+
```
77+
78+
The count should be exactly 14:
79+
80+
| Image | Target |
81+
|---|---|
82+
| `nico` | `images-core` |
83+
| `nico-rest-api` | `images-rest` |
84+
| `nico-rest-workflow` | `images-rest` |
85+
| `nico-rest-site-manager` | `images-rest` |
86+
| `nico-rest-site-agent` | `images-rest` |
87+
| `nico-rest-db` | `images-rest` |
88+
| `nico-rest-cert-manager` | `images-rest` |
89+
| `nico-flow` | `images-rest` |
90+
| `nico-psm` | `images-rest` |
91+
| `nico-nsm` | `images-rest` |
92+
| `nico-mcp` | `images-rest` |
93+
| `machine-validation` | `images-machine-validation` |
94+
| `boot-artifacts-x86_64` | `images-boot-artifacts` |
95+
| `boot-artifacts-aarch64` | `images-bfb` |
96+
97+
```sh
98+
# Quick count — should print 14
99+
docker images --filter "reference=${IMAGE_REGISTRY}/*:${IMAGE_TAG}" \
100+
--format "{{.Repository}}" | wc -l
101+
```
102+
103+
If the count is less than 14, the missing images indicate which sub-target failed. The three boot/validation images (`machine-validation`, `boot-artifacts-x86_64`, `boot-artifacts-aarch64`) require the full mkosi + Rust toolchain — if only 11 images appear, use `make images` instead of `make images-all` to build the deployable stack without them.
104+
105+
Three intermediate images are also created locally but are not tagged under `IMAGE_REGISTRY`: `nico-buildcontainer-x86_64`, `nico-runtime-container-x86_64`, and `machine-validation-runner`. These are build-time dependencies only and do not need to be pushed.
106+
69107
## Building X86_64 Containers
70108

71109
**NOTE**: Execute these tasks in order. All commands are run from the top of the `infra-controller` directory.

0 commit comments

Comments
 (0)