From c1b29f6a504271001b2b8bb51693621bcaf2a3c6 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Wed, 16 Sep 2026 10:23:56 +0200 Subject: [PATCH 01/16] feat(k8s): add cloud-init --- pages/kubernetes/how-to/create-cluster.mdx | 3 +++ pages/kubernetes/quickstart.mdx | 12 ++++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index fd6b4cffa6..f1a7e1e47a 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -65,6 +65,9 @@ This section outlines the settings for your cluster pools. You can configure as * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. * **Scheduling** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + * Configure an optional **cloud-init** script to customize your nodes on first boot: + * Use the toggle to enable cloud-init. + * Add your YAML-formatted script in the **Cloud-init configuration** box. * Enter the pool's name and optional tags. 2. To add more pools, click **Add pool** and repeat the steps above. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index b06b06db53..64c4144c03 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -65,10 +65,12 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Choose whether to enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation). - * **Scheduling** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. - * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). You can also choose to retain default settings. + * Configure an optional **cloud-init** script to customize your nodes on first boot: + * Use the toggle to enable cloud-init. + * Add your YAML-formatted script in the **Cloud-init configuration** box. * Enter the pool's details. 2. To add more pools, click **Add pool** and repeat the steps above. @@ -122,10 +124,12 @@ To add a Scaleway pool to your Kosmos cluster: * Configure the **system volume**. * If required, configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). - * **Scheduling** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels), if required. - * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). Alternatively, you can leave these options at default values. + * If required, configure an optional **cloud-init** script to customize your nodes on first boot: + * Use the toggle to enable cloud-init. + * Add your YAML-formatted script in the **Cloud-init configuration** box. * Specify a **name** for the pool. Optionally, you can assign tags to it. 3. To add more pools, click **Add pool** and repeat the steps above. From f83ee06d8039d55a0ab21215203adbef173a4b46 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Wed, 16 Sep 2026 17:47:12 +0200 Subject: [PATCH 02/16] feat(k8s): add cloud-init --- pages/kubernetes/concepts.mdx | 4 ++++ pages/kubernetes/how-to/create-cluster.mdx | 6 ++++-- pages/kubernetes/how-to/manage-node-pools.mdx | 13 +++++++++++-- pages/kubernetes/quickstart.mdx | 4 ++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index f07d412007..2043931ac4 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -18,6 +18,10 @@ The Autoheal feature ensures that all nodes within a pool remain in a healthy op Auto-upgrade allows you to schedule a maintenance window for your cluster to be upgraded to a more recent version of Kubernetes. The upgrade process will occur within two hours from the time defined by you. +## Cloud-init + +cloud-init is an industry-standard tool used to apply custom, predefined configurations to an Instance upon startup. In a Kubernetes context, you can define initial setup tasks (such as creating users or upgrading system packages) that automatically execute when an Instance is first provisioned as a worker node. On Scaleway Instances, cloud-init retrieves this custom configuration directly from user-data. See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) for more informatio about cloud-init and Scaleway Instances. + ## Cluster A cluster is a set of machines, called nodes, running containerized applications managed by [Kubernetes](#kubernetes). A cluster has several worker nodes and at least one control plane. Refer to the [control plane](#control-plane) concept for more information regarding the cluster's limitations. Scaleway allows you to create two configurations of clusters: [Kapsule](#kubernetes-kapsule), for clusters comprising Scaleway Instances, and [Kosmos](#kubernetes-kosmos), for multi-cloud clusters. Clusters can be tailored to availability requirements depending on the cluster availability types: zonal (single-zone or multi-AZ) and regional. diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index f1a7e1e47a..fa349626e0 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -65,9 +65,11 @@ This section outlines the settings for your cluster pools. You can configure as * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. * **Scheduling** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). - * Configure an optional **cloud-init** script to customize your nodes on first boot: + * Configure an optional [cloud-init](/kubernetes/concepts/#cloud-init) script to customize your nodes on first boot: * Use the toggle to enable cloud-init. - * Add your YAML-formatted script in the **Cloud-init configuration** box. + * Add your YAML-formatted script in the **Cloud-init configuration** box. + + See the [Introduction to cloud-init](https://docs.cloud-init.io/en/latest/explanation/introduction.html), [explanation about cloud-config](https://docs.cloud-init.io/en/latest/explanation/format/cloud-config.html#user-data-formats-cloud-config), and the [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for more information. * Enter the pool's name and optional tags. 2. To add more pools, click **Add pool** and repeat the steps above. diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index a8a6e894f8..0bfc96e5b7 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -34,8 +34,8 @@ This documentation provides step-by-step instructions on how to manage Kubernete - Configure pool options. Configuration options include: - **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - - **Scheduling** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. - - **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + - **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). + - Configure an optional [**cloud-init** script](#how-to-configure-a-cloud-init-script) to customize your nodes on first boot. - Enter the pool's name and optional tags. 6. To add more pools, click **Add pool** and repeat the steps above. @@ -87,6 +87,15 @@ To implement the scheduling constraints related to the node labels you have just - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. +## How to configure a cloud-init script + +1. In the [Scaleway console](https://console.scaleway.com/) side menu, go to **Containers** > **Kubernetes**. +2. Click the Kapsule cluster name you want to manage. The cluster information page appears. +3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. +4. In the Nodes list, click the Node that you want to edit. The Overview page of the Instance opens. +5. Go to the **Settings** tab > **Cloud-init** section. +6. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. +7. Enter your YAML-formatted cloud-init script. Click **Enable cloud-init**. ## How to edit an existing Kubernetes Kapsule node pool diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 64c4144c03..2acde5a82b 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -68,7 +68,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). You can also choose to retain default settings. - * Configure an optional **cloud-init** script to customize your nodes on first boot: + * Configure an optional [cloud-init](/kubernetes/concepts/#cloud-init) script to customize your nodes on first boot: * Use the toggle to enable cloud-init. * Add your YAML-formatted script in the **Cloud-init configuration** box. * Enter the pool's details. @@ -127,7 +127,7 @@ To add a Scaleway pool to your Kosmos cluster: * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). Alternatively, you can leave these options at default values. - * If required, configure an optional **cloud-init** script to customize your nodes on first boot: + * If required, configure an optional [cloud-init](/kubernetes/concepts/#cloud-init) script to customize your nodes on first boot: * Use the toggle to enable cloud-init. * Add your YAML-formatted script in the **Cloud-init configuration** box. * Specify a **name** for the pool. Optionally, you can assign tags to it. From 03fa4144dd39aef94f992080fb1df2bbe4a951ac Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 17 Sep 2026 13:09:43 +0200 Subject: [PATCH 03/16] feat(k8s): add cloud-init --- pages/kubernetes/concepts.mdx | 2 +- pages/kubernetes/how-to/create-cluster.mdx | 8 +-- .../how-to/create-kosmos-cluster.mdx | 49 ++++++++++++++++++- pages/kubernetes/how-to/manage-node-pools.mdx | 40 ++++++++++++++- pages/kubernetes/quickstart.mdx | 4 +- 5 files changed, 94 insertions(+), 9 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index 2043931ac4..c865f4e59c 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -20,7 +20,7 @@ Auto-upgrade allows you to schedule a maintenance window for your cluster to be ## Cloud-init -cloud-init is an industry-standard tool used to apply custom, predefined configurations to an Instance upon startup. In a Kubernetes context, you can define initial setup tasks (such as creating users or upgrading system packages) that automatically execute when an Instance is first provisioned as a worker node. On Scaleway Instances, cloud-init retrieves this custom configuration directly from user-data. See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) for more informatio about cloud-init and Scaleway Instances. +Cloud-init is an industry-standard tool used to apply custom, predefined configurations to an Instance upon startup. In a Kubernetes context, you can define initial setup tasks (such as creating users or upgrading system packages) that automatically execute when an Instance is first provisioned as a worker node. On Scaleway Instances, cloud-init retrieves this custom configuration directly from user-data. See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) for more informatio about cloud-init and Scaleway Instances. ## Cluster diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index fa349626e0..97741831b3 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -63,13 +63,15 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - * **Scheduling** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. - * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). * Configure an optional [cloud-init](/kubernetes/concepts/#cloud-init) script to customize your nodes on first boot: * Use the toggle to enable cloud-init. * Add your YAML-formatted script in the **Cloud-init configuration** box. - See the [Introduction to cloud-init](https://docs.cloud-init.io/en/latest/explanation/introduction.html), [explanation about cloud-config](https://docs.cloud-init.io/en/latest/explanation/format/cloud-config.html#user-data-formats-cloud-config), and the [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for more information. + Fore more information, see the following resources: + - See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) to learn more about the specifics of cloud-init in a Scaleway context. + - See [How to configure a cloud-init script](/kubernetes/how-to/manage-node-pools/#how-to-configure-a-cloud-init-script) for an example script that adds a custom Certificate Authority (CA). + - See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for some practical examples. * Enter the pool's name and optional tags. 2. To add more pools, click **Add pool** and repeat the steps above. diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index 9cdfbb4a3b..2d73ecf6df 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -52,8 +52,8 @@ This section outlines the settings for your cluster pools. You can configure as * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). - * **Scheduling** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. - * **Placement** tab: Link to a [security group](/kubernetes/reference-content/security-group-management/) or a [placement group](/instances/concepts/#placement-groups). + * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). + * Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. * Enter the pool's name and optional tags. * For **Multi-cloud** pools: * Specify the external nodes to be added to the pool. @@ -102,6 +102,51 @@ To implement the scheduling constraints related to the node labels you have just - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. +### How to configure a cloud-init script + +[Cloud-init](/kubernetes/concepts/#cloud-init) enables you to set custom configuration that will be applied at boot time to the Instances acting as the nodes in your pool. + +1. On the pool configuration page, go to the **Cloud-init** section. +2. Use the toggle to enable cloud-init. +3. Add your YAML-formatted script in the **Cloud-init configuration** box. + + The following example shows a script that adds a custom Certificate Authority (CA): + + ```bash + #cloud-config + # + # This is an example file to configure an instance's trusted CA certificates + # system-wide for SSL/TLS trust establishment when the instance boots for the + # first time. + # + # Make sure that this file is valid yaml before starting instances. + # It should be passed as user-data when starting the instance. + + ca_certs: + # If present and set to True, the 'remove_defaults' parameter will either + # disable all the trusted CA certifications normally shipped with + # Alpine, Debian or Ubuntu. On RedHat, this action will delete those + # certificates. + # This is mainly for very security-sensitive use cases - most users will not + # need this functionality. + remove_defaults: true + + # If present, the 'trusted' parameter should contain a certificate (or list + # of certificates) to add to the system as trusted CA certificates. + # Pay close attention to the YAML multiline list syntax. The example shown + # here is for a list of multiline certificates. + trusted: + - | + -----BEGIN CERTIFICATE----- + YOUR-ORGS-TRUSTED-CA-CERT-HERE + -----END CERTIFICATE----- + - | + -----BEGIN CERTIFICATE----- + YOUR-ORGS-TRUSTED-CA-CERT-HERE + -----END CERTIFICATE----- + ``` + +See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) to learn more about the specifics of cloud-init in a Scaleway context. See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for some practical examples. ## Review configuration diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 0bfc96e5b7..8172e32478 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -95,7 +95,45 @@ To implement the scheduling constraints related to the node labels you have just 4. In the Nodes list, click the Node that you want to edit. The Overview page of the Instance opens. 5. Go to the **Settings** tab > **Cloud-init** section. 6. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. -7. Enter your YAML-formatted cloud-init script. Click **Enable cloud-init**. +7. Enter your YAML-formatted cloud-init script, and click **Enable cloud-init**. + + The following example shows a script that adds a custom Certificate Authority (CA): + + ```bash + #cloud-config + # + # This is an example file to configure an instance's trusted CA certificates + # system-wide for SSL/TLS trust establishment when the instance boots for the + # first time. + # + # Make sure that this file is valid yaml before starting instances. + # It should be passed as user-data when starting the instance. + + ca_certs: + # If present and set to True, the 'remove_defaults' parameter will either + # disable all the trusted CA certifications normally shipped with + # Alpine, Debian or Ubuntu. On RedHat, this action will delete those + # certificates. + # This is mainly for very security-sensitive use cases - most users will not + # need this functionality. + remove_defaults: true + + # If present, the 'trusted' parameter should contain a certificate (or list + # of certificates) to add to the system as trusted CA certificates. + # Pay close attention to the YAML multiline list syntax. The example shown + # here is for a list of multiline certificates. + trusted: + - | + -----BEGIN CERTIFICATE----- + YOUR-ORGS-TRUSTED-CA-CERT-HERE + -----END CERTIFICATE----- + - | + -----BEGIN CERTIFICATE----- + YOUR-ORGS-TRUSTED-CA-CERT-HERE + -----END CERTIFICATE----- + ``` + +See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) to learn more about the specifics of cloud-init in a Scaleway context. See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for some practical examples. ## How to edit an existing Kubernetes Kapsule node pool diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 2acde5a82b..3fe98f2755 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -68,7 +68,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). You can also choose to retain default settings. - * Configure an optional [cloud-init](/kubernetes/concepts/#cloud-init) script to customize your nodes on first boot: + * Configure an optional [cloud-init](/kubernetes/how-to/manage-node-pools/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot: * Use the toggle to enable cloud-init. * Add your YAML-formatted script in the **Cloud-init configuration** box. * Enter the pool's details. @@ -127,7 +127,7 @@ To add a Scaleway pool to your Kosmos cluster: * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). Alternatively, you can leave these options at default values. - * If required, configure an optional [cloud-init](/kubernetes/concepts/#cloud-init) script to customize your nodes on first boot: + * If required, configure an optional [cloud-init](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot: * Use the toggle to enable cloud-init. * Add your YAML-formatted script in the **Cloud-init configuration** box. * Specify a **name** for the pool. Optionally, you can assign tags to it. From 9c7100fedbb068317817d0435ae4364227c12c81 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Fri, 18 Sep 2026 10:55:35 +0200 Subject: [PATCH 04/16] feat(k8s): add cloud-init --- pages/kubernetes/concepts.mdx | 2 +- pages/kubernetes/how-to/create-cluster.mdx | 1 - pages/kubernetes/how-to/manage-node-pools.mdx | 6 ++---- pages/kubernetes/quickstart.mdx | 2 +- 4 files changed, 4 insertions(+), 7 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index c865f4e59c..36cf26604e 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -20,7 +20,7 @@ Auto-upgrade allows you to schedule a maintenance window for your cluster to be ## Cloud-init -Cloud-init is an industry-standard tool used to apply custom, predefined configurations to an Instance upon startup. In a Kubernetes context, you can define initial setup tasks (such as creating users or upgrading system packages) that automatically execute when an Instance is first provisioned as a worker node. On Scaleway Instances, cloud-init retrieves this custom configuration directly from user-data. See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) for more informatio about cloud-init and Scaleway Instances. +Cloud-init is an industry-standard tool used to apply custom, predefined configurations to an Instance upon startup. In a Kubernetes context, you can define initial setup tasks (such as creating users, upgrading system packages, configuring trusted CA certificates, etc.) that automatically execute when an Instance is first provisioned as a worker node. On Scaleway Instances, cloud-init retrieves this custom configuration directly from user-data. See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) for more information about cloud-init in a Scaleway context. ## Cluster diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 97741831b3..61841a3e3a 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -69,7 +69,6 @@ This section outlines the settings for your cluster pools. You can configure as * Add your YAML-formatted script in the **Cloud-init configuration** box. Fore more information, see the following resources: - - See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) to learn more about the specifics of cloud-init in a Scaleway context. - See [How to configure a cloud-init script](/kubernetes/how-to/manage-node-pools/#how-to-configure-a-cloud-init-script) for an example script that adds a custom Certificate Authority (CA). - See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for some practical examples. * Enter the pool's name and optional tags. diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 8172e32478..4d75ea7955 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -76,7 +76,7 @@ By attaching node labels to a pool, you can: - **Require** Pods to run only on nodes that match the label(s), or - **Prefer** Pods to run on nodes that match the label(s). -1. On the page of the pool that you wish to configure, go to section **Scheduling** tab > **Node labels**. +1. On the page of the pool that you wish to configure, go to section **Scheduling & Placement** tab > **Node labels**. 2. Specify a **Key** and a **Value**. 3. Click the **+ Add node label** button to add further node labels. @@ -89,9 +89,7 @@ To implement the scheduling constraints related to the node labels you have just ## How to configure a cloud-init script -1. In the [Scaleway console](https://console.scaleway.com/) side menu, go to **Containers** > **Kubernetes**. -2. Click the Kapsule cluster name you want to manage. The cluster information page appears. -3. Click the **Pools & Nodes** tab to display the pool configuration of the cluster. +1. On the page of the pool that you wish to configure, go to section **Scheduling & Placement** tab > **Node labels**. 4. In the Nodes list, click the Node that you want to edit. The Overview page of the Instance opens. 5. Go to the **Settings** tab > **Cloud-init** section. 6. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 3fe98f2755..bf3cd138c1 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -68,7 +68,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). You can also choose to retain default settings. - * Configure an optional [cloud-init](/kubernetes/how-to/manage-node-pools/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot: + * Configure an optional [cloud-init](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot: * Use the toggle to enable cloud-init. * Add your YAML-formatted script in the **Cloud-init configuration** box. * Enter the pool's details. From 828a55f30924f244d0e9deaf6d80605244dea022 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Fri, 18 Sep 2026 18:25:52 +0200 Subject: [PATCH 05/16] feat(k8s): add cloud-init --- pages/kubernetes/concepts.mdx | 2 +- pages/kubernetes/how-to/create-cluster.mdx | 99 +++++++++++++++-- .../how-to/create-kosmos-cluster.mdx | 60 +++++----- pages/kubernetes/how-to/manage-node-pools.mdx | 104 ++---------------- pages/kubernetes/quickstart.mdx | 24 ++-- 5 files changed, 149 insertions(+), 140 deletions(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index 36cf26604e..84c5460e62 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -20,7 +20,7 @@ Auto-upgrade allows you to schedule a maintenance window for your cluster to be ## Cloud-init -Cloud-init is an industry-standard tool used to apply custom, predefined configurations to an Instance upon startup. In a Kubernetes context, you can define initial setup tasks (such as creating users, upgrading system packages, configuring trusted CA certificates, etc.) that automatically execute when an Instance is first provisioned as a worker node. On Scaleway Instances, cloud-init retrieves this custom configuration directly from user-data. See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) for more information about cloud-init in a Scaleway context. +Cloud-init is an industry-standard tool used to apply custom, predefined configurations to an instance upon startup. In a Kubernetes context, you can define initial setup tasks (such as creating users, upgrading system packages, configuring trusted CA certificates, etc.) that automatically execute when a node is first provisioned. On Scaleway Kapsule pools, cloud-init retrieves this custom configuration directly from the user-data of the pool. ## Cluster diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 61841a3e3a..b88e15af6f 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -63,21 +63,104 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - * **Scheduling & Placement** tab: Configure [startup taints or taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), and add [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). - * Configure an optional [cloud-init](/kubernetes/concepts/#cloud-init) script to customize your nodes on first boot: - * Use the toggle to enable cloud-init. - * Add your YAML-formatted script in the **Cloud-init configuration** box. - - Fore more information, see the following resources: - - See [How to configure a cloud-init script](/kubernetes/how-to/manage-node-pools/#how-to-configure-a-cloud-init-script) for an example script that adds a custom Certificate Authority (CA). - - See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for some practical examples. + * **Scheduling & Placement** tab: Configure [startup taints or taints](#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). + * **Advanced options** tab: Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. * Enter the pool's name and optional tags. + * If required, add one or more [node labels](#how-to-configure-node-labels). 2. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. 3. Once all pools are configured, click **Review**. +### How to configure startup taints or taints + +The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your pool are automatically applied to any new node created within the pool. + +1. On the page of the pool that you are configuring, go to the **Scheduling & Placement** tab. +2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. +3. Specify a key-value pair and an effect: + - **Key**: Acts as the identifier of the taint. + - **Value**: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. + - **Effect**: Specifies what happens to Pods that do not tolerate the taint: + - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. + - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. + - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. +4. Click the **+ Add startup taint** or **+ Add taint** button to add further startup taints or taints, respectively. + + + + Managing tolerations in your Pod YAML manifests remains your responsibility. You must add the appropriate tolerations to any Pod that needs to run on a tainted node. + + +### How to configure a cloud-init script + +[Cloud-init](/kubernetes/concepts/#cloud-init) enables you to set custom configuration that will be applied at boot time to the Instances acting as the nodes in your pool. + + +Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. + + +1. On the page of the pool that you are configuring, go to the **Advanced options** tab > **Cloud-init** section. +2. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. +3. Enter your YAML-formatted cloud-init script, and click **Enable cloud-init**. + + The following example shows a script that adds a custom Certificate Authority (CA): + + ```bash + #cloud-config + # + # This is an example file to configure an instance's trusted CA certificates + # system-wide for SSL/TLS trust establishment when the instance boots for the + # first time. + # + # Make sure that this file is valid yaml before starting instances. + # It should be passed as user-data when starting the instance. + + ca_certs: + # If present and set to True, the 'remove_defaults' parameter will either + # disable all the trusted CA certifications normally shipped with + # Alpine, Debian or Ubuntu. On RedHat, this action will delete those + # certificates. + # This is mainly for very security-sensitive use cases - most users will not + # need this functionality. + remove_defaults: true + + # If present, the 'trusted' parameter should contain a certificate (or list + # of certificates) to add to the system as trusted CA certificates. + # Pay close attention to the YAML multiline list syntax. The example shown + # here is for a list of multiline certificates. + trusted: + - | + -----BEGIN CERTIFICATE----- + YOUR-ORGS-TRUSTED-CA-CERT-HERE + -----END CERTIFICATE----- + - | + -----BEGIN CERTIFICATE----- + YOUR-ORGS-TRUSTED-CA-CERT-HERE + -----END CERTIFICATE----- + ``` + + See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for further practical examples. + +### How to configure node labels + +By attaching node labels to a pool, you can: + +- **Require** Pods to run only on nodes that match the label(s), or +- **Prefer** Pods to run on nodes that match the label(s). + +1. On the page of the pool that you are configuring, go to the **Node labels** section. +2. Specify a **Key** and a **Value**. +3. Click the **+ Add node label** button to add further node labels. + +To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: + +- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. +- `nodeAffinity`: It lets you define how strict label‑based rules are: + - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. + - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. + ## Review configuration 1. Review the configuration details of your Kubernetes cluster and its pools. diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index 2d73ecf6df..888b15cbd6 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -52,9 +52,10 @@ This section outlines the settings for your cluster pools. You can configure as * Configure the **system volume**. This volume contains the operating system of the nodes in your pool. * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). - * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). + * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). * Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. * Enter the pool's name and optional tags. + * If required, add one or more [node labels](#how-to-configure-node-labels). * For **Multi-cloud** pools: * Specify the external nodes to be added to the pool. @@ -70,9 +71,9 @@ This section outlines the settings for your cluster pools. You can configure as ### How to configure startup taints or taints -The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your pool are automatically applied to any new node created within the pool. +The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your Scaleway pool are automatically applied to any new node created within the pool. -1. On the page of the pool that you wish to configure, click the **Scheduling** tab. +1. On the page of the pool that you are configuring, click the **Scheduling & Placement** tab. 2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. 3. Specify a key-value pair and an effect: - **Key**: Acts as the identifier of the taint. @@ -83,32 +84,17 @@ The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kuberne - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. 4. Click the **+ Add startup taint** or **+ Add taint** button to add further startup taints or taints, respectively. - -### How to configure node labels - -By attaching node labels to a pool, you can: - -- **Require** Pods to run only on nodes that match the label(s), or -- **Prefer** Pods to run on nodes that match the label(s). - -1. On the page of the pool that you wish to configure, go to section **Scheduling** tab > **Node labels**. -2. Specify a **Key** and a **Value**. -3. Click the **+ Add node label** button to add further node labels. - -To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: - -- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. -- `nodeAffinity`: It lets you define how strict label‑based rules are: - - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. - - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. - ### How to configure a cloud-init script -[Cloud-init](/kubernetes/concepts/#cloud-init) enables you to set custom configuration that will be applied at boot time to the Instances acting as the nodes in your pool. +[Cloud-init](/kubernetes/concepts/#cloud-init) enables you to set custom configuration that will be applied at boot time to the Instances acting as the nodes in your Scaleway pool. -1. On the pool configuration page, go to the **Cloud-init** section. -2. Use the toggle to enable cloud-init. -3. Add your YAML-formatted script in the **Cloud-init configuration** box. + +Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. + + +1. On the page of the pool that you are configuring, go to the **Advanced options** tab > **Cloud-init** section. +2. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. +3. Enter your YAML-formatted cloud-init script, and click **Enable cloud-init**. The following example shows a script that adds a custom Certificate Authority (CA): @@ -145,8 +131,26 @@ To implement the scheduling constraints related to the node labels you have just YOUR-ORGS-TRUSTED-CA-CERT-HERE -----END CERTIFICATE----- ``` - -See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) to learn more about the specifics of cloud-init in a Scaleway context. See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for some practical examples. + + See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for further practical examples. + +### How to configure node labels + +By attaching node labels to a Scaleway pool, you can: + +- **Require** Pods to run only on nodes that match the label(s), or +- **Prefer** Pods to run on nodes that match the label(s). + +1. On the page of the pool that you are configuring, go to the **Node labels** section. +2. Specify a **Key** and a **Value**. +3. Click the **+ Add node label** button to add further node labels. + +To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: + +- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. +- `nodeAffinity`: It lets you define how strict label‑based rules are: + - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. + - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. ## Review configuration diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 4d75ea7955..338d7d3cbc 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -34,9 +34,10 @@ This documentation provides step-by-step instructions on how to manage Kubernete - Configure pool options. Configuration options include: - **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - - **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), and add [node labels](#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). - - Configure an optional [**cloud-init** script](#how-to-configure-a-cloud-init-script) to customize your nodes on first boot. + - **Scheduling & Placement** tab: Configure [startup taints and/or taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). + - **Advanced options** tab: Configure an optional [cloud-init script](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) to customize your nodes on first boot. - Enter the pool's name and optional tags. + - If required, add one or more [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 6. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. @@ -46,92 +47,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete Alternatively, you can use the Scaleway CLI to [create node pools](https://cli.scaleway.com/k8s/#create-a-new-pool-in-a-cluster). - - -## How to configure startup taints or taints - -The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kubernetes/concepts/#taints) you configure for your pool are automatically applied to any new node created within the pool. - -1. On the page of the pool that you wish to configure, click the **Scheduling** tab. -2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. -3. Specify a key-value pair and an effect: - - **Key**: Acts as the identifier of the taint. - - **Value**: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. - - **Effect**: Specifies what happens to Pods that do not tolerate the taint: - - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. - - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. -4. Click the **+ Add startup taint** or **+ Add taint** button to add further startup taints or taints, respectively. - - - - Managing tolerations in your Pod YAML manifests remains your responsibility. You must add the appropriate tolerations to any Pod that needs to run on a tainted node. - - - -## How to configure node labels - -By attaching node labels to a pool, you can: - -- **Require** Pods to run only on nodes that match the label(s), or -- **Prefer** Pods to run on nodes that match the label(s). - -1. On the page of the pool that you wish to configure, go to section **Scheduling & Placement** tab > **Node labels**. -2. Specify a **Key** and a **Value**. -3. Click the **+ Add node label** button to add further node labels. - -To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: - -- `nodeSelector`: The scheduler places the Pod only on nodes that contain all specified labels. -- `nodeAffinity`: It lets you define how strict label‑based rules are: - - `requiredDuringSchedulingIgnoredDuringExecution`: The Pod cannot be scheduled unless the node satisfies the rule. - - `preferredDuringSchedulingIgnoredDuringExecution`: The scheduler tries to place the Pod on a matching node, but will fall back to any node if none match. - -## How to configure a cloud-init script - -1. On the page of the pool that you wish to configure, go to section **Scheduling & Placement** tab > **Node labels**. -4. In the Nodes list, click the Node that you want to edit. The Overview page of the Instance opens. -5. Go to the **Settings** tab > **Cloud-init** section. -6. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. -7. Enter your YAML-formatted cloud-init script, and click **Enable cloud-init**. - - The following example shows a script that adds a custom Certificate Authority (CA): - - ```bash - #cloud-config - # - # This is an example file to configure an instance's trusted CA certificates - # system-wide for SSL/TLS trust establishment when the instance boots for the - # first time. - # - # Make sure that this file is valid yaml before starting instances. - # It should be passed as user-data when starting the instance. - - ca_certs: - # If present and set to True, the 'remove_defaults' parameter will either - # disable all the trusted CA certifications normally shipped with - # Alpine, Debian or Ubuntu. On RedHat, this action will delete those - # certificates. - # This is mainly for very security-sensitive use cases - most users will not - # need this functionality. - remove_defaults: true - - # If present, the 'trusted' parameter should contain a certificate (or list - # of certificates) to add to the system as trusted CA certificates. - # Pay close attention to the YAML multiline list syntax. The example shown - # here is for a list of multiline certificates. - trusted: - - | - -----BEGIN CERTIFICATE----- - YOUR-ORGS-TRUSTED-CA-CERT-HERE - -----END CERTIFICATE----- - - | - -----BEGIN CERTIFICATE----- - YOUR-ORGS-TRUSTED-CA-CERT-HERE - -----END CERTIFICATE----- - ``` - -See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud-init/) to learn more about the specifics of cloud-init in a Scaleway context. See [cloud-config examples](https://docs.cloud-init.io/en/latest/reference/examples.html) in the cloud-init documentation for some practical examples. + ## How to edit an existing Kubernetes Kapsule node pool @@ -141,19 +57,19 @@ See [How to use cloud-init with Scaleway Instances](/instances/how-to/use-cloud- 4. Click > **Edit** next to the node pool you want to edit. 5. Configure the pool: - **Operations** tab: - - Configure [autoscaling](/kubernetes/concepts/#autoscale) - - Enable or disable the [autoheal feature](/kubernetes/reference-content/using-kapsule-autoheal-feature/) + - Configure [autoscaling](/kubernetes/concepts/#autoscale). + - Enable or disable the [autoheal feature](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Scheduling** tab: - - Update [startup taints and taints](#how-to-configure-startup-taints-or-taints) - - Update [node labels](#how-to-configure-node-labels) - - Update pool tags + - Update [startup taints and taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints). + - In the **Manage security group** section, you can link the pool to an existing [security group](/kubernetes/reference-content/security-group-management/) or create a new security group and link the pool to that. + - Update pool tags. + - Update [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 6. Click **Update pool** to update the pool configuration. Alternatively, you can use the Scaleway CLI to [update a node pool](https://cli.scaleway.com/k8s/#update-a-pool-in-a-cluster). - ## How to migrate existing workloads to a new Kubernetes Kapsule node pool diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index bf3cd138c1..8957459828 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -65,13 +65,16 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Choose whether to enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation). - * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/manage-node-pools/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/manage-node-pools/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). + * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). + * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. + + + Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. + You can also choose to retain default settings. - * Configure an optional [cloud-init](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot: - * Use the toggle to enable cloud-init. - * Add your YAML-formatted script in the **Cloud-init configuration** box. - * Enter the pool's details. + * Enter the pool's details. + * If required, add one or more [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 2. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. @@ -124,13 +127,16 @@ To add a Scaleway pool to your Kosmos cluster: * Configure the **system volume**. * If required, configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). - * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), as well as [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels), if required. You can also link to a [placement group](/instances/concepts/#placement-groups). + * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). + * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. + + Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. + + Alternatively, you can leave these options at default values. - * If required, configure an optional [cloud-init](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot: - * Use the toggle to enable cloud-init. - * Add your YAML-formatted script in the **Cloud-init configuration** box. * Specify a **name** for the pool. Optionally, you can assign tags to it. + * If required, add one or more [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels). 3. To add more pools, click **Add pool** and repeat the steps above. You can add or remove pools as needed before finalizing your cluster configuration. To remove a pool, click the **Delete** icon next to the respective pool. From 4cc4dc2ffc823b5547e3545c1d7702cc97ce8673 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Mon, 21 Sep 2026 16:09:55 +0200 Subject: [PATCH 06/16] feat(k8s): remove reference to first boot --- pages/kubernetes/how-to/create-cluster.mdx | 2 +- pages/kubernetes/how-to/create-kosmos-cluster.mdx | 2 +- pages/kubernetes/how-to/manage-node-pools.mdx | 2 +- pages/kubernetes/quickstart.mdx | 4 ++-- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index b88e15af6f..ca2d21f18a 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -64,7 +64,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. * **Scheduling & Placement** tab: Configure [startup taints or taints](#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - * **Advanced options** tab: Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. + * **Advanced options** tab: Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes. * Enter the pool's name and optional tags. * If required, add one or more [node labels](#how-to-configure-node-labels). 2. To add more pools, click **Add pool** and repeat the steps above. diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index 888b15cbd6..67782e75ca 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -53,7 +53,7 @@ This section outlines the settings for your cluster pools. You can configure as * Configure **pool options** or retain default settings. Configuration options include: * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - * Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. + * Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes. * Enter the pool's name and optional tags. * If required, add one or more [node labels](#how-to-configure-node-labels). * For **Multi-cloud** pools: diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 338d7d3cbc..9755d836ba 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -35,7 +35,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete - **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - **Scheduling & Placement** tab: Configure [startup taints and/or taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - - **Advanced options** tab: Configure an optional [cloud-init script](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) to customize your nodes on first boot. + - **Advanced options** tab: Configure an optional [cloud-init script](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) to customize your nodes. - Enter the pool's name and optional tags. - If required, add one or more [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 6. To add more pools, click **Add pool** and repeat the steps above. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 8957459828..9939f873c6 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -66,7 +66,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Choose whether to enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation). * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. + * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes. Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. @@ -128,7 +128,7 @@ To add a Scaleway pool to your Kosmos cluster: * If required, configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes on first boot. + * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes. Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. From 61d8d142218d17ab18e07607684d5a1d0d66ea20 Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Mon, 21 Sep 2026 17:16:36 +0200 Subject: [PATCH 07/16] Apply review suggestion (editorial) Co-authored-by: mmfrayssens --- pages/kubernetes/how-to/create-kosmos-cluster.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index 67782e75ca..f038a6ca80 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -54,7 +54,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Scheduling & Placement** tab: Configure [startup taints and/or taints](#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). * Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes. - * Enter the pool's name and optional tags. + * Enter the name of the pool and optional tags. * If required, add one or more [node labels](#how-to-configure-node-labels). * For **Multi-cloud** pools: * Specify the external nodes to be added to the pool. From 7ca9516a9e921aea3fe81084142eba122f487e7a Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Mon, 21 Sep 2026 17:16:50 +0200 Subject: [PATCH 08/16] Apply review suggestion (editorial) Co-authored-by: mmfrayssens --- pages/kubernetes/quickstart.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index 9939f873c6..b41dbdee77 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -73,7 +73,7 @@ This section outlines the settings for your cluster pools. You can configure as You can also choose to retain default settings. - * Enter the pool's details. + * Enter the details of the pool. * If required, add one or more [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 2. To add more pools, click **Add pool** and repeat the steps above. From f12fad6b0714f201cf33e4913cfa395c235d85d7 Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Mon, 21 Sep 2026 17:17:10 +0200 Subject: [PATCH 09/16] Apply review suggestion (editorial) Co-authored-by: mmfrayssens --- pages/kubernetes/concepts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index 84c5460e62..a972ae5b4a 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -16,7 +16,7 @@ The Autoheal feature ensures that all nodes within a pool remain in a healthy op ## Auto-upgrade -Auto-upgrade allows you to schedule a maintenance window for your cluster to be upgraded to a more recent version of Kubernetes. The upgrade process will occur within two hours from the time defined by you. +Auto-upgrade allows you to schedule a maintenance window for your cluster to be upgraded to a more recent version of Kubernetes. The upgrade process will occur within 2 hours from the time defined by you. ## Cloud-init From fd8f84d54de38761f48cf62c3b580f02006671a3 Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Mon, 21 Sep 2026 17:17:27 +0200 Subject: [PATCH 10/16] Apply review suggestion (editorial) Co-authored-by: mmfrayssens --- pages/kubernetes/concepts.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx index a972ae5b4a..fa675da4cf 100644 --- a/pages/kubernetes/concepts.mdx +++ b/pages/kubernetes/concepts.mdx @@ -24,7 +24,7 @@ Cloud-init is an industry-standard tool used to apply custom, predefined configu ## Cluster -A cluster is a set of machines, called nodes, running containerized applications managed by [Kubernetes](#kubernetes). A cluster has several worker nodes and at least one control plane. Refer to the [control plane](#control-plane) concept for more information regarding the cluster's limitations. Scaleway allows you to create two configurations of clusters: [Kapsule](#kubernetes-kapsule), for clusters comprising Scaleway Instances, and [Kosmos](#kubernetes-kosmos), for multi-cloud clusters. Clusters can be tailored to availability requirements depending on the cluster availability types: zonal (single-zone or multi-AZ) and regional. +A cluster is a set of machines, called nodes, running containerized applications managed by [Kubernetes](#kubernetes). A cluster has several worker nodes and at least one control plane. See the [control plane](#control-plane) concept for more information regarding the cluster's limitations. Scaleway allows you to create 2 configurations of clusters: [Kapsule](#kubernetes-kapsule), for clusters comprising Scaleway Instances, and [Kosmos](#kubernetes-kosmos), for multi-cloud clusters. Clusters can be tailored to availability requirements depending on the cluster availability types: zonal (single-zone or multi-AZ) and regional. ## Cluster types From b17928680bdcdfe601f43f8c6f78ca22aebcbdef Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Mon, 21 Sep 2026 17:17:39 +0200 Subject: [PATCH 11/16] Apply review suggestion (editorial) Co-authored-by: mmfrayssens --- pages/kubernetes/how-to/create-cluster.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index ca2d21f18a..895d6da31d 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -65,7 +65,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. * **Scheduling & Placement** tab: Configure [startup taints or taints](#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). * **Advanced options** tab: Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes. - * Enter the pool's name and optional tags. + * Enter the name of the pool and optional tags. * If required, add one or more [node labels](#how-to-configure-node-labels). 2. To add more pools, click **Add pool** and repeat the steps above. From 282a799c95e3a5d30882decc967ca9fc57b83134 Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Mon, 21 Sep 2026 17:17:53 +0200 Subject: [PATCH 12/16] Apply review suggestion (editorial) Co-authored-by: mmfrayssens --- pages/kubernetes/how-to/manage-node-pools.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index 9755d836ba..b567600129 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -36,7 +36,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - **Scheduling & Placement** tab: Configure [startup taints and/or taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - **Advanced options** tab: Configure an optional [cloud-init script](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) to customize your nodes. - - Enter the pool's name and optional tags. + - Enter the name of the pool and optional tags. - If required, add one or more [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 6. To add more pools, click **Add pool** and repeat the steps above. From ea3929521506d01cd28ec1ad901cfd3d999939b8 Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Thu, 24 Sep 2026 11:25:27 +0200 Subject: [PATCH 13/16] Apply review suggestion (editorial) Co-authored-by: Loic-kd --- pages/kubernetes/how-to/create-cluster.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 895d6da31d..899b84fb33 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -86,7 +86,7 @@ The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kuberne - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. -4. Click the **+ Add startup taint** or **+ Add taint** button to add further startup taints or taints, respectively. +4. Click the **Add startup taint** or **Add taint** button to add further startup taints or taints, respectively. From 846957287da9b5f09b4d676fc9fb82df729bcbf5 Mon Sep 17 00:00:00 2001 From: vanda-scw Date: Thu, 24 Sep 2026 11:38:14 +0200 Subject: [PATCH 14/16] Apply review suggestion (editorial) Co-authored-by: Loic-kd --- pages/kubernetes/how-to/create-cluster.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 899b84fb33..7cc62309a9 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -81,7 +81,7 @@ The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kuberne 2. Select the **Startup taints** or the **Taints** checkbox, depending on what you wish to configure. The **Key**, **Value**, and **Effect** fields display. 3. Specify a key-value pair and an effect: - **Key**: Acts as the identifier of the taint. - - **Value**: An optional string that further qualifies the taint. It allows you to distinguish between multiple taints that share the same key but represent different situations. + - **Value**: An optional string that further qualifies the taint. It allows you to identify taints that share the same key but represent different situations. - **Effect**: Specifies what happens to Pods that do not tolerate the taint: - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. From f6bd2f75727c2541ba8704eeeaecdc25e9d41927 Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Thu, 24 Sep 2026 11:41:15 +0200 Subject: [PATCH 15/16] feat(k8s): remove + signs --- pages/kubernetes/how-to/create-cluster.mdx | 2 +- pages/kubernetes/how-to/create-kosmos-cluster.mdx | 4 ++-- pages/kubernetes/how-to/edit-kosmos-cluster.mdx | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index 7cc62309a9..f693dacbd4 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -152,7 +152,7 @@ By attaching node labels to a pool, you can: 1. On the page of the pool that you are configuring, go to the **Node labels** section. 2. Specify a **Key** and a **Value**. -3. Click the **+ Add node label** button to add further node labels. +3. Click the **Add node label** button to add further node labels. To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index f038a6ca80..1cdfb71758 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -82,7 +82,7 @@ The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kuberne - `NoSchedule`: Pods that do not have a matching toleration are prevented from being scheduled on the node. Pods already running are left untouched. - `PreferNoSchedule`: The scheduler tries to avoid placing non‑tolerating Pods on the node, but it may still do so if no other suitable node exists. - `NoExecute`: Pods without a matching toleration are evicted from the node immediately, and new Pods that lack the toleration are blocked from being scheduled. -4. Click the **+ Add startup taint** or **+ Add taint** button to add further startup taints or taints, respectively. +4. Click the **Add startup taint** or **Add taint** button to add further startup taints or taints, respectively. ### How to configure a cloud-init script @@ -143,7 +143,7 @@ By attaching node labels to a Scaleway pool, you can: 1. On the page of the pool that you are configuring, go to the **Node labels** section. 2. Specify a **Key** and a **Value**. -3. Click the **+ Add node label** button to add further node labels. +3. Click the **Add node label** button to add further node labels. To implement the scheduling constraints related to the node labels you have just attached to your pool, remember to specify one or more corresponding node selection mechanisms in your Pod specification: diff --git a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx index 36c08dc97f..14083ba080 100644 --- a/pages/kubernetes/how-to/edit-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/edit-kosmos-cluster.mdx @@ -40,7 +40,7 @@ A multi-cloud pool allows you to attach external Instances and servers to your c 2. From the drop-down menu, select the geographical region you want to manage. 3. Click the cluster you want to add a pool to. 4. Click the **Pools & Nodes** tab. -5. Click the **+ Add pool** button. The pool creation wizard displays. +5. Click the **Add pool** button. The pool creation wizard displays. 6. Complete the following steps of the wizard: * Choose the **Multi-cloud** pool type. * Add a **name** for the pool and, optionally, a description, tags, and [node labels](/kubernetes/concepts/#node-labels). @@ -64,7 +64,7 @@ In order to add external nodes to your multi-cloud cluster, you must first [crea 6. From the drop-down menu, select the geographical region where your clusters are. The list of your Kubernetes clusters displays. 7. Click the cluster you want to add external nodes to. 8. Click the **Pools & Nodes** tab. -9. Click **+ Add external node**. The instructions for adding an external node display. +9. Click **Add external node**. The instructions for adding an external node display. ## How to configure external nodes to join the cluster From 3b6518a636b72eac1713ff2ebd3536df15ab383c Mon Sep 17 00:00:00 2001 From: Vanda ILLYES Date: Wed, 7 Oct 2026 10:25:57 +0200 Subject: [PATCH 16/16] feat(k8s): remove reference to Advanced options --- pages/kubernetes/how-to/create-cluster.mdx | 4 ++-- .../how-to/create-kosmos-cluster.mdx | 2 +- pages/kubernetes/how-to/manage-node-pools.mdx | 2 +- pages/kubernetes/quickstart.mdx | 22 +++++++++---------- 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx index f693dacbd4..9332ecebbd 100644 --- a/pages/kubernetes/how-to/create-cluster.mdx +++ b/pages/kubernetes/how-to/create-cluster.mdx @@ -64,7 +64,7 @@ This section outlines the settings for your cluster pools. You can configure as * **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. * **Scheduling & Placement** tab: Configure [startup taints or taints](#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - * **Advanced options** tab: Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes. + * Configure an optional [cloud-init](#how-to-configure-a-cloud-init-script) script to customize your nodes. * Enter the name of the pool and optional tags. * If required, add one or more [node labels](#how-to-configure-node-labels). 2. To add more pools, click **Add pool** and repeat the steps above. @@ -101,7 +101,7 @@ The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kuberne Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. -1. On the page of the pool that you are configuring, go to the **Advanced options** tab > **Cloud-init** section. +1. On the page of the pool that you are configuring, go to the **Cloud-init** section. 2. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. 3. Enter your YAML-formatted cloud-init script, and click **Enable cloud-init**. diff --git a/pages/kubernetes/how-to/create-kosmos-cluster.mdx b/pages/kubernetes/how-to/create-kosmos-cluster.mdx index 1cdfb71758..0ad036aa1d 100644 --- a/pages/kubernetes/how-to/create-kosmos-cluster.mdx +++ b/pages/kubernetes/how-to/create-kosmos-cluster.mdx @@ -92,7 +92,7 @@ The [startup taints](/kubernetes/concepts/#startup-taints) and [taints](/kuberne Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. -1. On the page of the pool that you are configuring, go to the **Advanced options** tab > **Cloud-init** section. +1. On the page of the pool that you are configuring, go to the **Cloud-init** section. 2. Click the **Enable cloud-init** button. The **Enable cloud-init** dialog box opens. 3. Enter your YAML-formatted cloud-init script, and click **Enable cloud-init**. diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx index b567600129..dfe2ddfb22 100644 --- a/pages/kubernetes/how-to/manage-node-pools.mdx +++ b/pages/kubernetes/how-to/manage-node-pools.mdx @@ -35,7 +35,7 @@ This documentation provides step-by-step instructions on how to manage Kubernete - **Operations** tab: Configure node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) and [autoheal](/kubernetes/reference-content/using-kapsule-autoheal-feature/). - **Network** tab: Enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation), if required. - **Scheduling & Placement** tab: Configure [startup taints and/or taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - - **Advanced options** tab: Configure an optional [cloud-init script](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) to customize your nodes. + - Configure an optional [cloud-init script](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) to customize your nodes. - Enter the name of the pool and optional tags. - If required, add one or more [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 6. To add more pools, click **Add pool** and repeat the steps above. diff --git a/pages/kubernetes/quickstart.mdx b/pages/kubernetes/quickstart.mdx index b41dbdee77..9049cda266 100644 --- a/pages/kubernetes/quickstart.mdx +++ b/pages/kubernetes/quickstart.mdx @@ -3,7 +3,7 @@ title: Kubernetes Quickstart description: This page shows you how to get started with Scaleway Kubernetes Kapsule and Kosmos. tags: kubernetes cluster multi-cloud pool dates: - validation: 2025-06-11 + validation: 2025-10-07 posted: 2021-05-26 --- import Requirements from '@macros/iam/requirements.mdx' @@ -66,13 +66,13 @@ This section outlines the settings for your cluster pools. You can configure as * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). * **Network** tab: Choose whether to enable [full isolation](/kubernetes/reference-content/secure-cluster-with-private-network/#what-is-the-difference-between-controlled-isolation-and-full-isolation). * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes. - - - Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. - You can also choose to retain default settings. + * Configure an optional [cloud-init](/kubernetes/how-to/create-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes. + + + Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. + * Enter the details of the pool. * If required, add one or more [node labels](/kubernetes/how-to/create-cluster/#how-to-configure-node-labels). 2. To add more pools, click **Add pool** and repeat the steps above. @@ -128,13 +128,13 @@ To add a Scaleway pool to your Kosmos cluster: * If required, configure **pool options**: * **Operations** tab: Specify node count and choose whether to enable [autoscaling](/kubernetes/concepts/#autoscale) or [autoheal](/kubernetes/concepts/#autoheal). * **Scheduling & Placement** tab: Configure [startup taints and taints](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-startup-taints-or-taints), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups). - * **Advanced options** tab: Configure an optional [cloud-init](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes. - - - Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. - Alternatively, you can leave these options at default values. + * Configure an optional [cloud-init](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-a-cloud-init-script) script to customize your nodes. + + + Use cloud-init with caution, overriding some default configurations can break nodes. Scaleway does not offer support for troubleshooting custom cloud-init scripts. + * Specify a **name** for the pool. Optionally, you can assign tags to it. * If required, add one or more [node labels](/kubernetes/how-to/create-kosmos-cluster/#how-to-configure-node-labels). 3. To add more pools, click **Add pool** and repeat the steps above.