From e397e6d98e4d838c18dedcf43da1a17d7eee0344 Mon Sep 17 00:00:00 2001 From: Muddyblack <70057554+Muddyblack@users.noreply.github.com> Date: Sat, 10 Oct 2026 01:19:00 +0200 Subject: [PATCH] refactor: update containerlab provider to use frr kind for frr devices and bump version to 0.80.0 --- docs/labs/clab.md | 4 ++-- docs/outputs/devices.md | 2 +- netsim/devices/frr.yml | 2 +- netsim/providers/clab.yml | 6 +++--- netsim/templates/provider/clab/clab.j2 | 2 +- tests/coverage/expected/check-config-files.yml | 4 ++-- tests/coverage/expected/device-module-defaults.yml | 2 +- tests/coverage/expected/device-node-defaults.yml | 2 +- tests/topology/expected/bridge-module-attr.yml | 4 ++-- tests/topology/expected/multiserver-explicit.yml | 2 +- tests/topology/expected/vlan-routed-multiprovider.yml | 2 +- tests/topology/expected/vlan-routed-vrf.yml | 6 +++--- 12 files changed, 19 insertions(+), 19 deletions(-) diff --git a/docs/labs/clab.md b/docs/labs/clab.md index b0f1239dd8..2cd0cfd8d8 100644 --- a/docs/labs/clab.md +++ b/docs/labs/clab.md @@ -21,7 +21,7 @@ You have to be a member of the `clab_admins` group to start a _containerlab_ lab ## Supported Versions -The latest _netlab_ release was tested with _containerlab_ version 0.75.0. That's also the version the **netlab install containerlab** command installs. +The latest _netlab_ release was tested with _containerlab_ version 0.80.0. That's also the version the **netlab install containerlab** command installs. If needed, use ```sudo containerlab version upgrade``` to upgrade to the latest _containerlab_ version. @@ -336,7 +336,7 @@ frr: image: frrouting/frr:v8.3.1 mtu: 1500 node: - kind: linux + kind: frr config_templates: daemons: /etc/frr/daemons ``` diff --git a/docs/outputs/devices.md b/docs/outputs/devices.md index 7303f34849..056833e91c 100644 --- a/docs/outputs/devices.md +++ b/docs/outputs/devices.md @@ -80,7 +80,7 @@ s2: device: frr hostname: clab-X-s2 id: 2 - kind: linux + kind: frr links: - ifindex: 1 ifname: eth1 diff --git a/netsim/devices/frr.yml b/netsim/devices/frr.yml index f546bd0bb8..8292764460 100644 --- a/netsim/devices/frr.yml +++ b/netsim/devices/frr.yml @@ -52,7 +52,7 @@ clab: kmods: initial: [ 'vrf?' ] node: - kind: linux + kind: frr config_templates: daemons: /etc/frr/daemons hosts: /etc/hosts:shared diff --git a/netsim/providers/clab.yml b/netsim/providers/clab.yml index 4ab7c7ece6..2ca1215182 100644 --- a/netsim/providers/clab.yml +++ b/netsim/providers/clab.yml @@ -8,7 +8,7 @@ mgmt_default_ipv6: fd00:df:1ab::/64 # Needed for old vrnetlab containers wit node_config_special: [ binds, config_templates, image, kind, startup-config, srl-agents, start_after ] reserved_names: [ host, macvlan, ipvlan ] template: clab.j2 -version: "0.75.0" # Triple-check the exact release tag containerlab is using when changing this :( +version: "0.80.0" # Triple-check the exact release tag containerlab is using when changing this :( start: containerlab deploy --reconfigure -t clab.yml stop: containerlab destroy --cleanup -t clab.yml act_probe: "docker ps" @@ -24,8 +24,8 @@ probe: err: >- You are not a member of the clab_admins group. See https://netlab.tools/labs/clab/ for details -- cmd: [ bash, '-c', "[[ `containerlab version|awk '/version/ {print $2}'` > '0.74.99' ]] && echo OK" ] - err: "Containerlab version is too old, please upgrade to 0.75.0 or later with 'sudo containerlab version upgrade'" +- cmd: [ bash, '-c', "[[ `containerlab version|awk '/version/ {print $2}'` > '0.79.99' ]] && echo OK" ] + err: "Containerlab version is too old, please upgrade to 0.80.0 or later with 'sudo containerlab version upgrade'" cleanup: [ clab.yml, clab_files ] bridge_type: bridge # Use 'ovs-bridge' to create Openvswitch bridges diff --git a/netsim/templates/provider/clab/clab.j2 b/netsim/templates/provider/clab/clab.j2 index a9f5fd3907..0b8b83b85b 100644 --- a/netsim/templates/provider/clab/clab.j2 +++ b/netsim/templates/provider/clab/clab.j2 @@ -24,7 +24,7 @@ topology: {% endif %} {% set kind = clab.kind | default(n.device) %} kind: {{ kind }} -{% if kind == 'linux' and 'restart-policy' not in clab %} +{% if kind in ['linux','frr'] and 'restart-policy' not in clab %} restart-policy: 'no' {% endif %} {% for cset in defaults.providers.clab.attributes.node._keys diff --git a/tests/coverage/expected/check-config-files.yml b/tests/coverage/expected/check-config-files.yml index 4f8b3b899c..9746b01272 100644 --- a/tests/coverage/expected/check-config-files.yml +++ b/tests/coverage/expected/check-config-files.yml @@ -54,7 +54,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr config: - hello device: frr @@ -115,7 +115,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-r2 id: 2 diff --git a/tests/coverage/expected/device-module-defaults.yml b/tests/coverage/expected/device-module-defaults.yml index 7c8cd87eda..930ee9c0ef 100644 --- a/tests/coverage/expected/device-module-defaults.yml +++ b/tests/coverage/expected/device-module-defaults.yml @@ -97,7 +97,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-l1 id: 1 diff --git a/tests/coverage/expected/device-node-defaults.yml b/tests/coverage/expected/device-node-defaults.yml index 80082cbd9d..69443e64f8 100644 --- a/tests/coverage/expected/device-node-defaults.yml +++ b/tests/coverage/expected/device-node-defaults.yml @@ -235,7 +235,7 @@ nodes: exec: - sleep 1 image: none - kind: linux + kind: frr device: frr hostname: clab-input-rtr id: 1 diff --git a/tests/topology/expected/bridge-module-attr.yml b/tests/topology/expected/bridge-module-attr.yml index e124aa67fe..8d4234425e 100644 --- a/tests/topology/expected/bridge-module-attr.yml +++ b/tests/topology/expected/bridge-module-attr.yml @@ -197,7 +197,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-r1 id: 1 @@ -289,7 +289,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-r2 id: 2 diff --git a/tests/topology/expected/multiserver-explicit.yml b/tests/topology/expected/multiserver-explicit.yml index 7fd6bb1e1a..366a54d699 100644 --- a/tests/topology/expected/multiserver-explicit.yml +++ b/tests/topology/expected/multiserver-explicit.yml @@ -223,7 +223,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-frr1 id: 4 diff --git a/tests/topology/expected/vlan-routed-multiprovider.yml b/tests/topology/expected/vlan-routed-multiprovider.yml index 9366666084..fd51cdccf9 100644 --- a/tests/topology/expected/vlan-routed-multiprovider.yml +++ b/tests/topology/expected/vlan-routed-multiprovider.yml @@ -160,7 +160,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-s id: 2 diff --git a/tests/topology/expected/vlan-routed-vrf.yml b/tests/topology/expected/vlan-routed-vrf.yml index 130cf59cd4..072dfad0a7 100644 --- a/tests/topology/expected/vlan-routed-vrf.yml +++ b/tests/topology/expected/vlan-routed-vrf.yml @@ -382,7 +382,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-r1 id: 1 @@ -646,7 +646,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-r2 id: 2 @@ -1164,7 +1164,7 @@ nodes: target: /etc/hosts exec: - sleep 1 - kind: linux + kind: frr device: frr hostname: clab-input-s2 id: 4