Kapsule APIv1

Download OpenAPI

Introduction

Kubernetes is an open-source platform that enables developers to manage their containerized applications. Scaleway Kubernetes Kapsule and Kosmos are powerful tools to help you manage your containerized workloads and services.

They both provide a managed environment for creating, configuring, and running clusters of pre-configured machines.

The primary difference between Kapsule and Kosmos is that Kapsule clusters are composed solely of Scaleway Instances. In contrast, Kosmos is a managed Multi-Cloud Kubernetes Engine that allows you to connect Instances and virtual or dedicated servers from any cloud provider to a single managed Control-Plane.

Features

  • Persistent Volume Claims (PVC) are available through Scaleway Block Volumes.
  • Pool autoscaling and autohealing is available.
  • Multiple container runtimes available (containerd and crio are considered stable. NB: containerd ships with gvisor for untrusted workloads).
  • Kubernetes auto upgrades features is available.

Refer to our dedicated concepts page to find definitions of all Kubetnetes-related terminology.

Requirements

To perform the following steps, you must first ensure that:

1. Configure your environment variables.

Note: This is an optional step that seeks to simplify your usage of the APIs.

2. Edit the POST request payload you will use to create your Kubernetes cluster. Replace the parameters in the following example:

ParameterDescription
project_idThe ID of the Project you want to create your Kubernetes cluster in. To find your Project ID you can list the projects or consult the Scaleway console.
typeThe type of the cluster (possible values are kapsule, multicloud).
nameREQUIRED Name of the cmister.
descriptionDescription of the cluster.
tagsTags associated with the cluster.
versionREQUIRED Kubernetes version of the cluster.
cniREQUIRED Container Network Interface (CNI) plugin that will run on the cluster. The default value is unknown_cni.
poolsPools to be created along with the cluster.
nameREQUIRED Name of the pool.
node-typeREQUIRED The node type of the Scaleway Instance wanted for the pool.
sizeREQUIRED The number of nodes in the pool.
tagsTags associated with the pool.
zoneAvailability zone in which the pools will be deployed in.
root_volume_typeThe root volume type. The default value is default_volume_type.
root_volume_sizeThe system volume disk size in bytes.
  1. Create a Kapsule cluster and node pool by running the following command. Make sure you include the payload you edited in the previous step.

  2. List your Kapsule Clusters.

You will see detailed information about your clusters.

  1. Download the kubeconfig file for your cluster

    Tip: Add ?dl=1 at the end of the URL to directly get the base64-decoded kubeconfig. If not, the kubeconfig will be base64-encoded.

  2. Connect to your cluster using kubectl.

  3. Delete your cluster.

Scaleway's infrastructure is spread across different regions and Availability Zones.

Kubernetes Kapsule and Kosmos are available in the Paris, Amsterdam and Warsaw regions, which are represented by the following path parameters:

  • fr-par
  • nl-ams
  • pl-waw

Kubernetes Kosmos and Kapsule supports at least the latest version of the last 3 major Kubernetes releases.

  • Clusters can't be isolated in a VPC (Virtual Private Cloud).
  • The maximum of pod per node is 110.
  • All the pools of the cluster must be in the same Availability Zone.

A cluster is a fully managed Kubernetes cluster.

It is composed of different pools, each pool containing the same kind of nodes.

List all clusters

List all the existing Kubernetes clusters in a specific Region.

GET
/k8s/v1/regions/{region}/clusters
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.
Query Parameters

organization_id
string
Organization ID on which to filter the returned clusters.

project_id
string
Project ID on which to filter the returned clusters.

order_by
string
Sort order of the returned clusters. Possible values are created_at_asc, created_at_desc, updated_at_asc, updated_at_desc, name_asc, name_desc, status_asc, status_desc, version_asc and version_desc. The default value is created_at_asc.

page
integer
Page number for the returned clusters. The default value is 1.

page_size
integer
Maximum number of clusters per page. The default value is 20.

name
string
Name on which to filter the returned clusters.

status
string
Status on which to filter the returned clusters. Possible values are unknown, creating, ready, deleting, deleted, updating, locked and pool_required. The default value is unknown.

type
string
Type on which to filter the returned clusters.
200 Response

total_count
integer
Total number of clusters.

clusters
array
Paginated returned clusters.
Response Example

Create a new Kubernetes cluster on a Scaleway account.

POST
/k8s/v1/regions/{region}/clusters
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.
Body

organization_id
deprecated string
Organization ID in which the cluster will be created. Only one of organization_id and project_id may be set.

project_id
required string
Project ID in which the cluster will be created. Only one of organization_id and project_id may be set.

type
string
Type of the cluster. Type of the cluster (possible values are kapsule, multicloud).

name
required string
Name of the cluster.

description
string
Description of the cluster.

tags
array
Tags associated with the cluster.

version
required string
Kubernetes version of the cluster.

cni
required string
Container Network Interface (CNI) plugin that will run in the cluster. Possible values are unknown_cni, cilium, calico, weave, flannel and kilo. The default value is unknown_cni.

enable_dashboard
deprecated boolean
Defines if the Kubernetes Dashboard is enabled in the cluster.

ingress
deprecated string
Ingress Controller that will run in the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

pools
array
Pools to be created along with the cluster.

