Kamaji support for the mini-lab
We are happy to announce that mini-lab/capi-lab supports Kamaji now. 🥳
After getting to know the Kamaji devs at FOSDEM, the idea has been
grown to explore Kamaji on top of metal-stack. Of course, a first approach had to be made within our mini-lab. In this
blog post we are going to give you some insights about the Kamaji in the mini-lab/capi-lab.
What is Kamaji?
Kamaji is a Control Plane Manager for Kubernetes, designed to simplify how you run and manage Kubernetes clusters. Instead of deploying control planes on dedicated machines, Kamaji runs them as pods within a single management cluster, cutting down on operational overhead and costs. It supports multi-tenancy, high availability, and integrates seamlessly with Cluster API, making it ideal for private clouds, public clouds, bare metal, and edge computing.
For further info, feel free to check out their website and GitHub.
Architecture
Since Kamaji supports Cluster-API, we noticed that our
cluster-api-provider-metal-stack and especially the
capi-lab, was the best starting point. Below you can find a simple architectural diagram to give you an overview how
Kamaji is used in the mini-lab/capi-lab:
Compared to the mini-lab, the Kamaji flavor in the capi-lab leaves every component as is but outsources the control
plane capabilities of metal-stack to the Kamaji Management Cluster. Here you are able to spawn tenants at will with
just one make command.
Of course, you can also manually create and join machines in the mini-lab and deploy Kamaji. We did not take that
route since it did not allow us to automate the setup all that well.
Getting started
Head over to the cluster-api-provider-metal-stack
and follow the setup instructions in DEVELOPMENT.md to try it out yourself.

