From e88d4838c3f925d44716031794e388da60823fd9 Mon Sep 17 00:00:00 2001 From: Andreas Fritzler Date: Tue, 1 Jul 2025 11:24:18 +0200 Subject: [PATCH] Add BM gardener documentation --- docs/.vitepress/config.mts | 1 - docs/baremetal/kubernetes/capi.md | 6 +++--- docs/baremetal/kubernetes/gardener.md | 27 +++++++++++++++++++++++++++ 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index 6341c10..04d17bd 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -125,7 +125,6 @@ export default withMermaid({ { text: 'Overview', link: '/baremetal/architecture' }, { text: 'Discovery', link: '/baremetal/architecture/discovery' }, { text: 'Provisioning', link: '/baremetal/architecture/provisioning' }, - { text: 'Maintenance', link: '/baremetal/architecture/maintenance' }, ], }, { diff --git a/docs/baremetal/kubernetes/capi.md b/docs/baremetal/kubernetes/capi.md index 2156561..9e7b20c 100644 --- a/docs/baremetal/kubernetes/capi.md +++ b/docs/baremetal/kubernetes/capi.md @@ -1,8 +1,8 @@ # Cluster API (CAPI) for IronCore Bare Metal -The Cluster API (CAPI) for IronCore bare metal is a project that provides a declarative way to manage bare metal -Kubernetes clusters using the Cluster API framework. It maps the CAPI concepts to the IronCore's `metal-operator` -API types. +The [Cluster API (CAPI) for IronCore bare metal](https://github.com/ironcore-dev/cluster-api-provider-ironcore-metal) +is a project that provides a declarative way to manage bare metal Kubernetes clusters using the Cluster API framework. +It maps the CAPI concepts to the IronCore's `metal-operator` API types. The diagram below illustrates the architecture of the Cluster API for IronCore bare metal: diff --git a/docs/baremetal/kubernetes/gardener.md b/docs/baremetal/kubernetes/gardener.md index 5501734..171e098 100644 --- a/docs/baremetal/kubernetes/gardener.md +++ b/docs/baremetal/kubernetes/gardener.md @@ -1 +1,28 @@ # Gardener Integration with IronCore Bare Metal + +Apart from the [Cluster API Provider for Bare Metal](/baremetal/kubernetes/capi), IronCore is also integrated with +[Gardener](https://gardener.cloud), a Kubernetes-native project for managing Kubernetes clusters at scale. + +There are two main components in the Gardener integration with IronCore: +- **Machine Controller Manager (MCM)**: This component is responsible for managing the lifecycle of machines in a + Kubernetes cluster. It uses the `metal-operator` API types to provision and manage bare metal servers. +- **Gardener Extension Provider**: This component provides the necessary integration points for Gardener to manage bare + metal clusters. + +## Machine Controller Manager (MCM) + +The `[machine-controller-manager-provider-ironcore](https://github.com/ironcore-dev/machine-controller-manager-provider-ironcore-metal)` +is responsible for managing the lifecycle of `Nodes` in a Kubernetes cluster. Here the MCM in essence is translating +Gardener `Machine` resource to `ServerClaims` and wrapping the `user-data` coming from the Gardner OS extensions into +an Ignition `Secret`. + +## Gardener Extension Provider + +The [`gardener-extension-provider-ironcore-metal`](https://github.com/ironcore-dev/gardener-extension-provider-ironcore-metal) +is responsible for providing the necessary integration points for Gardener to manage bare metal clusters. + +Those integration points include: +- Configure and the [Cloud Controller Manager](/baremetal/kubernetes/cloud-controller-manager) to handle the `Node` lifecycle +and topology information. +- Configure the [metal-load-balancer-controller](/baremetal/kubernetes/metal-loadbalancer-controller) to handle `Service` of type `LoadBalancer`. +- Configure the [Machine Controller Manager (MCM)](#machine-controller-manager-mcm) to manage the creation of `Nodes` in the cluster.