autoscaler_config
object
Autoscaler config for the cluster. This field allows to specify some configuration for the autoscaler, which is an implementation of the [cluster-autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler/).

auto_upgrade
object
Auto upgrade configuration of the cluster. This configuration enables to set a specific 2-hour time window in which the cluster can be automatically updated to the latest patch version in the current minor one.

feature_gates
array
List of feature gates to enable.

admission_plugins
array
List of admission plugins to enable.

open_id_connect_config
object
ALPHA - OpenID Connect configuration of the cluster. This feature is in ALPHA state, it may be deleted or modified. This configuration enables to set the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) of the Kubernetes API server.

apiserver_cert_sans
array
Additional Subject Alternative Names for the Kubernetes API server certificate.

private_network_id
nullable string
Private network ID for internal cluster communication (cannot be changed later).
Request Example
200 Response

id
string
ID of the cluster.

type
string
Type of the cluster.

name
string
Name of the cluster.

status
string
Status of the cluster. Possible values are unknown, creating, ready, deleting, deleted, updating, locked and pool_required. The default value is unknown.

version
string
Kubernetes version of the cluster.

region
string
Region in which the cluster is deployed.

organization_id
string
ID of the organization owning the cluster.

project_id
string
ID of the project owning the cluster.

tags
array
Tags associated with the cluster.

cni
string
Container Network Interface (CNI) plugin running in the cluster. Possible values are unknown_cni, cilium, calico, weave, flannel and kilo. The default value is unknown_cni.

description
string
Description of the cluster.

cluster_url
string
Kubernetes API server URL of the cluster.

dns_wildcard
string
DNS wildcard resovling all the ready nodes of the cluster.

created_at
nullable string
Date at which the cluster was created. (RFC 3339 format).

updated_at
nullable string
Date at which the cluster was last updated. (RFC 3339 format).

autoscaler_config
object
Autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
Defines whether the Kubernetes dashboard is enabled for the cluster.

ingress
deprecated string
Ingress controller used in the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

auto_upgrade
object
Auto upgrade configuration of the cluster.

upgrade_available
boolean
Defines whether a new Kubernetes version is available.

feature_gates
array
List of enabled feature gates.

admission_plugins
array
List of enabled admission plugins.

open_id_connect_config
object
ALPHA - The OpenID Connect configuration of the cluster. This feature is in ALPHA state, it may be deleted or modified. This configuration is the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) of the Kubernetes API server.

apiserver_cert_sans
array
Additional Subject Alternative Names for the Kubernetes API server certificate.

private_network_id
nullable string
Private network ID for internal cluster communication.
Response Example

Get details about a specific Kubernetes cluster.

GET
/k8s/v1/regions/{region}/clusters/{cluster_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
The ID of the requested cluster.
200 Response

id
string
ID of the cluster.

type
string
Type of the cluster.

name
string
Name of the cluster.

status
string
Status of the cluster. Possible values are unknown, creating, ready, deleting, deleted, updating, locked and pool_required. The default value is unknown.

version
string
Kubernetes version of the cluster.

region
string
Region in which the cluster is deployed.

organization_id
string
ID of the organization owning the cluster.

project_id
string
ID of the project owning the cluster.

tags
array
Tags associated with the cluster.

cni
string
Container Network Interface (CNI) plugin running in the cluster. Possible values are unknown_cni, cilium, calico, weave, flannel and kilo. The default value is unknown_cni.

description
string
Description of the cluster.

cluster_url
string
Kubernetes API server URL of the cluster.

dns_wildcard
string
DNS wildcard resovling all the ready nodes of the cluster.

created_at
nullable string
Date at which the cluster was created. (RFC 3339 format).

updated_at
nullable string
Date at which the cluster was last updated. (RFC 3339 format).

autoscaler_config
object
Autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
Defines whether the Kubernetes dashboard is enabled for the cluster.

ingress
deprecated string
Ingress controller used in the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

auto_upgrade
object
Auto upgrade configuration of the cluster.

upgrade_available
boolean
Defines whether a new Kubernetes version is available.

feature_gates
array
List of enabled feature gates.

admission_plugins
array
List of enabled admission plugins.

open_id_connect_config
object
ALPHA - The OpenID Connect configuration of the cluster. This feature is in ALPHA state, it may be deleted or modified. This configuration is the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) of the Kubernetes API server.

apiserver_cert_sans
array
Additional Subject Alternative Names for the Kubernetes API server certificate.

private_network_id
nullable string
Private network ID for internal cluster communication.
Response Example

Update a specific Kubernetes cluster. Note that this method is designed to update details such as name, description, tags and configuration. However, you cannot upgrade a cluster with this method. To do so, use the dedicated endpoint.

