Documentation for `scw k8s`
The CLI documentation pages are currently under construction
The content is up to date. We're making improvements to the site over the next few weeks for a better experience.
This API allows you to manage Kubernetes Kapsule and Kosmos clusters.
Access Control List (ACL) management commands
Network Access Control Lists (ACLs) allow you to manage inbound network traffic by setting up ACL rules.
Add new ACLs
Add new ACL rules for a specific cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster whose ACLs will be added | Required |
| acls.{index}.ip | IP subnet to allow | |
| acls.{index}.scaleway-ranges | Allow access to cluster from all Scaleway ranges as defined in https://www.scaleway.com/en/docs/console/account/reference-content/scaleway-network-information/#ip-ranges-used-by-scalewayOpen in new context. | |
| acls.{index}.description | Description of the ACL | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Delete an existing ACL
Delete an existing ACL.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| acl-id | ID of the ACL rule to delete | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
List ACLs
List ACLs for a specific cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster whose ACLs will be listed | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil, all |
Set new ACLs
Set new ACL rules for a specific cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster whose ACLs will be set | Required |
| acls.{index}.ip | IP subnet to allow | |
| acls.{index}.scaleway-ranges | Allow access to cluster from all Scaleway ranges as defined in https://www.scaleway.com/en/docs/console/account/reference-content/scaleway-network-information/#ip-ranges-used-by-scalewayOpen in new context. | |
| acls.{index}.description | Description of the ACL | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Kapsule cluster management commands
A cluster is a fully managed Kubernetes cluster It is composed of different pools, each pool containing the same kind of nodes.
Create a new Cluster
Create a new Kubernetes cluster in a Scaleway region.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| project-id | Project ID to use. If none is passed the default project ID will be used | |
| type | Type of the cluster. See list available cluster types for a list of valid types | |
| name | Cluster name | Required Default: <generated> |
| description | Cluster description | |
| tags.{index} | Tags associated with the cluster | |
| version | Kubernetes version of the cluster | Required Default: latest |
| cni | Container Network Interface (CNI) plugin running in the cluster | Required Default: ciliumOne of: unknown_cni, cilium, calico, weave, flannel, kilo, none, cilium_native |
| pools.{index}.name | Name of the pool | |
| pools.{index}.node-type | Node type is the type of Scaleway Instance wanted for the pool. Nodes with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). 'external' is a special node type used to provision instances from other cloud providers in a Kosmos Cluster | |
| pools.{index}.placement-group-id | Placement group ID in which all the nodes of the pool will be created, placement groups are limited to 20 instances. | |
| pools.{index}.autoscaling | Defines whether the autoscaling feature is enabled for the pool | |
| pools.{index}.size | Size (number of nodes) of the pool | |
| pools.{index}.min-size | Defines the minimum size of the pool. Note that this field is only used when autoscaling is enabled on the pool | |
| pools.{index}.max-size | Defines the maximum size of the pool. Note that this field is only used when autoscaling is enabled on the pool | |
| pools.{index}.container-runtime | Customization of the container runtime is available for each pool | One of: unknown_runtime, docker, containerd, crio |
| pools.{index}.autohealing | Defines whether the autohealing feature is enabled for the pool | |
| pools.{index}.tags.{index} | Tags associated with the pool, see managing tagsOpen in new context | |
| pools.{index}.kubelet-args.{key} | Kubelet arguments to be used by this pool. Note that this feature is experimental | |
| pools.{index}.upgrade-policy.max-unavailable | The maximum number of nodes that can be upgrading at the same time | |
| pools.{index}.upgrade-policy.max-surge | The maximum number of nodes to be created during the upgrade, e.g. the pool will scale up to reach size+max_surge before downscaling to size after node upgrades | |
| pools.{index}.zone | Zone in which the pool's nodes will be spawned | |
| pools.{index}.root-volume-type | Defines the system volume disk type. Several types of volume (volume_type) are provided: | One of: default_volume_type, l_ssd, b_ssd, sbs_5k, sbs_15k |
| pools.{index}.root-volume-size | System volume disk size | |
| pools.{index}.public-ip-disabled | Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway | |
| pools.{index}.security-group-id | Security group ID in which all the nodes of the pool will be created. If unset, the pool will use default Kapsule security group in current zone | |
| pools.{index}.labels.{key} | Kubernetes labels applied and reconciled on the nodes | |
| pools.{index}.taints.{index}.key | The taint key to be applied to a node | |
| pools.{index}.taints.{index}.value | The taint value corresponding to the taint key | |
| pools.{index}.taints.{index}.effect | Effect defines the effects of Taint | One of: NoSchedule, PreferNoSchedule, NoExecute |
| pools.{index}.startup-taints.{index}.key | The taint key to be applied to a node | |
| pools.{index}.startup-taints.{index}.value | The taint value corresponding to the taint key | |
| pools.{index}.startup-taints.{index}.effect | Effect defines the effects of Taint | One of: NoSchedule, PreferNoSchedule, NoExecute |
| autoscaler-config.scale-down-disabled | Forbid cluster autoscaler to scale down the cluster, defaults to false | |
| autoscaler-config.scale-down-delay-after-add | How long after scale up the scale down evaluation resumes | |
| autoscaler-config.estimator | Type of resource estimator to be used in scale up | One of: unknown_estimator, binpacking |
| autoscaler-config.expander | Kubernetes autoscaler strategy to fit pods into nodes, see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expandersOpen in new context for details | One of: unknown_expander, random, most_pods, least_waste, priority, price |
| autoscaler-config.ignore-daemonsets-utilization | Ignore DaemonSet pods when calculating resource utilization for scaling down, defaults to false | |
| autoscaler-config.balance-similar-node-groups | Detect similar node groups and balance the number of nodes between them, defaults to false | |
| autoscaler-config.expendable-pods-priority-cutoff | Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they won't cause scale up. Pods with null priority (PodPriority disabled) are non expendable | |
| autoscaler-config.scale-down-unneeded-time | How long a node should be unneeded before it is eligible for scale down, defaults to 10 minutes | |
| autoscaler-config.scale-down-utilization-threshold | Node utilization level, defined as a sum of requested resources divided by allocatable capacity, below which a node can be considered for scale down | |
| autoscaler-config.max-graceful-termination-sec | Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node, defaults to 600 (10 minutes) | |
| autoscaler-config.skip-nodes-with-local-storage | Cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath, defaults to true | |
| autoscaler-config.log-level | Cluster autoscaler logging level expressed from 0 to 4 (4 being the more verbose), defaults to 2. see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-increase-the-information-that-the-ca-is-loggingOpen in new context for details | |
| auto-upgrade.enable | Defines whether auto upgrade is enabled for the cluster | |
| auto-upgrade.maintenance-window.start-hour | Start time of the two-hour maintenance window | |
| auto-upgrade.maintenance-window.day | Day of the week for the maintenance window | One of: any, monday, tuesday, wednesday, thursday, friday, saturday, sunday |
| feature-gates.{index} | List of feature gates to enable | |
| admission-plugins.{index} | List of admission plugins to enable | |
| open-id-connect-config.issuer-url | URL of the provider which allows the API server to discover public signing keys. Only URLs using the https:// scheme are accepted. This is typically the provider's discovery URL without a path, for example "https://accounts.google.comOpen in new context" or "https://login.salesforce.comOpen in new context" | |
| open-id-connect-config.client-id | A client ID that all tokens must be issued for | |
| open-id-connect-config.username-claim | JWT claim to use as the user name. The default is sub, which is expected to be the end user's unique identifier. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent name collision | |
| open-id-connect-config.username-prefix | Prefix prepended to username claims to prevent name collision (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this flag is not provided and username_claim is a value other than email, the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of issuer_url. The value - can be used to disable all prefixing | |
| open-id-connect-config.groups-claim.{index} | JWT claim to use as the user's group | |
| open-id-connect-config.groups-prefix | Prefix prepended to group claims to prevent name collision (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra | |
| open-id-connect-config.required-claim.{index} | Multiple key=value pairs describing a required claim in the ID token. If set, the claims are verified to be present in the ID token with a matching value | |
| apiserver-cert-sans.{index} | Additional Subject Alternative Names for the Kubernetes API server certificate | |
| private-network-id | Private network ID for internal cluster communication (cannot be changed later). For Kapsule clusters, if none is provided, a private network will be created | |
| pod-cidr | Subnet used for the Pod CIDR (cannot be changed later) | |
| service-cidr | Subnet used for the Service CIDR (cannot be changed later) | |
| service-dns-ip | IP used for the DNS Service (cannot be changes later). If unset, default to Service CIDR's network + 10 | |
| organization-id | Organization ID to use. If none is passed the default organization ID will be used | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Create a Kubernetes cluster named foo with cilium as CNI, in version 1.31.2 and with a pool named default composed of 3 DEV1-M
Code
Create a Kubernetes cluster named bar, tagged, calico as CNI, in version 1.31.2 and with a tagged pool named default composed of 2 RENDER-S and autohealing and autoscaling enabled (between 1 and 10 nodes)
Code
Delete a Cluster
Delete a specific Kubernetes cluster and all its associated pools and nodes, and possibly its associated Load Balancers or Block Volumes.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster to delete | Required |
| with-additional-resources | Defines whether all volumes (including retain volume type), empty Private Networks and Load Balancers with a name starting with the cluster ID will also be deleted | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Delete a cluster without deleting its Block volumes and Load Balancers
Code
Delete a cluster with its Block volumes and Load Balancers (best effort)
Code
Get a Cluster
Retrieve information about a specific Kubernetes cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the requested cluster | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Get a cluster information
Code
List Clusters
List all existing Kubernetes clusters in a specific region.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| project-id | Project ID on which to filter the returned clusters | |
| order-by | Sort order of returned clusters | One of: created_at_asc, created_at_desc, updated_at_asc, updated_at_desc, name_asc, name_desc, status_asc, status_desc, version_asc, version_desc |
| name | Name to filter on, only clusters containing this substring in their name will be returned | |
| status | Status to filter on, only clusters with this status will be returned | One of: unknown, creating, ready, deleting, deleted, updating, locked, pool_required |
| type | Type to filter on, only clusters with this type will be returned | |
| private-network-id | Private Network ID to filter on, only clusters within this Private Network will be returned | |
| version | Version to filter on, only cluster matching this prefix version will be returned | |
| organization-id | Organization ID on which to filter the returned clusters | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil, all |
Examples:
List all clusters on your default region
Code
List the ready clusters on your default region
Code
List the clusters that match the given name on fr-par ('cluster1' will return 'cluster100' and 'cluster1' but not 'foo')
Code
List available cluster types for a cluster
List the cluster types that a specific Kubernetes cluster is allowed to switch to.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID for which the available Kubernetes types will be listed | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
List all cluster types that a cluster can upgrade to
Code
List available versions for a Cluster
List the versions that a specific Kubernetes cluster is allowed to upgrade to. Results will include every patch version greater than the current patch, as well as one minor version ahead of the current version. Any upgrade skipping a minor version will not work.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID for which the available Kubernetes versions will be listed | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
List all versions that a cluster can upgrade to
Code
Reset the admin token of a Cluster
Reset the admin token for a specific Kubernetes cluster. This will revoke the old admin token (which will not be usable afterwards) and create a new one. Note that you will need to download the kubeconfig again to keep interacting with the cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID on which the admin token will be renewed | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Reset the admin token for a cluster
Code
Change the Cluster type
Change the type of a specific Kubernetes cluster. To see the possible values you can enter for the type field, list available cluster types.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster to migrate from one type to another | Required |
| type | Type of the cluster. Note that some migrations are not possible (please refer to product documentation) | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Convert a kapsule cluster to a kapsule-dedicated-16 cluster
Code
Update a Cluster
Update information on a specific Kubernetes cluster. You can update details such as its name, description, tags and configuration. To upgrade a cluster, you will need to use the dedicated endpoint.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster to update | Required |
| name | New external name for the cluster | |
| description | New description for the cluster | |
| tags.{index} | New tags associated with the cluster | |
| autoscaler-config.scale-down-disabled | Forbid cluster autoscaler to scale down the cluster, defaults to false | |
| autoscaler-config.scale-down-delay-after-add | How long after scale up the scale down evaluation resumes | |
| autoscaler-config.estimator | Type of resource estimator to be used in scale up | One of: unknown_estimator, binpacking |
| autoscaler-config.expander | Kubernetes autoscaler strategy to fit pods into nodes, see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expandersOpen in new context for details | One of: unknown_expander, random, most_pods, least_waste, priority, price |
| autoscaler-config.ignore-daemonsets-utilization | Ignore DaemonSet pods when calculating resource utilization for scaling down, defaults to false | |
| autoscaler-config.balance-similar-node-groups | Detect similar node groups and balance the number of nodes between them, defaults to false | |
| autoscaler-config.expendable-pods-priority-cutoff | Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they won't cause scale up. Pods with null priority (PodPriority disabled) are non expendable | |
| autoscaler-config.scale-down-unneeded-time | How long a node should be unneeded before it is eligible for scale down, defaults to 10 minutes | |
| autoscaler-config.scale-down-utilization-threshold | Node utilization level, defined as a sum of requested resources divided by allocatable capacity, below which a node can be considered for scale down | |
| autoscaler-config.max-graceful-termination-sec | Maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node, defaults to 600 (10 minutes) | |
| autoscaler-config.skip-nodes-with-local-storage | Cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath, defaults to true | |
| autoscaler-config.log-level | Cluster autoscaler logging level expressed from 0 to 4 (4 being the more verbose), defaults to 2. see https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#how-can-i-increase-the-information-that-the-ca-is-loggingOpen in new context for details | |
| auto-upgrade.enable | Defines whether auto upgrade is enabled for the cluster | |
| auto-upgrade.maintenance-window.start-hour | Start time of the two-hour maintenance window | |
| auto-upgrade.maintenance-window.day | Day of the week for the maintenance window | One of: any, monday, tuesday, wednesday, thursday, friday, saturday, sunday |
| feature-gates.{index} | List of feature gates to enable | |
| admission-plugins.{index} | List of admission plugins to enable | |
| open-id-connect-config.issuer-url | URL of the provider which allows the API server to discover public signing keys. Only URLs using the https:// scheme are accepted. This is typically the provider's discovery URL without a path, for example "https://accounts.google.comOpen in new context" or "https://login.salesforce.comOpen in new context" | |
| open-id-connect-config.client-id | A client ID that all tokens must be issued for | |
| open-id-connect-config.username-claim | JWT claim to use as the user name. The default is sub, which is expected to be the end user's unique identifier. Admins can choose other claims, such as email or name, depending on their provider. However, claims other than email will be prefixed with the issuer URL to prevent name collision | |
| open-id-connect-config.username-prefix | Prefix prepended to username claims to prevent name collision (such as system: users). For example, the value oidc: will create usernames like oidc:jane.doe. If this flag is not provided and username_claim is a value other than email, the prefix defaults to ( Issuer URL )# where ( Issuer URL ) is the value of issuer_url. The value - can be used to disable all prefixing | |
| open-id-connect-config.groups-claim.{index} | JWT claim to use as the user's group | |
| open-id-connect-config.groups-prefix | Prefix prepended to group claims to prevent name collision (such as system: groups). For example, the value oidc: will create group names like oidc:engineering and oidc:infra | |
| open-id-connect-config.required-claim.{index} | Multiple key=value pairs describing a required claim in the ID token. If set, the claims are verified to be present in the ID token with a matching value | |
| apiserver-cert-sans.{index} | Additional Subject Alternative Names for the Kubernetes API server certificate | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Add InPlacePodVerticalScaling and SidecarContainers as feature gates on a cluster
Code
Remove all custom feature gates on a cluster
Code
Upgrade a Cluster
Upgrade a specific Kubernetes cluster and possibly its associated pools to a specific and supported Kubernetes version.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster to upgrade | Required |
| version | New Kubernetes version of the cluster. Note that the version should either be a higher patch version of the same minor version or the direct minor version after the current one | Required |
| upgrade-pools | Defines whether pools will also be upgraded once the control plane is upgraded | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Upgrade a cluster to version 1.31.2 of Kubernetes (pools are not included)
Code
Upgrade a cluster to version 1.31.2 of Kubernetes (pools are included)
Code
Wait for a cluster to reach a stable state
Wait for server to reach a stable state. This is similar to using --wait flag on other action commands, but without requiring a new action on the server.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster. | Required |
| wait-for-pools | Wait for pools to be ready. | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
| timeout | Timeout of the wait | Default: 10m0s |
Examples:
Wait for a cluster to reach a stable state
Code
Cluster type management commands
All cluster types available in a specified region A cluster type represents the different commercial types of clusters offered by Scaleway.
List cluster types
List available cluster types and their technical details.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil, all |
Manage your Kubernetes Kapsule cluster's kubeconfig files
Retrieve a kubeconfig
Retrieve the kubeconfig for a specified cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID from which to retrieve the kubeconfig | Required |
| auth-method | Which method to use to authenticate using kubelet | Default: cliOne of: cli, copy-cli-token, legacy |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Get the kubeconfig for a given cluster
Code
Get the kubeconfig for a given cluster by copying current secret_key to it
Code
Get the kubeconfig for a given cluster and use legacy authentication
Code
Install a kubeconfig
Retrieve the kubeconfig for a specified cluster and write it on disk. It will merge the new kubeconfig in the file pointed by the KUBECONFIG variable. If empty it will default to $HOME/.kube/config.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID from which to retrieve the kubeconfig | Required |
| auth-method | Which method to use to authenticate using kubelet | Default: cliOne of: cli, copy-cli-token, legacy |
| keep-current-context | Whether or not to keep the current kubeconfig context unmodified | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Install the kubeconfig for a given cluster and using the new context
Code
Get the kubeconfig for a given cluster by copying current secret_key to it
Code
Get the kubeconfig for a given cluster and use legacy authentication
Code
Uninstall a kubeconfig
Remove specified cluster from kubeconfig file specified by the KUBECONFIG env, if empty it will default to $HOME/.kube/config. If the current context points to this cluster, it will be set to an empty context.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID from which to uninstall the kubeconfig | Required |
Examples:
Uninstall the kubeconfig for a given cluster
Code
Kapsule node management commands
A node (short for worker node) is an abstraction for a Scaleway Instance A node is always part of a pool. Each of them has the Kubernetes software automatically installed and configured by Scaleway.
Delete a Node in a Cluster
Delete a specific Node. Pool size is reduced by 1. The node will first be drained and pods will be rescheduled onto another node. Note that when there is not enough space to reschedule all the pods (such as in a one-node cluster, or with specific constraints), disruption of your applications may occur.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| node-id | ID of the node to replace | Required |
| skip-drain | Skip draining node from its workload (Note: this parameter is currently inactive) | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Delete a node
Code
Delete a node without evicting workloads
Code
Get a Node in a Cluster
Retrieve details about a specific Kubernetes Node.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| node-id | ID of the requested node | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Get a node
Code
List Nodes in a Cluster
List all the existing nodes for a specific Kubernetes cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID from which the nodes will be listed from | Required |
| pool-id | Pool ID on which to filter the returned nodes | |
| order-by | Sort order of the returned nodes | One of: created_at_asc, created_at_desc, updated_at_asc, updated_at_desc, name_asc, name_desc, status_asc, status_desc, version_asc, version_desc |
| name | Name to filter on, only nodes containing this substring in their name will be returned | |
| status | Status to filter on, only nodes with this status will be returned | One of: unknown, creating, not_ready, ready, deleting, deleted, locked, rebooting, creation_error, upgrading, starting, registering |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil, all |
Examples:
List all the nodes in the cluster
Code
List all the nodes in the cluster's 22222222-2222-2222-2222-222222222222 pool
Code
List all cluster nodes that are ready
Code
Reboot a Node in a Cluster
Reboot a specific Node. The node will first be drained and pods will be rescheduled onto another node. Note that when there is not enough space to reschedule all the pods (such as in a one-node cluster, or with specific constraints), disruption of your applications may occur.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| node-id | ID of the node to reboot | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Reboot a node
Code
Replace a Node in a Cluster
Replace a specific Node. The node will first be drained and pods will be rescheduled onto another node. Note that when there is not enough space to reschedule all the pods (such as in a one-node cluster, or with specific constraints), disruption of your applications may occur.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| node-id | ID of the node to replace | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Replace a node
Code
Wait for a node to reach a stable state
Wait for a node to reach a stable state. This is similar to using --wait flag on other action commands, but without requiring a new action on the node.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| node-id | ID of the node. | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
| timeout | Timeout of the wait | Default: 10m0s |
Examples:
Wait for a node to reach a stable state
Code
Kapsule pool management commands
A pool is a set of identical nodes A pool has a name, a size (its desired number of nodes), node number limits (min, max), and a Scaleway Instance type. Changing those limits increases/decreases the size of a pool. As a result and depending on its load, the pool will grow or shrink within those limits when autoscaling is enabled.
Add an external node to a Kosmos Pool
Add an external node to a Kosmos Pool. This will connect via SSH to the node, download the multicloud configuration script and run it with sudo privileges. Keep in mind that your external node needs to have wget in order to download the script.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| node-ip | IP address of the external node | Required |
| pool-id | ID of the Pool the node should be added to | Required |
| username | Username used for the SSH connection | Default: root |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Create a new Pool in a Cluster
Create a new pool in a specific Kubernetes cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | Cluster ID to which the pool will be attached | Required |
| name | Pool name | Required Default: <generated> |
| node-type | Node type is the type of Scaleway Instance wanted for the pool. Nodes with insufficient memory are not eligible (DEV1-S, PLAY2-PICO, STARDUST). 'external' is a special node type used to provision instances from other cloud providers in a Kosmos Cluster | Required Default: DEV1-M |
| placement-group-id | Placement group ID in which all the nodes of the pool will be created, placement groups are limited to 20 instances. | |
| autoscaling | Defines whether the autoscaling feature is enabled for the pool | |
| size | Size (number of nodes) of the pool | Required Default: 1 |
| min-size | Defines the minimum size of the pool. Note that this field is only used when autoscaling is enabled on the pool | |
| max-size | Defines the maximum size of the pool. Note that this field is only used when autoscaling is enabled on the pool | |
| container-runtime | Customization of the container runtime is available for each pool | One of: unknown_runtime, docker, containerd, crio |
| autohealing | Defines whether the autohealing feature is enabled for the pool | |
| tags.{index} | Tags associated with the pool, see managing tagsOpen in new context | |
| kubelet-args.{key} | Kubelet arguments to be used by this pool. Note that this feature is experimental | |
| upgrade-policy.max-unavailable | The maximum number of nodes that can be upgrading at the same time | |
| upgrade-policy.max-surge | The maximum number of nodes to be created during the upgrade, e.g. the pool will scale up to reach size+max_surge before downscaling to size after node upgrades | |
| zone | Zone in which the pool's nodes will be spawned | |
| root-volume-type | Defines the system volume disk type. Several types of volume (volume_type) are provided: | One of: default_volume_type, l_ssd, b_ssd, sbs_5k, sbs_15k |
| root-volume-size | System volume disk size | |
| public-ip-disabled | Defines if the public IP should be removed from Nodes. To use this feature, your Cluster must have an attached Private Network set up with a Public Gateway | |
| security-group-id | Security group ID in which all the nodes of the pool will be created. If unset, the pool will use default Kapsule security group in current zone | |
| labels.{key} | Kubernetes labels applied and reconciled on the nodes | |
| taints.{index}.key | The taint key to be applied to a node | |
| taints.{index}.value | The taint value corresponding to the taint key | |
| taints.{index}.effect | Effect defines the effects of Taint | One of: NoSchedule, PreferNoSchedule, NoExecute |
| startup-taints.{index}.key | The taint key to be applied to a node | |
| startup-taints.{index}.value | The taint value corresponding to the taint key | |
| startup-taints.{index}.effect | Effect defines the effects of Taint | One of: NoSchedule, PreferNoSchedule, NoExecute |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Create a pool named 'bar' with 2 DEV1-XL on a cluster
Code
Create a pool named 'fish' with 5 GP1-L, autoscaling within 0 and 10 nodes and autohealing enabled
Code
Create a tagged pool named 'turtle' with 1 GP1-S which is using the already created placement group 22222222-2222-2222-2222-222222222222 for all the nodes in the pool on a cluster
Code
Delete a Pool in a Cluster
Delete a specific pool from a cluster. Note that all the pool's nodes will also be deleted.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool to delete | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Delete a specific pool
Code
Get a Pool in a Cluster
Retrieve details about a specific pool in a Kubernetes cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the requested pool | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Get a given pool
Code
List Pools in a Cluster
List all the existing pools for a specific Kubernetes cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| cluster-id | ID of the cluster whose pools will be listed | Required |
| order-by | Sort order of returned pools | One of: created_at_asc, created_at_desc, updated_at_asc, updated_at_desc, name_asc, name_desc, status_asc, status_desc, version_asc, version_desc |
| name | Name to filter on, only pools containing this substring in their name will be returned | |
| status | Status to filter on, only pools with this status will be returned | One of: unknown, ready, deleting, deleted, scaling, warning, locked, upgrading |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil, all |
Examples:
List all pools for a cluster
Code
List all scaling pools for a cluster
Code
List all pools for clusters containing 'foo' in their name
Code
List all pools for a cluster and order them by ascending creation date
Code
Remove a label from a Pool
Remove a label from all nodes of the pool (only apply to labels which was set through scaleway api).
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool. | Required |
| key | Key of the label. | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Remove a label of a specific pool
Code
Remove a startup taint from a Pool
New nodes will not have this taint at startup (does not remove taints from kubernetes side).
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool. | Required |
| key | Key of the taint. | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Remove a startup taint of a specific pool
Code
Remove a taint from a Pool
Remove a taint from all all nodes of the pool (only apply to taints which was set through scaleway api).
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool. | Required |
| key | Key of the taint. | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Remove a taint to a specific pool
Code
Apply a label to a Pool
Apply a label to all nodes of the pool which will be periodically reconciled by scaleway.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool. | Required |
| key | Key of the label. | Required |
| value | Value of the label. | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Apply a label to a specific pool
Code
Apply a full label to a specific pool
Code
Apply a startup taint to a Pool
Apply a taint at node creation but does not reconcile after.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool. | Required |
| key | Key of the taint. | Required |
| value | Value of the taint. | Required |
| effect | Effect of the taint. | Required One of: NoSchedule, PreferNoSchedule, NoExecute |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Apply a startup taint to a specific pool
Code
Apply a full startup taint to a specific pool
Code
Apply a taint to a Pool
Apply a taint to all nodes of the pool which will be periodically reconciled by scaleway.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool. | Required |
| key | Key of the taint. | Required |
| value | Value of the taint. | Required |
| effect | Effect of the taint. | Required One of: NoSchedule, PreferNoSchedule, NoExecute |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
Examples:
Apply a taint to a specific pool
Code
Apply a full taint to a specific pool
Code
Update a Pool in a Cluster
Update the attributes of a specific pool, such as its desired size, autoscaling settings, and tags. To upgrade a pool, you will need to use the dedicated endpoint.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool to update | Required |
| autoscaling | New value for the pool autoscaling enablement | |
| size | New desired pool size | |
| min-size | New minimum size for the pool | |
| max-size | New maximum size for the pool | |
| autohealing | New value for the pool autohealing enablement | |
| tags.{index} | New tags associated with the pool | |
| kubelet-args.{key} | New Kubelet arguments to be used by this pool. Note that this feature is experimental | |
| upgrade-policy.max-unavailable | New maximum number of nodes that can be upgrading at the same time | |
| upgrade-policy.max-surge | New maximum number of nodes to be created during the upgrade | |
| security-group-id | Security group ID in which all the nodes of the pool will be moved | |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Enable autoscaling on a given pool
Code
Reduce the size and maximum size of a given pool to 4
Code
Modify the tags of a given pool
Code
Remove all tags of a given pool
Code
Upgrade a Pool in a Cluster
Upgrade the Kubernetes version of a specific pool. Note that it only works if the targeted version matches the cluster's version. This will drain and replace the nodes in that pool.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool to upgrade | Required |
| version | New Kubernetes version for the pool | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Upgrade a specific pool to the Kubernetes version 1.31.2
Code
Wait for a pool to reach a stable state
Wait for a pool to reach a stable state. This is similar to using --wait flag on other action commands, but without requiring a new action on the node.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| pool-id | ID of the pool. | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-par |
| timeout | Timeout of the wait | Default: 10m0s |
Examples:
Wait for a pool to reach a stable state
Code
Available Kubernetes versions commands
A version is a vanilla Kubernetes version like x.y.z
It comprises a major version x, a minor version y, and a patch version z. At the minimum, Kapsule (Scaleway's managed Kubernetes), will support the last patch version for the past three minor releases. Also, each version has a different set of CNIs, eventually container runtimes, feature gates, and admission plugins available. See our Version Support PolicyOpen in new context.
Get a Version
Retrieve a specific Kubernetes version and its details.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| version-name | Requested version name | Required |
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
Get the Kubernetes version 1.31.2
Code
List all available Versions
List all available versions for the creation of a new Kubernetes cluster.
Usage:
Code
Arguments:
| Name | Description | Argument Specifications |
|---|---|---|
| region | Region to target. If none is passed will use default region from the config | Default: fr-parOne of: fr-par, nl-ams, pl-waw, it-mil |
Examples:
List all available Kubernetes version in Kapsule
Code