How to deploy DPUs in MAAS

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 clean before retrying — stale state
    from previous builds can cause non-obvious failures.

  • If you get KVM permission errors, add yourself to the kvm group:
    sudo usermod -aG kvm $USER && newgrp kvm

1 Like