Clabernetes is in state at the moment. We are trying (& breaking) things.
Love containerlab? Want containerlab, just distributed in a kubernetes cluster? Enter clabernetes or simply c9s.
Clabernetes deploys containerlab topologies into a kubernetes cluster. The goal of Clabernetes is to scale Containerlab beyond a single node while keeping the user experience you love.
If all goes to plan, Clabernetes is going to be one of the solutions to enable multi-node labs and allow its users to create large topologies powered by a k8s cluster.
What's in release?#
We are sharing Clabernetes in its early alpha stages to allow people to see what we're working on and potentially attract contributors and early adopters.
In the alpha release we focus on basic topology constructs working our way towards full feature parity with Containerlab. Here is what is supported from the topology definitions so far:
- Images used in the topology should be available in the k8s cluster either by pulling them from a public registry or by using a private registry.
- startup-config both inline and file-based formats.
- license provisioning.
- binds to mount host directories into the nodes1.
- point to point links between the nodes.
- automatic port exposure via Load Balancer, see quickstart.
- custom ports exposure to expose ports which are not exposed by default.
Clabernetes is an experiment to see if we can scale containerlab beyond a single node. Therefore, we wanted to keep containerlab core "as is" and not change the way users create topology files. We also wanted to offer the same user experience and more importantly the same set of supported Network OSes.
KNE first and foremost focuses on the use cases of the Openconfig project, hence making it do what we need and want would not be feasible. With that in mind, we decided to simply take the best parts of containerlab and make it work in a kubernetes cluster.
When using clabverter in a container, the bind paths must be accessible from the container fs. This might to manually mount the host dirs if they are not nested under the current working dir. ↩