Release 0.75#
2026-04-27 · Full Changelog
Start, stop, and restart selected nodes#
The day has finally come when you can start, stop, and restart selected nodes in a running lab without nuking the whole lab. 🎉🎉🎉
The start, stop, and restart commands can now target a subset of nodes in a running lab. Pass --node (repeatable or comma-separated) to start or stop only the listed containers. The same limitations as restart apply: veth-based dataplane links, single-container nodes, and a few other cases remain unsupported for partial lifecycle.
This feature touched a lot of containerlab internal and there might be some fallout. Please report any issues you encounter in the issue tracker or our discord.
Thanks @FloSch62 @steiler @kaelemc #3055
Topology template composition#
Templated topologies (.clab.gotmpl) are easier to build and share.
- The
--varsflag can be used more than once; files are merged with later files overwriting keys from earlier ones. Automatic discovery of variable files is extended: alongsidetemplate.clab_vars.y[a]ml[|json], the patterntemplate.clab_vars.*.y[a]ml[|json]is also picked up when the vars file is auto-resolved. - Place additional
*.gotmplfiles in aclab_templatesdirectory next to the main template; they are loaded and invokable with Go's{{ template "name.gotmpl" . }}from the top-level file. - A companion change applies topology variable paths when a workflow resolves the lab without passing
-t(so--varsstill takes effect in those cases).
See Generated topologies.
Thanks @amtelekom #3169 #3171
Juniper cSRX#
The new juniper_csrx kind runs Juniper cSRX firewall containers in the lab, with a baked-in day-0 config (default root:clab123, SSH and NETCONF enabled), startup-config for your Junos config, optional license handling, and save writing the running config to juniper.conf.
Thanks @mtucker502 #3170
Export the rendered topology YAML#
deploy and generate accept --export-rendered <path> to write the fully expanded topology YAML (after template rendering and environment-variable substitution) to a file—before the rest of deployment. That gives you a reproducible, inspectable file for debugging templates or for checking into version control.
containerlab deploy -t lab.clab.gotmpl --vars lab.clab_vars.yml --export-rendered lab.rendered.clab.yml
Credentials in the topology file#
You can set credentials (username and password) at defaults, per kinds, groups, and per nodes, with a well-defined “most specific wins” rule. Ansible and Nornir inventory outputs use the resolved per-node values.
Thanks @antoinekh #3136
Point-to-point link IP addresses (VyOS and cEOS)#
The VyOS Networks VyOS and Arista cEOS kinds now support link ipv4 and ipv6 the same way other kinds do, so addresses from the links section are applied to dataplane interfaces on those nodes.
Thanks @evilhamsterman #3158
Classic SR OS CLI (vr-sros) automation#
For nokia_sros VM nodes, the default automation uses the MD-CLI nokia_sros scrapligo platform. If your image runs in classic or mixed CLI mode, set the CLAB_SROS_CONFIG_MODE environment variable to classic or mixed so containerlab uses the matching nokia_sros_classic platform for partial config apply, save, and related operations.
Thanks @antoinekh #3129
VxLAN tools: delete by exact name#
clab tools vxlan delete now accepts --name for deleting one VxLAN interface by exact name; it is mutually exclusive with the existing --prefix option.
Miscellaneous#
- Fixed the Arch (AUR) installation link in the install guide. Thanks @andywhitaker #3151
- Clarified Juniper vMX startup-config form in the docs. Thanks @endn #3168
- VxLAN link data:
sync.Onceinitialization, safer handling when a link namespace is missing, correctvxlantype in YAML, and a fix for a panic when the DNSSearchlist was an empty slice. #3147 #3131 - Runtimes: explicit errors when a container’s PID is
0beforeGetNSPath, closingExecNotWaitconnections, and a clearer path whenNetworkInspectfails. #3144 #3148 - Core: close netns and netlink handles in interface listing; fix a tool-container cleanup loop when
execfails; return errors for bad PEM in cert code paths; stricterPreDeploycertificate error propagation; safer env var splitting andCreateFileerror checks; and closing files to avoid leaks. #3161 #3159 #3130 #3138 #3139 #3140 #3132 - VyOS: save errors are reported with the real failure from the node. #3160
- Merged work for full SR-OS in automated tests. #3142
- The default
fdio_vppimage is updated so VPP-related configuration is provided under/configas expected by the image. Thanks @pimvanpelt #3152 - SR-SIM and related content point to the current official SR-OS YANG model browser URL. Thanks @schavezc #3154
- SR Linux topology
typemay useixr-x4as an alias forixr-x4-d(fixes a mismatch with documentation). Thanks @schavezc #3157