From 24362cd67cb426ac80ca9335cde0bff8c43f352c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan-Luis=20de=20Sousa-Valadas=20Casta=C3=B1o?= Date: Thu, 6 Jun 2024 12:19:11 +0200 Subject: [PATCH] Document constraints of dynamic config install MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Non-changeable fields can cause issues if not defined in the configuration file. This isn't immediately obvious by reading the docs so document it explicitly. Signed-off-by: Juan-Luis de Sousa-Valadas CastaƱo --- docs/dynamic-configuration.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/dynamic-configuration.md b/docs/dynamic-configuration.md index 3bbf4ce75621..ba4592772ab7 100644 --- a/docs/dynamic-configuration.md +++ b/docs/dynamic-configuration.md @@ -16,6 +16,7 @@ In the [k0s configuration options](configuration.md) there are some options that - `spec.api` - these options configure how the local Kubernetes API server is setup - `spec.storage` - these options configure how the local storage (etcd or sqlite) is setup +- `spec.network.controlPlaneLoadBalancing` - these options configure how [Control Plane Load Balancing](cplb.md) is setup. In case of HA control plane, all the controllers will need this part of the configuration as otherwise they will not be able to get the storage and Kubernetes API server running. @@ -50,6 +51,12 @@ As with any Kubernetes cluster there are certain things that just cannot be chan - `network.podCIDR` - `network.serviceCIDR` - `network.provider` +- `network.controlPlaneLoadBalancing` + +During the manual installation of control plane nodes with `k0s install`, all these +non-changeable options must be defined in the configuration file. This is necessary +because these fields can be used before the dynamic configuration reconciler is +initialized. Both k0sctl and k0smotron handle this without user intervention. ## Configuration status