PATCH
/k8s/v1/regions/{region}/clusters/{cluster_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster to update.
Body

name
nullable string
New external name of the cluster.

description
nullable string
New description of the cluster.

tags
nullable array
New tags associated with the cluster.

autoscaler_config
object
New autoscaler config for the cluster. Object defining the configuration for the autoscaler, which is an implementation of the [cluster-autoscaler](https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler/).

enable_dashboard
deprecated boolean
New value of the Kubernetes Dashboard enablement.

ingress
deprecated string
New Ingress Controller for the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

auto_upgrade
object
New auto upgrade configuration of the cluster. New auto upgrade configuration of the cluster. Note that all fields need to be set.

feature_gates
nullable array
List of feature gates to enable.

admission_plugins
nullable array
List of admission plugins to enable.

open_id_connect_config
object
OpenID Connect configuration of the cluster. This configuration enables to update the OpenID Connect configuration of the Kubernetes API server.

apiserver_cert_sans
nullable array
Additional Subject Alternative Names for the Kubernetes API server certificate.
Request Example
200 Response

id
string
ID of the cluster.

type
string
Type of the cluster.

name
string
Name of the cluster.

status
string
Status of the cluster. Possible values are unknown, creating, ready, deleting, deleted, updating, locked and pool_required. The default value is unknown.

version
string
Kubernetes version of the cluster.

region
string
Region in which the cluster is deployed.

organization_id
string
ID of the organization owning the cluster.

project_id
string
ID of the project owning the cluster.

tags
array
Tags associated with the cluster.

cni
string
Container Network Interface (CNI) plugin running in the cluster. Possible values are unknown_cni, cilium, calico, weave, flannel and kilo. The default value is unknown_cni.

description
string
Description of the cluster.

cluster_url
string
Kubernetes API server URL of the cluster.

dns_wildcard
string
DNS wildcard resovling all the ready nodes of the cluster.

created_at
nullable string
Date at which the cluster was created. (RFC 3339 format).

updated_at
nullable string
Date at which the cluster was last updated. (RFC 3339 format).

autoscaler_config
object
Autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
Defines whether the Kubernetes dashboard is enabled for the cluster.

ingress
deprecated string
Ingress controller used in the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

auto_upgrade
object
Auto upgrade configuration of the cluster.

upgrade_available
boolean
Defines whether a new Kubernetes version is available.

feature_gates
array
List of enabled feature gates.

admission_plugins
array
List of enabled admission plugins.

open_id_connect_config
object
ALPHA - The OpenID Connect configuration of the cluster. This feature is in ALPHA state, it may be deleted or modified. This configuration is the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) of the Kubernetes API server.

apiserver_cert_sans
array
Additional Subject Alternative Names for the Kubernetes API server certificate.

private_network_id
nullable string
Private network ID for internal cluster communication.
Response Example

Delete a specific cluster and all its associated pools and nodes. Note that this method will not delete any Load Balancers or Block Volumes that are associated with the cluster.

DELETE
/k8s/v1/regions/{region}/clusters/{cluster_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster to delete.
Query Parameters

with_additional_resources
boolean
Set true if you want to delete all volumes (including retain volume type) and loadbalancers whose name start with cluster ID.
200 Response

id
string
ID of the cluster.

type
string
Type of the cluster.

name
string
Name of the cluster.

status
string
Status of the cluster. Possible values are unknown, creating, ready, deleting, deleted, updating, locked and pool_required. The default value is unknown.

version
string
Kubernetes version of the cluster.

region
string
Region in which the cluster is deployed.

organization_id
string
ID of the organization owning the cluster.

project_id
string
ID of the project owning the cluster.

tags
array
Tags associated with the cluster.

cni
string
Container Network Interface (CNI) plugin running in the cluster. Possible values are unknown_cni, cilium, calico, weave, flannel and kilo. The default value is unknown_cni.

description
string
Description of the cluster.

cluster_url
string
Kubernetes API server URL of the cluster.

dns_wildcard
string
DNS wildcard resovling all the ready nodes of the cluster.

created_at
nullable string
Date at which the cluster was created. (RFC 3339 format).

updated_at
nullable string
Date at which the cluster was last updated. (RFC 3339 format).

autoscaler_config
object
Autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
Defines whether the Kubernetes dashboard is enabled for the cluster.

ingress
deprecated string
Ingress controller used in the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

auto_upgrade
object
Auto upgrade configuration of the cluster.

upgrade_available
boolean
Defines whether a new Kubernetes version is available.

feature_gates
array
List of enabled feature gates.

admission_plugins
array
List of enabled admission plugins.

open_id_connect_config
object
ALPHA - The OpenID Connect configuration of the cluster. This feature is in ALPHA state, it may be deleted or modified. This configuration is the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) of the Kubernetes API server.

apiserver_cert_sans
array
Additional Subject Alternative Names for the Kubernetes API server certificate.

private_network_id
nullable string
Private network ID for internal cluster communication.
Response Example

List the versions that a specific Kubernetes cluster is allowed to upgrade to. Results will comprise 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.

GET
/k8s/v1/regions/{region}/clusters/{cluster_id}/available-versions
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster which the available Kuberentes versions will be listed from.
200 Response

versions
array
Available Kubernetes version for the cluster.
Response Example

Download the Kubernetes cluster config file (AKA kubeconfig) for a specific cluster in order to use it with, for instance, kubectl. Tips: add ?dl=1 at the end of the URL to directly get the base64 decoded kubeconfig. If not, the kubeconfig will be base64 encoded.

GET
/k8s/v1/regions/{region}/clusters/{cluster_id}/kubeconfig
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster to download the kubeconfig from.
200 Response

name
string

content_type
string

content
string
Response Example

Reset the admin token for a specific Kubernetes cluster. This will invalidate the old admin token (which will not be usable afterwards) and create a new one. Note that you will need to redownload kubeconfig in order to keep interacting with the cluster.

