Skip to content

Release 0.16#



This release adds a new way of writing containerlab hosts information into the /etc/hosts file.

Before upgrading to this release destroy all labs and ensure no stale entries are present in the /etc/hosts file, then do the upgrade.

Improved interfaces detection for vr-based nodes#

With the enhancements made by @carlmontanari in vrnetlab and @networkop in containerlab we improved the way vr-based nodes boot.

The improvements are related to the way VMs inside the containers detect the presence of the dataplane interfaces. Starting with hellt/vrnetlab v0.5.0 and containerlab v0.16.0 the nodes will know exactly how many interfaces a user defined in the lab file, and therefore will wait for those interfaces to appear before booting the qemu VM.

Non-sequential interfaces for vr-based nodes#

Thanks to @carlmontanari work in vrnetlab#55 it is now possible to define node's interfaces in a non-sequential way. This means, that a user now can define the links as follows:

      kind: vr-sros
      image: vr-sros:21.5.R2

      kind: vr-sros
      image: vr-sros:21.5.R2

    # sr1 port 3 is connected to sr2 port 5
    - endpoints: ["sr1:eth3", "sr2:eth5"]

New DNS entries format#

Containerlab creates nodes DNS entries when the lab is deployed. In this release we improved the visual layout of those entries so they can be introspected easier.

Ansible inventory improvements#

A user can now specify an extra ansible group the node should be part of in addition to the default grouping by kind.

Another change is that we now create an empty ansible inventory file when the deployment starts and write data to it once it is available. This approach makes it possible to create a clab file that mounts the ansible-inventory.yml file that will be created during the deploy command.

# mounting the ansible inventory file to a node of a lab
  - clab-demo/ansible-inventory.yml:/tmp/inv

New node kinds#

@carlmontanari added support for Cisco Nexus 9000v and Palo Alto PAN nodes.


  • IPv6 LLA is now enabled on veth interfaces #551
  • SR Linux bind mounts were refined and now only config.json and topology.yml files are mounted #564
  • SR Linux default type has changed from IXR-6 to IXR-D2 to support EVPN services by default

New contributors#

Welcome @carlmontanari, @sc68cal and thank you for your contributions to containerlab!



  • Fixed mysocketio integration #574


  • @karimra added another cool addition to containerlab: it is possible to customize the lab prefix or remove it entirely. Read more about it here.
  • We had to bring back directory based mounts for SR Linux nodes for the reasons explained in #579