diff --git a/pages/kubernetes/concepts.mdx b/pages/kubernetes/concepts.mdx
index f07d412007..fa675da4cf 100644
--- a/pages/kubernetes/concepts.mdx
+++ b/pages/kubernetes/concepts.mdx
@@ -16,11 +16,15 @@ 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
+
+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
-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
diff --git a/pages/kubernetes/how-to/create-cluster.mdx b/pages/kubernetes/how-to/create-cluster.mdx
index fd6b4cffa6..9332ecebbd 100644
--- a/pages/kubernetes/how-to/create-cluster.mdx
+++ b/pages/kubernetes/how-to/create-cluster.mdx
@@ -63,15 +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** 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).
- * Enter the pool's name and optional tags.
+ * **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).
+ * 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.
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 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.
+ - `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 **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 9cdfbb4a3b..0ad036aa1d 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** 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).
- * Enter the pool's name and optional tags.
+ * **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 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.
@@ -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.
@@ -81,19 +82,68 @@ 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
+
+[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.
+
+
+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 **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:
+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 wish to configure, go to section **Scheduling** tab > **Node labels**.
+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:
@@ -102,7 +152,6 @@ 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.
-
## Review configuration
1. Review the configuration details of your Kubernetes cluster and its pools (if any).
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
diff --git a/pages/kubernetes/how-to/manage-node-pools.mdx b/pages/kubernetes/how-to/manage-node-pools.mdx
index a8a6e894f8..dfe2ddfb22 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** 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).
- - Enter the pool's name and optional tags.
+ - **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).
+ - 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.
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,47 +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** 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 edit an existing Kubernetes Kapsule node pool
@@ -96,19 +57,19 @@ To implement the scheduling constraints related to the node labels you have just
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 b06b06db53..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'
@@ -65,11 +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** 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/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).
You can also choose to retain default settings.
- * Enter the pool's details.
+ * 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.
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.
@@ -122,11 +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** 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), if required. You can also link the pool to a [placement group](/instances/concepts/#placement-groups).
+
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.
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.