POST
/k8s/v1/regions/{region}/clusters/{cluster_id}/reset-admin-token
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster on which the admin token will be renewed.
Body

Request Example
204 Response

Empty response

Change type of a specific Kubernetes cluster.

POST
/k8s/v1/regions/{region}/clusters/{cluster_id}/set-type
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster to migrate from one type to another.
Body

type
required string
Type of the cluster. Type of the cluster. Note that some migrations are not possible (please refer to product documentation).
Request Example
200 Response

id
string
ID of the cluster.

type
string
Type of the cluster.

name
string
Name of the cluster.

status
string
Status of the cluster. Possible values are unknown, creating, ready, deleting, deleted, updating, locked and pool_required. The default value is unknown.

version
string
Kubernetes version of the cluster.

region
string
Region in which the cluster is deployed.

organization_id
string
ID of the organization owning the cluster.

project_id
string
ID of the project owning the cluster.

tags
array
Tags associated with the cluster.

cni
string
Container Network Interface (CNI) plugin running in the cluster. Possible values are unknown_cni, cilium, calico, weave, flannel and kilo. The default value is unknown_cni.

description
string
Description of the cluster.

cluster_url
string
Kubernetes API server URL of the cluster.

dns_wildcard
string
DNS wildcard resovling all the ready nodes of the cluster.

created_at
nullable string
Date at which the cluster was created. (RFC 3339 format).

updated_at
nullable string
Date at which the cluster was last updated. (RFC 3339 format).

autoscaler_config
object
Autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
Defines whether the Kubernetes dashboard is enabled for the cluster.

ingress
deprecated string
Ingress controller used in the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

auto_upgrade
object
Auto upgrade configuration of the cluster.

upgrade_available
boolean
Defines whether a new Kubernetes version is available.

feature_gates
array
List of enabled feature gates.

admission_plugins
array
List of enabled admission plugins.

open_id_connect_config
object
ALPHA - The OpenID Connect configuration of the cluster. This feature is in ALPHA state, it may be deleted or modified. This configuration is the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) of the Kubernetes API server.

apiserver_cert_sans
array
Additional Subject Alternative Names for the Kubernetes API server certificate.

private_network_id
nullable string
Private network ID for internal cluster communication.
Response Example

Upgrade a specific Kubernetes cluster and/or its associated pools to a specific and supported Kubernetes version.

POST
/k8s/v1/regions/{region}/clusters/{cluster_id}/upgrade
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster to upgrade.
Body

version
required string
New Kubernetes version of the cluster. New Kubernetes version of the cluster. Note that the version shoud either be a higher patch version of the same minor version or the direct minor version after the current one.

upgrade_pools
boolean
Enablement of the pools upgrade. This field also trigger pools upgrade once the control plane is upgraded.
Request Example
200 Response

id
string
ID of the cluster.

type
string
Type of the cluster.

name
string
Name of the cluster.

status
string
Status of the cluster. Possible values are unknown, creating, ready, deleting, deleted, updating, locked and pool_required. The default value is unknown.

version
string
Kubernetes version of the cluster.

region
string
Region in which the cluster is deployed.

organization_id
string
ID of the organization owning the cluster.

project_id
string
ID of the project owning the cluster.

tags
array
Tags associated with the cluster.

cni
string
Container Network Interface (CNI) plugin running in the cluster. Possible values are unknown_cni, cilium, calico, weave, flannel and kilo. The default value is unknown_cni.

description
string
Description of the cluster.

cluster_url
string
Kubernetes API server URL of the cluster.

dns_wildcard
string
DNS wildcard resovling all the ready nodes of the cluster.

created_at
nullable string
Date at which the cluster was created. (RFC 3339 format).

updated_at
nullable string
Date at which the cluster was last updated. (RFC 3339 format).

autoscaler_config
object
Autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
Defines whether the Kubernetes dashboard is enabled for the cluster.

ingress
deprecated string
Ingress controller used in the cluster. Possible values are unknown_ingress, none, nginx, traefik and traefik2. The default value is unknown_ingress.

auto_upgrade
object
Auto upgrade configuration of the cluster.

upgrade_available
boolean
Defines whether a new Kubernetes version is available.

feature_gates
array
List of enabled feature gates.

admission_plugins
array
List of enabled admission plugins.

open_id_connect_config
object
ALPHA - The OpenID Connect configuration of the cluster. This feature is in ALPHA state, it may be deleted or modified. This configuration is the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) of the Kubernetes API server.

apiserver_cert_sans
array
Additional Subject Alternative Names for the Kubernetes API server certificate.

private_network_id
nullable string
Private network ID for internal cluster communication.
Response Example

A pool is a set of identical nodes. A pool has a name, a size (its current number of nodes), node number limits (min, max), and a Scaleway Instance type. Changing those limits increases/decreases the size of a pool. Thus, the pool will grow or shrink inside those limits when autoscaling is enabled, depending on its load. A "default pool" is automatically created with every cluster.

List all the existing pools for a specific Kubernetes cluster.

GET
/k8s/v1/regions/{region}/clusters/{cluster_id}/pools
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster from which the pools will be listed from.
Query Parameters

