Included profiles¶
The current checkout includes the profiles below. They describe hardware and boot procedures; compatibility still depends on the vendor disk release and the host. Resource values are profile settings, not general recommendations for every release.
| Platform | Embedded profile | Memory (MiB) | Data NICs | Companion files |
|---|---|---|---|---|
| Arista vEOS | arista_veos |
4096 | 20 | Aboot-veos-serial-8.0.0.iso |
| Cisco CSR 1000v | cisco_csr1000v |
4096 | 9 | iosxe_config.txt |
| Cisco Nexus 9000v | cisco_n9kv |
10240 | 8 | OVMF.fd |
| Cisco XRv 9000 | cisco_xrv9k |
16384 | 16 | None listed |
| NVIDIA Cumulus VX | nvidia_cumulusvx |
4096 | 16 | None listed |
| Juniper vJunos-router | juniper_vjunos-router |
5120 | 96 | Configuration disk generated by the preparation hook |
All profiles in this checkout set managementPassthrough: true. Packaging still uses legacy QEMU user networking. Use a custom YAML path to adapt hardware or boot procedures for a different OS release.
Platform notes¶
- Arista vEOS: Aboot media and PCI placement. The existing directory name
ceosis historical; this is a VM-based vEOS profile. - Cisco CSR 1000v: Bootstrap ISO generated from
iosxe_config.txt. - Cisco Nexus 9000v: UEFI firmware and AHCI disk setup.
- Juniper vJunos-router: Nested virtualization, seeded first boot, hierarchical startup configuration, and a longer readiness allowance.
Cisco XRv 9000¶
The cisco_xrv9k profile handles the root-system user dialog, enables baseline management services, and creates the extra internal control and device NICs alongside the management NIC. Inspect its CPU configuration for your host: historical emulate fields are not wired to the current generator; use cpuEmulation or a tested CPU override where needed. Consult Containerlab's XRv 9000 kind for its interface names and runtime inputs.
NVIDIA Cumulus VX¶
The included profile uses two host CPU cores, virtio NICs, and 4096 MiB RAM. Packaging changes the first-login password to Clab123!, disables ZTP, waits for switchd, and saves configuration. Runtime sets the hostname, management addresses, and selected management services through NVUE.
The current profile uses both IPv4 and IPv6 static template values directly and does not branch for DHCP. For IPv4-only or DHCP labs, adapt the profile using conditional management templates. See the quick start and Containerlab's Cumulus VX kind.
Juniper helper tools¶
The vJunos-router configuration-disk hook invokes mkfs.vfat and mcopy. The current base agent Dockerfile does not install their packages, dosfstools and mtools. Build a custom builder image containing them before packaging with this profile:
FROM ghcr.io/carlmontanari/boxen:0.0.0
RUN apt-get update && \
apt-get install -y --no-install-recommends dosfstools mtools && \
rm -rf /var/lib/apt/lists/*
docker build -f vjunos-builder.Dockerfile -t boxen-vjunos-builder:dev .
BOXEN_BUILDER_IMAGE=boxen-vjunos-builder:dev boxen build \
--disk /path/to/vJunos-router-25.2R1.9.qcow2 \
--profile ./assets/profiles/juniper_vjunos-router.yaml --tag 25.2R1.9
Add another OS¶
Follow adding a platform. Profile names identify Boxen's packaging recipe; Containerlab kinds independently describe how a lab orchestrator handles that platform. Do not assume the two names are identical.