Thanks for the great guide! I’ve been working through this with DOCA 3.3.0 on Noble and wanted to share a few additions.
DOCA 3.3.0 customization script
A new example script for DOCA 3.3.0 is now available in packer-maas:
make custom-cloudimg.tar.gz SERIES=noble ARCH=arm64 \
CUSTOMIZE=scripts/examples/bluefield-doca-3-3-0.sh
PR: https://github.com/canonical/packer-maas/pull/381
OOB network setup note
The OOB and BMC share one physical RJ-45 port but present as two different MACs. The switch needs to allow both. If it doesn’t, you can use DHCP Option 60 (Vendor Class Identifier)
to differentiate — DPU PXE boot sends PXE in Option 60, while the BMC sends its own identifier.
In our lab, the DHCP requests are relayed: 1G OOB port → top-of-rack 100G switch → MAAS. We set a static reservation for the BMC MAC in MAAS (needed for Redfish power management)
and left the OOB on the dynamic pool.
Tips from build experience
-
Packer-maas’s cleanup.sh runs apt-get autoremove --purge which strips BlueField kernel modules unless you explicitly apt-mark hold them. The DOCA 3.3.0 script includes holds for
both the meta packages and the specific kernel image/modules/headers. -
If you hit build errors, run
make cleanbefore retrying — stale state
from previous builds can cause non-obvious failures. -
If you get KVM permission errors, add yourself to the
kvmgroup:
sudo usermod -aG kvm $USER && newgrp kvm