Skip to content

Commit

Permalink
Merge pull request #873 from srl-labs/rn-0.26
Browse files Browse the repository at this point in the history
Rn 0.26
  • Loading branch information
hellt authored May 3, 2022
2 parents da46ebe + 64106a4 commit 8e517d7
Show file tree
Hide file tree
Showing 4 changed files with 99 additions and 4 deletions.
11 changes: 11 additions & 0 deletions docs/community.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ Everybody is welcome to join and chat with our community members about all thing
## In The Media
We are always happy to showcase containerlab and demonstrate its powers. Luckily, the network engineering community has lots of events worldwide, and we participated in some. Below you will find recordings of containerlab talks in different formats and on various venues listed in reverse chronological order[^1].

### Telco podcast
<small>:material-podcast: [Networking Topology As Code](https://anchor.fm/thetelcopodcast/episodes/Network-topology-as-code---interview-with-Roman-Dodin--PLM-in-Nokia-and-maintainer-of-Containerlabs-e1hfcdl) · :material-calendar: 2022-04-21</small>

A year in the making; containerlab made lots of waves in the community threading its way to engineers hearts through simple and lightweight abstractions tailored to networking labs problem space. In this podcast Maciej and Anton from The Telco podcast interviewed [Roman Dodin][rdodin-twitter] on containerlab' current state and many more.

<div class="iframe-audio-container">
<iframe src="https://anchor.fm/thetelcopodcast/embed/episodes/Network-topology-as-code---interview-with-Roman-Dodin--PLM-in-Nokia-and-maintainer-of-Containerlabs-e1hfcdl/a-a7lt09f" height="102px" width="400px" frameborder="0" scrolling="no"></iframe>
</div>

Participants: [:material-twitter:][rdodin-twitter][:material-linkedin:][rdodin-linkedin] Roman Dodin

### Packet Pushers Tech Bytes
<small>:material-podcast: [Containerlab Makes Container And VM Networking Labs Easy](https://packetpushers.net/podcast/tech-bytes-containerlab-makes-container-and-vm-networking-labs-easy-sponsored/) · :material-calendar: 2021-11-15</small>

Expand Down
79 changes: 79 additions & 0 deletions docs/rn/0.26.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
# Release 0.26
:material-calendar: 2022-05-03

## Nokia SR Linux banner
Little things with big impact - this is what SR Linux banner addition is. Starting with 0.26 release, containerlab will add a banner message to all SR Linux nodes with all necessary pointers such as:

* docs site
* release notes PDF
* YANG browser URL
* repository where we keep container images
* links to our cozy discord server and coordinates of ~~ISS~~ our sales representatives

```
❯ ssh admin@clab-srl-srl
Warning: Permanently added 'clab-srl-srl,2001:172:20:20::f' (ECDSA) to the list of known hosts.
................................................................
: Welcome to Nokia SR Linux! :
: Open Network OS for the NetOps era. :
: :
: This is a freely distributed official container image. :
: Use it - Share it :
: :
: Get started: https://learn.srlinux.dev :
: Container: https://go.srlinux.dev/container-image :
: Docs: https://doc.srlinux.dev/21-11 :
: Rel. notes: https://doc.srlinux.dev/rn21-11-2 :
: YANG: https://yang.srlinux.dev/v21.11.2 :
: Discord: https://go.srlinux.dev/discord :
: Contact: https://go.srlinux.dev/contact-sales :
................................................................
Using configuration file(s): []
Welcome to the srlinux CLI.
Type 'help' (and press <ENTER>) if you need any help using this.
--{ running }--[ ]--
```

Now everything you need to get started is just one click away.

## Topology export
Our partner in crime @bortok added a nice feature titled "topology data auto export" for his [graphite](https://github.com/netreplica/graphite) project in #850. What now happens is that on each lab deployment you will find a file called `topology-data.json` inside the lab directory that contains most important topology information that can be consumed by external tools.

Read more about what data is dumped [here](../manual/inventory.md#topology-data).

In addition to the auto-export functionality, users are now able to provide their own Go template file describing the desired output format for topology export. This is possible with the newly added [`export-template`](../cmd/deploy.md#export-template) flag.

And even that is not all :D To be able to easily refer to the files located in a lab directory[^1] a new [magic variable has been added](../manual/nodes.md#binds) - `__clabDir__`.

## Keysight IXIA-C
Keysight folks added support for their open source traffic generator appliance - ixia-c - to containerlab. Meet [`keysight_ixia-c-one`](../manual/kinds/keysight_ixia-c-one.md) kind!

This addition allows you to write and run traffic-based tests using open-source production-grade traffic generators all inside the container runtime setting. There is a lot to be said about this integration, and we plan to record a few videos with Keysight; for now you can hack it on your own.

## Env files
Our own @steiler is back and added support (#847) for env files that you can use with [`env-files`](../manual/nodes.md#env-files) node container.

## Labels as env vars
Now every label that you (or containerlab) defined for a node gets promoted to an env var. With this it is possible to let scripts running inside the container access to metadata information we attach via clab files #841.

## Sysctls
And if you wanted to configure sysctls for a node - it is now possible with [`sysctls`](../manual/nodes.md#sysctls) container #856.

## Bridge forwarding
When clabbers used linux bridges in their topologies it was common to see traffic to be dropped when entering a bridge. This was in line with the default iptables rules which prevent forwarding over the bridge by default.

Now containerlab will add the relevant [iptables rule](../manual/kinds/bridge.md#using-bridge-kind) to allow forwarding over the bridges #871.

## Miscellaneous
* next-ui-based graph works better with long image names in tooltips #834
* added json-rpc example for [nokia sr linux](../manual/kinds/srl.md)
* better runtime mtu detection #840
* Arista cEOS nodes now will wait for all veth interfaces to first be present inside the container, before starting the main startup scripts #854
* added PauseContainer runtime method #843
* containerlab will not attempt to deploy labs with sr linux nodes if SSE3 cpu instruction set is not found #846
* better cleanup procedure for veth between container and host namespaces #862
* new [community](../community.md) posts


[^1]: that is the one that is named as `clab-<lab-name>`.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ nav:
- Leaf-spine topology: lab-examples/templated01.md
- 5-stage Clos topology: lab-examples/templated02.md
- Release notes:
- "0.26": rn/0.26.md
- "0.25": rn/0.25.md
- "0.24": rn/0.24.md
- "0.23": rn/0.23.md
Expand Down
12 changes: 8 additions & 4 deletions nodes/srl/banner.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ const banner = `................................................................
: Container: https://go.srlinux.dev/container-image :
: Docs: https://doc.srlinux.dev/%s-%s :
: Rel. notes: https://doc.srlinux.dev/rn%s-%s-%s :
: YANG: https://yang.srlinux.dev/v%s.%s.%s :
: Discord: https://go.srlinux.dev/discord :
: Contact: https://go.srlinux.dev/contact-sales :
................................................................
Expand All @@ -37,13 +38,16 @@ func (s *srl) banner(ctx context.Context) (string, error) {

v := s.parseVersionString(string(stdout))

// massage minor version to have extra whitespace if it is a single digit
// this is needed to have banner table aligned nicely
// if minor is a single digit value, we need to add extra space to patch version
// to have banner table aligned nicely
if len(v.minor) == 1 {
v.minor = v.minor + " "
v.patch = v.patch + " "
}

b := fmt.Sprintf(banner, v.major, v.minor, v.major, v.minor, v.patch)
b := fmt.Sprintf(banner,
v.major, v.minor,
v.major, v.minor, v.patch,
v.major, v.minor, v.patch)

return b, nil
}

0 comments on commit 8e517d7

Please sign in to comment.