# Release 0.51

:material-calendar: 2024-02-14 · :material-list-status: [Full Changelog](https://github.com/srl-labs/containerlab/releases)

## Stages

The biggest change in this release is rightfully claimed by the introduction of the [stages](../manual/nodes.md#stages) feature.

Stages are a way to define stages a node goes through during its lifecycle and the interdependencies between the different stages of different nodes in the lab. This feature gives you superpowers in terms of ordering how different nodes "wait" on each other using different stages and their dependencies.

With `stages` and the `wait-for` feature you can now make your VM nodes to boot in the staggered order to maintain the CPU utilization low.

```yaml
name: bootdelay
topology:
  nodes:
    sr1:
      kind: nokia_sros
      image: nokia_sros:latest
    sr2:
      kind: nokia_sros
      image: nokia_sros:latest
      stages:
        create:
          wait-for:
            - node: sr1
              stage: healthy
```

Or you can have nodes that need to start after the other nodes are fully operational by combining `stages`, `wait-for` and `healthchecks`.

Check out the [stages documentation](../manual/nodes.md#stages) for more details.

## Edgeshark integration

We have seriously upped our packet capturing game by discovering, integrating and improving the [Edgeshark](../manual/wireshark.md#edgeshark-integration) project. Now you can capture packets from your containerlab nodes using a sleek web interface!

<div class="iframe-container">
<iframe width="100%" src="https://www.youtube.com/embed/iY90a_Gn5W0" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

## iptables are back

When we moved to using `nftables` as the default firewall backend in [v0.50.0](0.50.md) release, we removed the support for `iptables` assuming that people ditched old kernels in 2024 for good. Buuut, you failed us.

So we brought back the support for `iptables` as a firewall backend while keeping `nftables` as well. Now we will detect if nftables is available and use it, otherwise we will fall back to `iptables`. #1850

## Miscellaneous

* Support for anonymous bind mounts #1853
* SR Linux config has been updated to support the coming 24.3 release #1845
* Ansible inventory file will not have an empty vars section if no vars are defined #1863
* Added a basic SR OS CI pipeline #1852

## Patches

### 0.51.1

* fixed erroneous error log message about the stages not found #1892

### 0.51.2

* improved nftables vs iptables backend detection for the rule installation #1900
* the log for k8s-kind cluster provisioning is now shown in the containerlab deployment log #1894

### 0.51.3

* fixed an interdependency issue between the nodes with a link between them and an associated exec #1907
