Skip to content

Release 0.73#

2026-02-08 ยท Full Changelog

F5 BIG-IP VE#

A warm welcome to the f5_bigip-ve kind! With this addition, Containerlab users can now spin up F5 BIG-IP Virtual Edition appliances as part of their network labs. Built on top of vrnetlab, the BIG-IP VE node features management passthrough, day-0 automation for initial configuration and password setup, and configurable resource sizing via environment variables.

Whether you're testing application delivery, security policies, or load balancing configurations, BIG-IP VE integrates seamlessly into your Containerlab topologies.

Thanks @leothelyon17 #2989

Copy saved running configs#

The save command got a new --copy flag that copies saved configuration files to a user-specified directory. Each save creates a timestamped copy alongside a symlink that always points to the latest version, making it trivial to track configuration changes over time and roll back when needed.

containerlab save -t lab.clab.yml --copy ./startup-configs

This is particularly handy for keeping a history of configuration snapshots outside of the lab directory, enabling easy diffing between saves and reliable restoration workflows. Node kinds that do not report a saved config path are silently skipped.

With save command you can save the running configuration on all the nodes in the lab. Prior to this change, the saved configuration resided only within the container and was not easily accessible. Now, you can copy the saved configuration to a specified directory on your host machine, making it much easier to access and manage.

Thanks @asadarafat #3003

Git variables in topology names#

For users running labs in CI/CD pipelines or multi-tenant environments, topology names can now include the magic variables __gitBranch__ and __gitHash__. These are replaced at deploy time with the current Git branch name (slashes swapped with hyphens) and the short commit hash, making it effortless to identify which branch and commit a running lab belongs to.

name: mylab-__gitBranch__-__gitHash__

If the topology file is not part of a Git repository, both variables gracefully resolve to none.

Thanks @vista- #2951

Netem events#

Building on the real-time events streaming introduced in 0.72, the events command now also tracks network emulation (netem) impairment changes. When you apply delay, jitter, packet loss, or rate limiting via containerlab tools netem set, these changes appear as interface update events in real time -- giving you full observability into link impairment changes alongside container and interface lifecycle events.

Why did we need it? To make Containerlab VS Code extension real time without polling!

Thanks @FloSch62 #2998

Arista cEOS certificate auto-loading#

Arista cEOS nodes now automatically generate and mount TLS certificates during node initialization. Certificates are created for the node's name and management IP, signed by a local self-signed CA, and mounted into the container. This makes it straightforward to use TLS-secured gRPC and RESTCONF services on cEOS nodes without any manual certificate management.

Thanks @ryan-thornton-bloom #3012

Node and lab name validation#

Lab and node names are now validated against a JSON schema at topology parse time. This catches invalid characters and naming issues early -- before the lab deployment even starts -- providing clearer error messages and preventing hard-to-debug failures down the line.

Thanks @juliusliu #3018

Kubeconfig for k8s_kind#

The k8s_kind node kind now supports a custom kubeconfig path via the extras.k8s_kind.deploy.kubeconfig topology parameter. This lets you control where Kind writes the cluster's kubeconfig file, which is especially useful when managing multiple clusters or integrating with existing Kubernetes tooling. The path can be absolute or relative to the topology file location.

Thanks @robertvolkmann #2977

SR-SIM enhancements#

The Nokia SR-SIM experience continues to improve. Configuration generation for SR-SIM nodes has been simplified, reducing the boilerplate users need to deal with when defining multi-component topologies. Additionally, Containerlab now validates that the correct image type is used for each kind -- an SR-SIM image will be rejected when used with the nokia_sros kind and vice-versa, catching a common source of confusion before it leads to cryptic errors.

Thanks @schavezc #3021 #3020

Ignite runtime removal#

The Ignite container runtime, originally added to support Cumulus VX, has been removed. The weaveworks/ignite package has been unsupported for a long time, and with Nvidia's decision to not support Cumulus VX container we decided to sunset Ignite runtime in Containerlab. It was hard to maintain/test and had a very small user base.

Cumulus VX users can still run containerized CVX, but with the docker runtime instead of ignite.

Thanks @FloSch62 #3031

Config command removal#

The clab config command has been removed. #2994

Miscellaneous#

  • Added container ID to /etc/hosts entries for easier container identification. Thanks @steiler #2991
  • Added quotes for cEOS environment variables on startup #3007
  • Fixed SR Linux overlay config copying for large configs. Thanks @vista- #2999
  • Ensured config directory exists for generic_vm before deploying. Thanks @robertvolkmann #2973
  • Lowercased the slot in management IP getter for SR-SIM. Thanks @kaelemc #3025
  • Added missing SFM types to the containerlab schema #3030
  • Added Clabernetes configuration documentation. Thanks @bayars #3034
  • Improved SD-WAN components documentation. Thanks @torbbang #3042
  • Enhanced documentation for node exec property. Thanks @robinchrist #3001
  • Added support for Rocky 10 and Ubuntu 25.10 in quick-setup script. Thanks @Oliver-Mustoe #3033 #3024
  • Support env var to set containerlab version in the quick install script #2993
  • Bumped Docker API to 28.5 #3029