From d1383ff1a64f6028fc130797aa860a15f02fe583 Mon Sep 17 00:00:00 2001 From: mac641 Date: Thu, 12 Mar 2026 12:15:38 +0100 Subject: [PATCH 1/8] feat(blog): add kamaji introduction --- blog/2026/04-kamaji/index.md | 25 +++++++ .../2026/04-kamaji/overview-kamaji.drawio.svg | 67 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 blog/2026/04-kamaji/index.md create mode 100644 blog/2026/04-kamaji/overview-kamaji.drawio.svg diff --git a/blog/2026/04-kamaji/index.md b/blog/2026/04-kamaji/index.md new file mode 100644 index 0000000..878fcc7 --- /dev/null +++ b/blog/2026/04-kamaji/index.md @@ -0,0 +1,25 @@ +--- +title: Kamaji's multi-tenant control-plane on top of metal-stack +shortDescription: +watermark: 'Blog' +date: +description: A showcase of kamaji on top of metal-stack using the mini-lab +authors: [mac641, ma-hartma] +type: 'blog' +tags: + - architecture + - kamaji + - mini-lab +--- + +Managing multiple Kubernetes clusters shouldn’t mean juggling dedicated machines for every control plane. Kamaji changes +the game by running control planes as pods within a single Management Cluster, slashing operational overhead while +ensuring isolation and scalability. Built on upstream Kubernetes and integrated with kubeadm and Cluster API, Kamaji +delivers a seamless, cost-effective way to deploy and manage clusters whether in private clouds, public clouds, or edge +environments. Its infrastructure-agnostic design lets you connect worker nodes from anywhere, making hybrid and +multi-cloud deployments effortless. In this blog post we're going to show you how Kamaji can be utilized with +metal-stack in the mini-lab. + +## Architecture + +![](./overview-kamaji.drawio.svg) diff --git a/blog/2026/04-kamaji/overview-kamaji.drawio.svg b/blog/2026/04-kamaji/overview-kamaji.drawio.svg new file mode 100644 index 0000000..1e402ec --- /dev/null +++ b/blog/2026/04-kamaji/overview-kamaji.drawio.svg @@ -0,0 +1,67 @@ +
linux-desktop
+ linux-desktop +
containerlab
+ containerlab +
kind-cluster
+ kind-cluster +
metal-stack
+ metal-stack +
partition
+ partition +
machine02/
firewall
+ machine02/... +
tenantnetwork
+ tenantnetwork +
leaf02
+ leaf02 +
metal-core
+ metal-core +
masterdata-api
+ masterdata-api +
+ auditing +
metal-db
+ metal-db +
ipam-db
+ ipam-db +
ipam
+ ipam +
nsqd
+ nsqd +
metal-api
+ metal-api +
masterdata-db
+ masterdata-... +
capi-lab
+ capi-lab +
docker network 172.17.0.1/16
+ docker network 172.17.0.1/16 +
Ingress-Controller (NGINX)
+ Ingress-Controller (... +
machine01
+ machine01 +
exit
+ exit +
leaf01
+ leaf01 +
metal-core
+ metal-core +
veth link
+ veth link +
Kamaji Management Cluster
+ Kamaji Management Cluster +
tenant control plane A
+ tenant control plane A +
+ Multi-Tenant + + Datastore +
tenant control plane B
+ tenant control plane B +
CAPMS (ClusterAPI Provider)
+ CAPMS (ClusterAPI Provider) +
+ + Text is not SVG - cannot display + +
\ No newline at end of file From b15ddb9d6c5f5012c3b5e6b71ca6bd2dabd01775 Mon Sep 17 00:00:00 2001 From: mac641 Date: Thu, 12 Mar 2026 14:34:11 +0100 Subject: [PATCH 2/8] docs(blog/kamaji): rework introduction and add basic architecture text Generated-By: [Mistral 3] Kamaji description has been generated as marked by comments --- blog/2026/04-kamaji/index.md | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/blog/2026/04-kamaji/index.md b/blog/2026/04-kamaji/index.md index 878fcc7..fdb7c8f 100644 --- a/blog/2026/04-kamaji/index.md +++ b/blog/2026/04-kamaji/index.md @@ -2,7 +2,7 @@ title: Kamaji's multi-tenant control-plane on top of metal-stack shortDescription: watermark: 'Blog' -date: +date: description: A showcase of kamaji on top of metal-stack using the mini-lab authors: [mac641, ma-hartma] type: 'blog' @@ -12,14 +12,30 @@ tags: - mini-lab --- -Managing multiple Kubernetes clusters shouldn’t mean juggling dedicated machines for every control plane. Kamaji changes -the game by running control planes as pods within a single Management Cluster, slashing operational overhead while -ensuring isolation and scalability. Built on upstream Kubernetes and integrated with kubeadm and Cluster API, Kamaji -delivers a seamless, cost-effective way to deploy and manage clusters whether in private clouds, public clouds, or edge -environments. Its infrastructure-agnostic design lets you connect worker nodes from anywhere, making hybrid and -multi-cloud deployments effortless. In this blog post we're going to show you how Kamaji can be utilized with -metal-stack in the mini-lab. +After getting to know the Kamaji devs at [FOSDEM](https://metal-stack.io/blog/2026/02-fosdem-recap), the idea grew to +explore Kamaji on top of metal-stack. Of course, a first approach had to be made within our mini-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. With Kamaji, you +get full control over your Kubernetes infrastructure while keeping operations streamlined and scalable. It’s built on +upstream Kubernetes, ensuring compatibility and reliability for production workloads. + + ## Architecture +Since Kamaji supports Cluster-API, we noticed that our +[`cluster-api-provider-metal-stack`](https://github.com/metal-stack/cluster-api-provider-metal-stack) and especially the +`capi-lab`, was the best starting point. So we got to work and designed a simple architectural diagram: + ![](./overview-kamaji.drawio.svg) + +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. From 270645025175623088e1ad5a179f2ff01ccccc62 Mon Sep 17 00:00:00 2001 From: mac641 Date: Fri, 13 Mar 2026 08:39:56 +0100 Subject: [PATCH 3/8] fix(blog/kamaji): add random release date to satisfy pipeline --- blog/2026/04-kamaji/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/2026/04-kamaji/index.md b/blog/2026/04-kamaji/index.md index fdb7c8f..87d0f46 100644 --- a/blog/2026/04-kamaji/index.md +++ b/blog/2026/04-kamaji/index.md @@ -2,7 +2,7 @@ title: Kamaji's multi-tenant control-plane on top of metal-stack shortDescription: watermark: 'Blog' -date: +date: 2026-03-16T10:00:00+02:00 description: A showcase of kamaji on top of metal-stack using the mini-lab authors: [mac641, ma-hartma] type: 'blog' From 8edff693ce135ea68ccf7e3f7e42ed9902256b7d Mon Sep 17 00:00:00 2001 From: mac641 Date: Fri, 13 Mar 2026 08:51:28 +0100 Subject: [PATCH 4/8] docs(blog/kamaji): add mac641 and ma-hartma as blog authors --- blog/authors.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/blog/authors.yml b/blog/authors.yml index 0a79936..5de3f55 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -68,4 +68,22 @@ simcod: image_url: https://github.com/simcod.png page: true socials: - github: simcod \ No newline at end of file + github: simcod + +mac641: + name: Marcel Arndt + title: Young Professional Cloud Native Consultant @ x-cellent technologies GmbH + url: https://github.com/mac641 + image_url: https://github.com/mac641.png + page: true + socials: + github: mac641 + +ma-hartma: + name: Matthias Hartmann + title: Junior Cloud Native Engineer @ x-cellent technologies GmbH + url: https://github.com/ma-hartma + image_url: https://github.com/ma-hartma.png + page: true + socials: + github: ma-hartma From 288879c912d6b12c653054b4700dd7199f2b7f81 Mon Sep 17 00:00:00 2001 From: mac641 Date: Fri, 13 Mar 2026 10:33:03 +0100 Subject: [PATCH 5/8] docs(blog/kamaji): rework architecture and add Getting started section --- blog/2026/04-kamaji/index.md | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/blog/2026/04-kamaji/index.md b/blog/2026/04-kamaji/index.md index 87d0f46..a76b986 100644 --- a/blog/2026/04-kamaji/index.md +++ b/blog/2026/04-kamaji/index.md @@ -30,12 +30,21 @@ upstream Kubernetes, ensuring compatibility and reliability for production workl ## Architecture -Since Kamaji supports Cluster-API, we noticed that our +Since _Kamaji_ supports Cluster-API, we noticed that our [`cluster-api-provider-metal-stack`](https://github.com/metal-stack/cluster-api-provider-metal-stack) and especially the -`capi-lab`, was the best starting point. So we got to work and designed a simple architectural diagram: +`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`: ![](./overview-kamaji.drawio.svg) -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. +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`](https://github.com/metal-stack/cluster-api-provider-metal-stack) +and follow the setup instructions defined in `DEVELOPMENT.md` to try it out for yourselves. From d241cc4bbbe9aa739aa89e24d0373aedcf488add Mon Sep 17 00:00:00 2001 From: mac641 Date: Fri, 13 Mar 2026 10:33:47 +0100 Subject: [PATCH 6/8] refactor(blog/kamaji): adjust wording of introduction, add some links, emojis and proper formatting --- blog/2026/04-kamaji/index.md | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/blog/2026/04-kamaji/index.md b/blog/2026/04-kamaji/index.md index a76b986..39aa0d6 100644 --- a/blog/2026/04-kamaji/index.md +++ b/blog/2026/04-kamaji/index.md @@ -12,22 +12,26 @@ tags: - mini-lab --- -After getting to know the Kamaji devs at [FOSDEM](https://metal-stack.io/blog/2026/02-fosdem-recap), the idea grew to -explore Kamaji on top of metal-stack. Of course, a first approach had to be made within our mini-lab. +We are happy to announce that `mini-lab`/`capi-lab` supports _Kamaji_ now. 🥳 -## What is Kamaji? +After getting to know the _Kamaji_ devs at [FOSDEM](https://metal-stack.io/blog/2026/02-fosdem-recap), 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. With Kamaji, you -get full control over your Kubernetes infrastructure while keeping operations streamlined and scalable. It’s built on -upstream Kubernetes, ensuring compatibility and reliability for production workloads. +_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](https://kamaji.clastix.io) and +[GitHub](https://github.com/clastix/kamaji). + ## Architecture Since _Kamaji_ supports Cluster-API, we noticed that our From 51f6099ca67e5eef74ff1fdbf2e942586082af98 Mon Sep 17 00:00:00 2001 From: mac641 Date: Fri, 13 Mar 2026 10:39:30 +0100 Subject: [PATCH 7/8] refactor(blog/kamaji): add more appropriate title --- blog/2026/04-kamaji/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/2026/04-kamaji/index.md b/blog/2026/04-kamaji/index.md index 39aa0d6..85f3116 100644 --- a/blog/2026/04-kamaji/index.md +++ b/blog/2026/04-kamaji/index.md @@ -1,5 +1,5 @@ --- -title: Kamaji's multi-tenant control-plane on top of metal-stack +title: Kamaji support for the mini-lab shortDescription: watermark: 'Blog' date: 2026-03-16T10:00:00+02:00 From cad8fef47b732b58424935369794876e5128f3aa Mon Sep 17 00:00:00 2001 From: mac641 Date: Fri, 13 Mar 2026 10:59:54 +0100 Subject: [PATCH 8/8] fix(blog/kamaji): typos and wording --- blog/2026/04-kamaji/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/2026/04-kamaji/index.md b/blog/2026/04-kamaji/index.md index 85f3116..6914eb8 100644 --- a/blog/2026/04-kamaji/index.md +++ b/blog/2026/04-kamaji/index.md @@ -51,4 +51,4 @@ 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`](https://github.com/metal-stack/cluster-api-provider-metal-stack) -and follow the setup instructions defined in `DEVELOPMENT.md` to try it out for yourselves. +and follow the setup instructions in `DEVELOPMENT.md` to try it out yourself.