-
Notifications
You must be signed in to change notification settings - Fork 1
Upgrading to 0.8
A scenario written for 0.7.x meets several changes at once. This page is what to read before upgrading one; the CHANGELOG describes each in full.
A file declared with path: /etc/frr/frr.conf is written to
r1/etc/frr/frr.conf, not r1/frr.conf. A node's files are laid out by the
path they take inside the container.
What to do: nothing in the scenario. Anything reading generated files by path — a script, another tool — has to follow. See File Output.
The default interface prefix is eth, where it used to be net.
What to do: update any template that names an interface literally. eth is
what a Linux container calls its interfaces and the only prefix Kathara accepts,
so this is the one name every platform agrees on.
Generated nodes carry network-mode: none. A lab has only the links its
topology describes.
What to do: if the lab relied on clab exec, the clab-* container names,
or reachability through the management network, put it back:
module_config:
containerlab:
management_network: trueand name the data interfaces something other than eth0, which containerlab
keeps for itself.
A multi-host scenario that drew a segment spanning machines now gets one bridge per machine, linked to each other, instead of one link leaving a machine per member on the far side.
What to do: nothing, unless the old shape was wanted:
global.aggregate_crossing_links: false.
| What | Why |
|---|---|
| An unknown or duplicate key in the config file | A key the config did not know was dropped without a word, which looks exactly like a setting that had no effect |
| Two file definitions writing the same file | Whichever was written last won, and the other's content was gone |
A config entry naming both template and sourcefile
|
Which came first was decided in the code and written down nowhere |
What to do: run dot2net build and fix what it names. Each message says
what is wrong and how to write it instead.
0.7.0 documented writing <device>.startup yourself, with name_suffix: .startup and output: root. The Kathara module owns that file now.
What to do: if the scenario declared it, drop the declaration and write a
startup template instead — the same one containerlab and TiNET already read:
nodeclass:
- name: router
config:
- name: startup
template:
- "ip link set lo up"The old declaration still works on its own; it collides once the Kathara module is loaded, and dot2net says which two definitions collided.
-
File Output -
path,provide, and how files reach a container - Module System - which names cross between a module and a scenario
- Module: Kathara