order_by
string
Sort order of the returned pools. Possible values are created_at_asc, created_at_desc, updated_at_asc, updated_at_desc, name_asc, name_desc, status_asc, status_desc, version_asc and version_desc. The default value is created_at_asc.

page
integer
Page number for the returned pools. The default value is 1.

page_size
integer
Maximum number of pools per page. The default value is 20.

name
string
Name on which to filter the returned pools.

status
string
Status on which to filter the returned pools. Possible values are unknown, ready, deleting, deleted, scaling, warning, locked and upgrading. The default value is unknown.
200 Response

total_count
integer
Total number of pools that exists for the cluster.

pools
array
Paginated returned pools.
Response Example

Create a new pool in a specific Kubernetes cluster.

POST
/k8s/v1/regions/{region}/clusters/{cluster_id}/pools
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
ID of the cluster in which the pool will be created.
Body

name
required string
Name of the pool.

node_type
required string
Node type is the type of Scaleway Instance wanted for the pool. 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.

placement_group_id
nullable string
Placement group ID in which all the nodes of the pool will be created.

autoscaling
boolean
Defines whether the autoscaling feature is enabled for the pool.

size
required integer
Size (number of nodes) of the pool.

min_size
nullable integer
Minimum size of the pool. Defines the minimum size of the pool. Note that this field will be used only when autoscaling is enabled.

max_size
nullable integer
Maximum size of the pool. Defines the maximum size of the pool. Note that this field will be used only when autoscaling is enabled.

container_runtime
string
Container runtime for the nodes of the pool. Customization of the container runtime is available for each pool. Note that `docker` is deprecated since 1.20 and will be removed in 1.24. Possible values are unknown_runtime, docker, containerd and crio. The default value is unknown_runtime.

autohealing
boolean
Defines whether the autohealing feature is enabled for the pool.

tags
array
Tags associated with the pool.

kubelet_args
map
Kubelet arguments to be used by this pool. Note that this feature is to be considered as experimental.

upgrade_policy
object
Pool upgrade policy.

zone
string
Zone in which the pool's nodes will be spawned.

root_volume_type
string
System volume disk type. Defines the system volume disk type, we provide two different types of volume (`volume_type`): `l_ssd` is a local block storage: your system is stored locally on the hypervisor of your node. `b_ssd` is a remote block storage: your system is stored on a centralised and resilient cluster. Possible values are default_volume_type, l_ssd and b_ssd. The default value is default_volume_type.

root_volume_size
nullable integer
System volume disk size. (in bytes).
Request Example
200 Response

id
string
ID of the pool.

cluster_id
string
Cluster ID of the pool.

created_at
nullable string
Date at which the pool was created. (RFC 3339 format).

updated_at
nullable string
Date at which the pool was last updated. (RFC 3339 format).

name
string
Name of the pool.

status
string
Status of the pool. Possible values are unknown, ready, deleting, deleted, scaling, warning, locked and upgrading. The default value is unknown.

version
string
Version of the pool.

node_type
required string
Node type is the type of Scaleway Instance wanted for the pool. 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.

autoscaling
boolean
Defines whether the autoscaling feature is enabled for the pool.

size
required integer
Size (number of nodes) of the pool.

min_size
integer
Minimum size of the pool. Defines the minimum size of the pool. Note that this field will be used only when autoscaling is enabled.

max_size
integer
Maximum size of the pool. Defines the maximum size of the pool. Note that this field will be used only when autoscaling is enabled.

container_runtime
string
Container runtime for the nodes of the pool. Customization of the container runtime is available for each pool. Note that `docker` is deprecated since 1.20 and will be removed in 1.24. Possible values are unknown_runtime, docker, containerd and crio. The default value is unknown_runtime.

autohealing
boolean
Defines whether the autohealing feature is enabled for the pool.

tags
array
Tags associated with the pool.

placement_group_id
nullable string
Placement group ID in which all the nodes of the pool will be created.

kubelet_args
map
Kubelet arguments to be used by this pool. Note that this feature is to be considered as experimental.

upgrade_policy
object
Pool upgrade policy.

zone
string
Zone in which the pool's nodes will be spawned.

root_volume_type
string
System volume disk type. Defines the system volume disk type, we provide two different types of volume (`volume_type`): `l_ssd` is a local block storage: your system is stored locally on the hypervisor of your node. `b_ssd` is a remote block storage: your system is stored on a centralised and resilient cluster. Possible values are default_volume_type, l_ssd and b_ssd. The default value is default_volume_type.

root_volume_size
nullable integer
System volume disk size. (in bytes).

region
string
Cluster region of the pool.
Response Example

Get details about a specific pool in a Kubernetes cluster.

