# Release 0.15
:material-calendar: 2021-07-16

!!!warning
    This release adds a breaking change in the clab file schema. Starting from this release version, a path to a startup config file needs to be provided with `startup-config` key. Previously it was done with `config` key.  
    
    Use `sed -i s/config:/startup-config:/g <topo-file>` script to auto-substitute the values in the `<topo-file>` file.

## Ignite runtime support and Cumulus VX
[@networkop](https://github.com/networkop) embarked on a journey of adding a [Cumulus VX](../manual/kinds/cvx.md) to containerlab, and he chose the doing-this-the-hard-way by running Cumulus VX as a container[^1]. To make that happen, he added a new `ignite` runtime that allows us to launch containers with custom kernels.

With that work done, containerlab is now supporting a new kind - [`cvx`](../manual/kinds/cvx.md) - that defines the Cumulus VX NOS and that can run in [different modes](../manual/kinds/cvx.md#mode-of-operation)[^2].

## Containerd runtime support
[@steiler](https://github.com/steiler) added experimental support for `containerd` runtime. As the name implies, this makes it possible to run containerlab having only containerd installed and the necessary CNI plugins.

Please bear in mind that not all containerlab features are available for containerd runtime, but the core feature set is there.

To start containers with containerd runtime, the `--runtime | -r` global flag has been introduced.

## The BIG refactoring
With @karimra superpowers, containerlab has undergone a major refactoring of its code base. Now we have a strong and flexible foundation to build new features on top.

This was the biggest architectural change since the beginning, so some rough edges might eventually show up, but we will iron them out.

## Community
We strive to support the growing containerlab community to the best of our abilities. While github discussions is a nice place to ask formulated questions sometimes it is really nice to have a chat with the community members.

With that in mind we launched the containerlab's own [discord server](https://discord.gg/vAyddtaEV9) that all are welcome to join!

## Miscellaneous
* kind base configuration templates are now embedded in the code. This means that you can download containerlab binary from Releases and launch the labs, without doing the installation from packages.  
    The reason you might want to do this is if you want to install containerlab on a system which doesn't have rpm/deb based package manager.  
    Note, that the package-based installation is still the recommended way.
* the `exec` command now has a [`--format`](../cmd/exec.md#format) flag that is capable of nicely handling the JSON outputs.
* deployment of SR Linux nodes will now proceed even if license file is not present[^3]
* a new [`--keep-mgmt-net`](../cmd/destroy.md#keep-mgmt-net) flag has been added to `destroy` command to prevent the management network deletion attempt
* the MTU on the veth links created between the containers has been lowered to 9500 from its original 65000 value

## Patches

### 0.15.1
* Fixed directories creation for `ignite` runtimes
* Fixed release notes links in `containerlab version` command

### 0.15.2
* Fixed startup-config provisioning for ceos nodes [#526](https://github.com/srl-labs/containerlab/issues/526)

### 0.15.3
* Allow ceos startup config to receive ipv4/6 addresses  [#528](https://github.com/srl-labs/containerlab/issues/528)
* Added JSON-RPC server to SR Linux default configuration

### 0.15.4
* Fixed disabling tx checksum offload for linux nodes [#543](https://github.com/srl-labs/containerlab/issues/543)
* Fixed `tools disable-tx-offload` command [#543](https://github.com/srl-labs/containerlab/issues/543)

[^1]: as opposed to a VM-way by running Cumulus with [vrnetlab](../manual/vrnetlab.md)
[^2]: both with `ignite` runtime or `docker` runtime
[^3]: starting with SR Linux 21.3, the license file is optional