Skip to main content

Kamaji support for the mini-lab

· 2 min read
Marcel Arndt
Young Professional Cloud Native Consultant @ x-cellent technologies GmbH
Matthias Hartmann
Junior Cloud Native Engineer @ x-cellent technologies GmbH

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.