GET
/k8s/v1/regions/{region}/pools/{pool_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

pool_id
required string
ID of the requested pool.
200 Response

id
string
ID of the pool.

cluster_id
string
Cluster ID of the pool.

created_at
nullable string
Date at which the pool was created. (RFC 3339 format).

updated_at
nullable string
Date at which the pool was last updated. (RFC 3339 format).

name
string
Name of the pool.

status
string
Status of the pool. Possible values are unknown, ready, deleting, deleted, scaling, warning, locked and upgrading. The default value is unknown.

version
string
Version of the pool.

node_type
required string
Node type is the type of Scaleway Instance wanted for the pool. 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.

autoscaling
boolean
Defines whether the autoscaling feature is enabled for the pool.

size
required integer
Size (number of nodes) of the pool.

min_size
integer
Minimum size of the pool. Defines the minimum size of the pool. Note that this field will be used only when autoscaling is enabled.

max_size
integer
Maximum size of the pool. Defines the maximum size of the pool. Note that this field will be used only when autoscaling is enabled.

container_runtime
string
Container runtime for the nodes of the pool. Customization of the container runtime is available for each pool. Note that `docker` is deprecated since 1.20 and will be removed in 1.24. Possible values are unknown_runtime, docker, containerd and crio. The default value is unknown_runtime.

autohealing
boolean
Defines whether the autohealing feature is enabled for the pool.

tags
array
Tags associated with the pool.

placement_group_id
nullable string
Placement group ID in which all the nodes of the pool will be created.

kubelet_args
map
Kubelet arguments to be used by this pool. Note that this feature is to be considered as experimental.

upgrade_policy
object
Pool upgrade policy.

zone
string
Zone in which the pool's nodes will be spawned.

root_volume_type
string
System volume disk type. Defines the system volume disk type, we provide two different types of volume (`volume_type`): `l_ssd` is a local block storage: your system is stored locally on the hypervisor of your node. `b_ssd` is a remote block storage: your system is stored on a centralised and resilient cluster. Possible values are default_volume_type, l_ssd and b_ssd. The default value is default_volume_type.

root_volume_size
nullable integer
System volume disk size. (in bytes).

region
string
Cluster region of the pool.
Response Example

Update attributes of a specific pool, such as size, autoscaling settings, and tags.

PATCH
/k8s/v1/regions/{region}/pools/{pool_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

pool_id
required string
ID of the pool to update.
Body

autoscaling
nullable boolean
New value for the enablement of autoscaling for the pool.

size
nullable integer
New size for the pool.

min_size
nullable integer
New minimun size for the pool.

max_size
nullable integer
New maximum size for the pool.

autohealing
nullable boolean
New value for the enablement of autohealing for the pool.

tags
nullable array
New tags associated with the pool.

kubelet_args
nullable object
New Kubelet arguments to be used by this pool. Note that this feature is to be considered as experimental.

upgrade_policy
object
Upgrade policy for the pool.
Request Example
200 Response

id
string
ID of the pool.

cluster_id
string
Cluster ID of the pool.

created_at
nullable string
Date at which the pool was created. (RFC 3339 format).

updated_at
nullable string
Date at which the pool was last updated. (RFC 3339 format).

name
string
Name of the pool.

status
string
Status of the pool. Possible values are unknown, ready, deleting, deleted, scaling, warning, locked and upgrading. The default value is unknown.

version
string
Version of the pool.

node_type
required string
Node type is the type of Scaleway Instance wanted for the pool. 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.

autoscaling
boolean
Defines whether the autoscaling feature is enabled for the pool.

size
required integer
Size (number of nodes) of the pool.

min_size
integer
Minimum size of the pool. Defines the minimum size of the pool. Note that this field will be used only when autoscaling is enabled.

max_size
integer
Maximum size of the pool. Defines the maximum size of the pool. Note that this field will be used only when autoscaling is enabled.

container_runtime
string
Container runtime for the nodes of the pool. Customization of the container runtime is available for each pool. Note that `docker` is deprecated since 1.20 and will be removed in 1.24. Possible values are unknown_runtime, docker, containerd and crio. The default value is unknown_runtime.

autohealing
boolean
Defines whether the autohealing feature is enabled for the pool.

tags
array
Tags associated with the pool.

placement_group_id
nullable string
Placement group ID in which all the nodes of the pool will be created.

kubelet_args
map
Kubelet arguments to be used by this pool. Note that this feature is to be considered as experimental.

upgrade_policy
object
Pool upgrade policy.

zone
string
Zone in which the pool's nodes will be spawned.

root_volume_type
string
System volume disk type. Defines the system volume disk type, we provide two different types of volume (`volume_type`): `l_ssd` is a local block storage: your system is stored locally on the hypervisor of your node. `b_ssd` is a remote block storage: your system is stored on a centralised and resilient cluster. Possible values are default_volume_type, l_ssd and b_ssd. The default value is default_volume_type.

root_volume_size
nullable integer
System volume disk size. (in bytes).

region
string
Cluster region of the pool.
Response Example

Delete a specific pool from a cluster. All of the pool's nodes will also be deleted.

DELETE
/k8s/v1/regions/{region}/pools/{pool_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

pool_id
required string
ID of the pool to delete.
200 Response

id
string
ID of the pool.

cluster_id
string
Cluster ID of the pool.

created_at
nullable string
Date at which the pool was created. (RFC 3339 format).

updated_at
nullable string
Date at which the pool was last updated. (RFC 3339 format).

name
string
Name of the pool.

status
string
Status of the pool. Possible values are unknown, ready, deleting, deleted, scaling, warning, locked and upgrading. The default value is unknown.

version
string
Version of the pool.

node_type
required string
Node type is the type of Scaleway Instance wanted for the pool. 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.

autoscaling
boolean
Defines whether the autoscaling feature is enabled for the pool.

size
required integer
Size (number of nodes) of the pool.

min_size
integer
Minimum size of the pool. Defines the minimum size of the pool. Note that this field will be used only when autoscaling is enabled.

max_size
integer
Maximum size of the pool. Defines the maximum size of the pool. Note that this field will be used only when autoscaling is enabled.

container_runtime
string
Container runtime for the nodes of the pool. Customization of the container runtime is available for each pool. Note that `docker` is deprecated since 1.20 and will be removed in 1.24. Possible values are unknown_runtime, docker, containerd and crio. The default value is unknown_runtime.

autohealing
boolean
Defines whether the autohealing feature is enabled for the pool.

tags
array
Tags associated with the pool.

placement_group_id
nullable string
Placement group ID in which all the nodes of the pool will be created.

kubelet_args
map
Kubelet arguments to be used by this pool. Note that this feature is to be considered as experimental.

upgrade_policy
object
Pool upgrade policy.

zone
string
Zone in which the pool's nodes will be spawned.

root_volume_type
string
System volume disk type. Defines the system volume disk type, we provide two different types of volume (`volume_type`): `l_ssd` is a local block storage: your system is stored locally on the hypervisor of your node. `b_ssd` is a remote block storage: your system is stored on a centralised and resilient cluster. Possible values are default_volume_type, l_ssd and b_ssd. The default value is default_volume_type.

root_volume_size
nullable integer
System volume disk size. (in bytes).

region
string
Cluster region of the pool.
Response Example

Upgrade the Kubernetes version of a specific pool. Note that this will work when the targeted version is the same than the version of the cluster.

POST
/k8s/v1/regions/{region}/pools/{pool_id}/upgrade
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

pool_id
required string
ID of the pool to upgrade.
Body

version
required string
New Kubernetes version for the pool.
Request Example
200 Response

id
string
ID of the pool.

cluster_id
string
Cluster ID of the pool.

created_at
nullable string
Date at which the pool was created. (RFC 3339 format).

updated_at
nullable string
Date at which the pool was last updated. (RFC 3339 format).

name
string
Name of the pool.

status
string
Status of the pool. Possible values are unknown, ready, deleting, deleted, scaling, warning, locked and upgrading. The default value is unknown.

version
string
Version of the pool.

node_type
required string
Node type is the type of Scaleway Instance wanted for the pool. 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.

autoscaling
boolean
Defines whether the autoscaling feature is enabled for the pool.

size
required integer
Size (number of nodes) of the pool.

min_size
integer
Minimum size of the pool. Defines the minimum size of the pool. Note that this field will be used only when autoscaling is enabled.

max_size
integer
Maximum size of the pool. Defines the maximum size of the pool. Note that this field will be used only when autoscaling is enabled.

container_runtime
string
Container runtime for the nodes of the pool. Customization of the container runtime is available for each pool. Note that `docker` is deprecated since 1.20 and will be removed in 1.24. Possible values are unknown_runtime, docker, containerd and crio. The default value is unknown_runtime.

autohealing
boolean
Defines whether the autohealing feature is enabled for the pool.

tags
array
Tags associated with the pool.

placement_group_id
nullable string
Placement group ID in which all the nodes of the pool will be created.

kubelet_args
map
Kubelet arguments to be used by this pool. Note that this feature is to be considered as experimental.

upgrade_policy
object
Pool upgrade policy.

zone
string
Zone in which the pool's nodes will be spawned.

root_volume_type
string
System volume disk type. Defines the system volume disk type, we provide two different types of volume (`volume_type`): `l_ssd` is a local block storage: your system is stored locally on the hypervisor of your node. `b_ssd` is a remote block storage: your system is stored on a centralised and resilient cluster. Possible values are default_volume_type, l_ssd and b_ssd. The default value is default_volume_type.

root_volume_size
nullable integer
System volume disk size. (in bytes).

region
string
Cluster region of the pool.
Response Example

A node (short for worker node) is an abstraction for a Scaleway Instance. A node is always part of a pool. Each of them will have Kubernetes software automatically installed and configured by Scaleway. Please note that Kubernetes nodes cannot be accessed with SSH.

List all the existing nodes for a specific Kubernetes cluster.

GET
/k8s/v1/regions/{region}/clusters/{cluster_id}/nodes
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

cluster_id
required string
Cluster ID from which the nodes will be listed from.
Query Parameters

pool_id
string
Pool ID on which to filter the returned nodes.

order_by
string
Sort order of the returned nodes. Possible values are created_at_asc and created_at_desc. The default value is created_at_asc.

page
integer
Page number for the returned nodes. The default value is 1.

page_size
integer
Maximum number of nodes per page. The default value is 20.

name
string
Name on which to filter the returned nodes.

status
string
Status on which to filter the returned nodes. Possible values are unknown, creating, not_ready, ready, deleting, deleted, locked, rebooting, creation_error, upgrading, starting and registering. The default value is unknown.
200 Response

total_count
integer
Total number of nodes.

nodes
array
Paginated returned nodes.
Response Example

Get details about a specific Kubernetes node.

GET
/k8s/v1/regions/{region}/nodes/{node_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

node_id
required string
ID of the requested node.
200 Response

id
string
ID of the node.

pool_id
string
Pool ID of the node.

cluster_id
string
Cluster ID of the node.

provider_id
string
Underlying instance ID. It is prefixed by instance type and location information (see https://pkg.go.dev/k8s.io/api/core/v1#NodeSpec.ProviderID).

region
string
Cluster region of the node.

name
string
Name of the node.

public_ip_v4
deprecated string
Public IPv4 address of the node. (IPv4 address).

public_ip_v6
deprecated string
Public IPv6 address of the node. (IPv6 address).

conditions
deprecated map
Conditions of the node. These conditions contains the Node Problem Detector conditions, as well as some in house conditions.

status
string
Status of the node. Possible values are unknown, creating, not_ready, ready, deleting, deleted, locked, rebooting, creation_error, upgrading, starting and registering. The default value is unknown.

error_message
nullable string
Details of the error, if any occured when managing the node.

created_at
nullable string
Date on which the node was created. (RFC 3339 format).

updated_at
nullable string
Date at which the node was last updated. (RFC 3339 format).
Response Example

Delete a specific node. Note that when there is not enough space to reschedule all the pods (in a one-node cluster for instance), you may experience some disruption of your applications.

DELETE
/k8s/v1/regions/{region}/nodes/{node_id}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

node_id
required string
ID of the node to replace.
Query Parameters

skip_drain
boolean
Skip draining node from its workload.

replace
boolean
Add a new node after the deletion of this node.
200 Response

id
string
ID of the node.

pool_id
string
Pool ID of the node.

cluster_id
string
Cluster ID of the node.

provider_id
string
Underlying instance ID. It is prefixed by instance type and location information (see https://pkg.go.dev/k8s.io/api/core/v1#NodeSpec.ProviderID).

region
string
Cluster region of the node.

name
string
Name of the node.

public_ip_v4
deprecated string
Public IPv4 address of the node. (IPv4 address).

public_ip_v6
deprecated string
Public IPv6 address of the node. (IPv6 address).

conditions
deprecated map
Conditions of the node. These conditions contains the Node Problem Detector conditions, as well as some in house conditions.

status
string
Status of the node. Possible values are unknown, creating, not_ready, ready, deleting, deleted, locked, rebooting, creation_error, upgrading, starting and registering. The default value is unknown.

error_message
nullable string
Details of the error, if any occured when managing the node.

created_at
nullable string
Date on which the node was created. (RFC 3339 format).

updated_at
nullable string
Date at which the node was last updated. (RFC 3339 format).
Response Example

Reboot a specific node. This node will first be cordoned, meaning that scheduling will be disabled. Then the existing pods on the node will be drained and rescheduled onto another schedulable node. Note that when there is not enough space to reschedule all the pods (in a one-node cluster, for instance), you may experience some disruption of your applications.

POST
/k8s/v1/regions/{region}/nodes/{node_id}/reboot
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

node_id
required string
ID of the node to reboot.
Body

Request Example
200 Response

id
string
ID of the node.

pool_id
string
Pool ID of the node.

cluster_id
string
Cluster ID of the node.

provider_id
string
Underlying instance ID. It is prefixed by instance type and location information (see https://pkg.go.dev/k8s.io/api/core/v1#NodeSpec.ProviderID).

region
string
Cluster region of the node.

name
string
Name of the node.

public_ip_v4
deprecated string
Public IPv4 address of the node. (IPv4 address).

public_ip_v6
deprecated string
Public IPv6 address of the node. (IPv6 address).

conditions
deprecated map
Conditions of the node. These conditions contains the Node Problem Detector conditions, as well as some in house conditions.

status
string
Status of the node. Possible values are unknown, creating, not_ready, ready, deleting, deleted, locked, rebooting, creation_error, upgrading, starting and registering. The default value is unknown.

error_message
nullable string
Details of the error, if any occured when managing the node.

created_at
nullable string
Date on which the node was created. (RFC 3339 format).

updated_at
nullable string
Date at which the node was last updated. (RFC 3339 format).
Response Example

Get metadata about a Kosmos node. This method is not intended to be directly called by end users, only by the kapsule-node-agent.

POST
/k8s/v1/regions/{region}/pools/{pool_id}/external-nodes
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

pool_id
required string
Body

Request Example
200 Response

id
string

name
string

cluster_url
string

cluster_version
string

cluster_ca
string

kube_token
string

kubelet_config
string
Response Example

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. Scaleway's managed Kubernetes, Kapsule, will support at minimum the last patch version for the last three minor releases. Also, each version has a different set of container runtimes, CNIs, ingresses, feature gates, and admission plugins available.

List all available versions for the creation of a new Kubernetes cluster.

GET
/k8s/v1/regions/{region}/versions
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.
200 Response

versions
array
Available Kubernetes versions.
Response Example

Get a specific Kubernetes version and the details about the version.

GET
/k8s/v1/regions/{region}/versions/{version_name}
Path Parameters

region
required string
The region you want to target. Possible values are fr-par, nl-ams and pl-waw.

version_name
required string
Requested version name.
200 Response

name
string
Name of the Kubernetes version.

label
string
Label of the Kubernetes version.

region
string
Region in which this version is available.

available_cnis
array
Supported Container Network Interface (CNI) plugins for this version.

available_ingresses
deprecated array
Supported Ingress Controllers for this version.

available_container_runtimes
array
Supported container runtimes for this version.

available_feature_gates
array
Supported feature gates for this version.

available_admission_plugins
array
Supported admission plugins for this version.

available_kubelet_args
map
Supported kubelet arguments for this version.
Response Example