Skip to content

Commit

Permalink
rn 0.52 (#1927)
Browse files Browse the repository at this point in the history
  • Loading branch information
hellt committed Mar 5, 2024
1 parent 60356fe commit 13d2192
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
3 changes: 3 additions & 0 deletions docs/manual/nodes.md
Original file line number Diff line number Diff line change
Expand Up @@ -723,6 +723,7 @@ The existing [`exec`](#exec) node configuration parameter is used to run command

These more advanced command execution scenarios are enabled in the per-stage command execution feature.

<!-- --8<-- [start:per-stage-1] -->
With per-stage command execution the user can define `exec` block under each stage; moreover, it is possible to specify when the commands should be run `on-enter` or `on-exit` of the stage.

```yaml
Expand All @@ -739,6 +740,8 @@ In the example above, the `ls /sys/class/net/` command will be executed when `no

Per-stage command execution gives you additional flexibility in terms of when the commands are executed, and what commands are executed at each stage.

<!-- --8<-- [end:per-stage-1] -->

### certificate

To automatically generate a TLS certificate for a node and sign it with the Certificate Authority created by containerlab, use `certificate.issue: true` parameter.
Expand Down
51 changes: 51 additions & 0 deletions docs/rn/0.52.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Release 0.52

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

## Links and Stages

In #1914 @steiler made a big leap forward by unblocking links creation between the nodes. Previously a link could only be created between the nodes if both node-backing containers were running.

This interdependency between the links and nodes was a big blocker for the [stages](../manual/nodes.md#stages) feature, since you couldn't, say, make one node to wait on another if they had a link between them. Effectively this reduced the usefullness of the stages particularly for VM-based nodes.

Now, the links creation is handled on a per-node basis, which means that a node creates its side of the link as soon as it is ready, regardless of the state of the other node. The other node will pick its part of the link and attach it whenever it is ready.

This change makes it possible for `nodeA` to depend on `nodeB` using stages, even if they have a link between them. Here is how it works:

```mermaid
sequenceDiagram
autonumber
participant A as Node A
participant H as Host NS
participant B as Node B
Note over A: Reaches healthy stage
activate A
loop Healthcheck
B->>B: waiting to reach the healthy stage
end
A->>H: Creates a veth pair with remote end<br/> in the host namespace
Note over B: reaches healthy stage
activate B
B->>H: takes the remote end from the host<br/>namespace and attaches it to the container
A->>B: The veth link has been created
deactivate A
deactivate B
```

With links asynchronous creation, you can now define the stages for your nodes and make them wait on each other using the `wait-for` feature!

## Per-stage exec

With [Stages](../manual/nodes.md#stages) introduction in the previous release, we opened new possibilities for the nodes lifecycle management. Now, @steiler expanded it even further by adding the [per-stage exec](../manual/nodes.md#per-stage-command-execution) option to the stages.

--8<-- "docs/manual/nodes.md:per-stage-1"

## k8s-kind extra options

In #1912 @YutaroHayakawa added `kind` options to containerlab definition file to add extra extensibility to the way you can deploy kind clusters.

## Miscellaneous

* long-named links will use interface's AltName instead of Aliases #1908
* fixed doubled log messages for SR OS nodes #1919
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ nav:
- Leaf-spine topology: lab-examples/templated01.md
- 5-stage Clos topology: lab-examples/templated02.md
- Release notes:
- "0.52": rn/0.52.md
- "0.51": rn/0.51.md
- "0.50": rn/0.50.md
- "0.49": rn/0.49.md
Expand Down

0 comments on commit 13d2192

Please sign in to comment.