Kapsule APIv1

Download OpenAPI

Introduction

Kubernetes Kapsule by Scaleway is a managed, production-ready environment for deploying, managing and scaling containerized applications. It installs and operates Kubernetes Clusters, allowing you to get up and running with them in no time.

"Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available." -- What is kubernetes

Features

  • Persistent Volume Claims (PVC) are available through Scaleway Block Volumes.
  • Pool autoscaling and autohealing is available.
  • Multiple container runtimes available (docker is deprecated and will be removed in release 1.24, containerd and crio are considered stable. NB: containerd ships with gvisor for untrusted workloads).
  • Kubernetes auto upgrades features is available.
  • 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 Availibility Zone.

This API allows you to:

  • create, update and delete a Kubernetes cluster
  • manage cluster resources using node pools

The Cluster Master directs the worker nodes, making scheduling decisions, responding to events, implementing changes, and monitoring the Cluster. Its components (kube-apiserver, kube-scheduler and kube-controller-manager) are managed by Scaleway to ensure the Master remains highly available. Consequently, you cannot set your own parameters on the Kubernetes api-server, controller-manager and scheduler. Scaleway takes care of your control plane: its health is continuously monitored and watched by a dedicated team. Its availability enables the Master to get upgraded or rebooted without any downtime, and the team can perform maintenance operations on your clusters in total transparency.

kube-apiserver

Component on the master that exposes the Kubernetes API. It is the front-end for the Kubernetes control plane. It is managed by Scaleway.

Component on the master that watches newly created pods that have no assigned node, and selects a node for them to run on. It is managed by Scaleway.

Component on the master that runs controllers of Kubernetes. It is managed by Scaleway.

Scaleway Load Balancers are used to route requests toward the multiple control-plane replicas. This enables high availability for your Cluster.

Consistent and highly-available key value store used as Kubernetes backing store for all cluster data.

The Cloud Controller Manager runs controllers that interact with Scaleway cloud, allowing to create load balancer objects and to retrieve information about your cluster (node public IP, node location, node commercial type...)

Deamon that reports nodes statuses to the orchestrator, allowing -for instance- healing actions when a node has been down for a certain period of time.

Cluster resources (i.e. nodes) are managed within pools. A pool has a name (optional), a size (its current number of nodes), and nodes number limits (min, max). Changing those limits increases/decreases the size of a pool. Thus, when autoscaling is enabled, the pool will grow or shrink inside those limits, depending on its cluster load. A "default pool" is automatically created with every Cluster and can't be deleted.

A Node (short for Worker Node) is an abstraction for a Scaleway instance. It is part of a pool and is instantiated by Scaleway, making Kubernetes software installed and configured automatically on it. Please note that Kubernetes nodes cannot be accessed with ssh.

Container Network Interface (https://github.com/containernetworking/cni) is a standard designed to ease configuration of container networking at their creation/deletion. Various projects have been released to address Kubernetes networking requirements and provide the networking features that cluster administrators require. Kubernetes Kapsule supports the following CNI plugins : cilium (https://cilium.io/), flannel (https://github.com/coreos/flannel), calico (https://github.com/projectcalico/cni-plugin) & weave (https://www.weave.works/oss/net/).

A cluster is a fully managed Kubernetes cluster.

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

List all the clusters

This method allows to list all the existing Kubernetes clusters in an account.

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
nullable string
The organization ID on which to filter the returned clusters.

project_id
nullable string
The project ID on which to filter the returned clusters.

order_by
string
The 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
The page number for the returned clusters. The default value is 1.

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

name
nullable string
The name on which to filter the returned clusters.

status
string
The 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
nullable string
The type on which to filter the returned clusters.
200 Response

total_count
integer
The total number of clusters.

clusters
array
The paginated returned clusters.
Response Example

This method allows to create a new Kubernetes cluster on an 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
The organization ID where the cluster will be created. Only one of organization_id and project_id may be set.

project_id
required string
The project ID where the cluster will be created. Only one of organization_id and project_id may be set.

type
string
The type of the cluster.

name
required string
The name of the cluster.

description
string
The description of the cluster.

tags
array
The tags associated with the cluster.

version
required string
The Kubernetes version of the cluster.

cni
required string
The 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
The enablement of the Kubernetes Dashboard in the cluster.

ingress
deprecated string
The 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
The pools to be created along with the cluster.

autoscaler_config
object
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
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
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.
Request Example
200 Response

id
string
The ID of the cluster.

type
string
The type of the cluster.

name
string
The name of the cluster.

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

version
string
The Kubernetes version of the cluster.

region
string
The region in which the cluster is.

organization_id
string
The ID of the organization owning the cluster.

project_id
string
The ID of the project owning the cluster.

tags
array
The tags associated with the cluster.

cni
string
The 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
The description of the cluster.

cluster_url
string
The Kubernetes API server URL of the cluster.

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

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

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

autoscaler_config
object
The autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
The enablement of the Kubernetes Dashboard in the cluster.

ingress
deprecated string
The 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
The auo upgrade configuration of the cluster.

upgrade_available
boolean
True if 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
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.
Response Example

This method allows to 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
The ID of the cluster.

type
string
The type of the cluster.

name
string
The name of the cluster.

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

version
string
The Kubernetes version of the cluster.

region
string
The region in which the cluster is.

organization_id
string
The ID of the organization owning the cluster.

project_id
string
The ID of the project owning the cluster.

tags
array
The tags associated with the cluster.

cni
string
The 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
The description of the cluster.

cluster_url
string
The Kubernetes API server URL of the cluster.

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

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

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

autoscaler_config
object
The autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
The enablement of the Kubernetes Dashboard in the cluster.

ingress
deprecated string
The 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
The auo upgrade configuration of the cluster.

upgrade_available
boolean
True if 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
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.
Response Example

This method allows to update a specific Kubernetes cluster. Note that this method is not made to upgrade a Kubernetes cluster.

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
The ID of the cluster to update.
Body

name
nullable string
This field allows to update the external name of the cluster. The internal name (used for instance in hostname) won't change.

description
nullable string
The new description of the cluster.

tags
nullable array
The new tags associated with the cluster.

autoscaler_config
object
This field allows to update some 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
The new value of the Kubernetes Dashboard enablement.

ingress
deprecated string
The 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
The 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
This feature is in ALPHA state, it may be deleted or modified. This configuration enables to update the [OpenID Connect configuration](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#openid-connect-tokens) 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
The ID of the cluster.

type
string
The type of the cluster.

name
string
The name of the cluster.

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

version
string
The Kubernetes version of the cluster.

region
string
The region in which the cluster is.

organization_id
string
The ID of the organization owning the cluster.

project_id
string
The ID of the project owning the cluster.

tags
array
The tags associated with the cluster.

cni
string
The 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
The description of the cluster.

cluster_url
string
The Kubernetes API server URL of the cluster.

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

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

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

autoscaler_config
object
The autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
The enablement of the Kubernetes Dashboard in the cluster.

ingress
deprecated string
The 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
The auo upgrade configuration of the cluster.

upgrade_available
boolean
True if 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
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.
Response Example

This method allows to 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
The 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
The ID of the cluster.

type
string
The type of the cluster.

name
string
The name of the cluster.

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

version
string
The Kubernetes version of the cluster.

region
string
The region in which the cluster is.

organization_id
string
The ID of the organization owning the cluster.

project_id
string
The ID of the project owning the cluster.

tags
array
The tags associated with the cluster.

cni
string
The 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
The description of the cluster.

cluster_url
string
The Kubernetes API server URL of the cluster.

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

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

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

autoscaler_config
object
The autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
The enablement of the Kubernetes Dashboard in the cluster.

ingress
deprecated string
The 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
The auo upgrade configuration of the cluster.

upgrade_available
boolean
True if 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
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.
Response Example

This method allows to list the versions that a specific Kubernetes cluster is allowed to upgrade to. Note that it will be every patch version greater than the actual one as well a one minor version ahead of the actual one. Upgrades 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
The ID of the cluster which the available Kuberentes versions will be listed from.
200 Response

versions
array
The available Kubernetes version for the cluster.
Response Example

This method allows to 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
The ID of the cluster to download the kubeconfig from.
200 Response

name
string

content_type
string

content
string
Response Example

This method allows to reset the admin token for a specific Kubernetes cluster. This will invalidate the old admin token (which will not be usable after) and create a new one. Note that the redownload of the kubeconfig will be necessary to keep interacting with the cluster (if the old admin token was used).

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
The ID of the cluster of which the admin token will be renewed.
Body

Request Example
204 Response

Empty response

This method allows to 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
The ID of the cluster to upgrade.
Body

version
required string
The 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
This field makes the upgrade upgrades the pool once the Kubernetes master in upgrade.
Request Example
200 Response

id
string
The ID of the cluster.

type
string
The type of the cluster.

name
string
The name of the cluster.

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

version
string
The Kubernetes version of the cluster.

region
string
The region in which the cluster is.

organization_id
string
The ID of the organization owning the cluster.

project_id
string
The ID of the project owning the cluster.

tags
array
The tags associated with the cluster.

cni
string
The 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
The description of the cluster.

cluster_url
string
The Kubernetes API server URL of the cluster.

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

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

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

autoscaler_config
object
The autoscaler config for the cluster.

dashboard_enabled
deprecated boolean
The enablement of the Kubernetes Dashboard in the cluster.

ingress
deprecated string
The 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
The auo upgrade configuration of the cluster.

upgrade_available
boolean
True if 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
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.
Response Example

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

This method allows to 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
The ID of the cluster from which the pools will be listed from.
Query Parameters

order_by
string
The 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
The page number for the returned pools. The default value is 1.

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

name
nullable string
The name on which to filter the returned pools.

status
string
The 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
The total number of pools that exists for the cluster.

pools
array
The paginated returned pools.
Response Example

This method allows to 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
The ID of the cluster in which the pool will be created.
Body

name
required string
The name of the pool.

node_type
required string
The 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
The placement group ID in which all the nodes of the pool will be created.

autoscaling
boolean
The enablement of the autoscaling feature for the pool.

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

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

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

container_runtime
string
The 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
The enablement of the autohealing feature for the pool.

tags
array
The tags associated with the pool.

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

upgrade_policy
object
The Pool upgrade policy.

zone
string
The Zone in which the Pool's node will be spawn in.

root_volume_type
string
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
The system volume disk size (in bytes).
Request Example
200 Response

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

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

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

name
string
The name of the pool.

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

version
string
The version of the pool.

node_type
required string
The 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
The enablement of the autoscaling feature for the pool.

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

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

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

container_runtime
string
The 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
The enablement of the autohealing feature for the pool.

tags
array
The tags associated with the pool.

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

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

upgrade_policy
object
The Pool upgrade policy.

zone
string
The Zone in which the Pool's node will be spawn in.

root_volume_type
string
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
The system volume disk size (in bytes).

region
string
The cluster region of the pool.
Response Example

This method allows to get details about a specific pool.

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
The ID of the requested pool.
200 Response

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

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

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

name
string
The name of the pool.

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

version
string
The version of the pool.

node_type
required string
The 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
The enablement of the autoscaling feature for the pool.

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

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

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

container_runtime
string
The 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
The enablement of the autohealing feature for the pool.

tags
array
The tags associated with the pool.

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

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

upgrade_policy
object
The Pool upgrade policy.

zone
string
The Zone in which the Pool's node will be spawn in.

root_volume_type
string
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
The system volume disk size (in bytes).

region
string
The cluster region of the pool.
Response Example

This method allows to update some attributes of a specific pool such as the size, the autoscaling enablement, the 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
The ID of the pool to update.
Body

autoscaling
nullable boolean
The new value for the enablement of autoscaling for the pool.

size
nullable integer
The new size for the pool.

min_size
nullable integer
The new minimun size for the pool.

max_size
nullable integer
The new maximum size for the pool.

autohealing
nullable boolean
The new value for the enablement of autohealing for the pool.

tags
nullable array
The new tags associated with the pool.

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

upgrade_policy
object
The Pool upgrade policy.
Request Example
200 Response

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

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

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

name
string
The name of the pool.

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

version
string
The version of the pool.

node_type
required string
The 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
The enablement of the autoscaling feature for the pool.

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

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

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

container_runtime
string
The 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
The enablement of the autohealing feature for the pool.

tags
array
The tags associated with the pool.

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

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

upgrade_policy
object
The Pool upgrade policy.

zone
string
The Zone in which the Pool's node will be spawn in.

root_volume_type
string
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
The system volume disk size (in bytes).

region
string
The cluster region of the pool.
Response Example

This method allows to delete a specific pool from a cluster, deleting all the nodes associated with it.

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
The ID of the pool to delete.
200 Response

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

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

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

name
string
The name of the pool.

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

version
string
The version of the pool.

node_type
required string
The 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
The enablement of the autoscaling feature for the pool.

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

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

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

container_runtime
string
The 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
The enablement of the autohealing feature for the pool.

tags
array
The tags associated with the pool.

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

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

upgrade_policy
object
The Pool upgrade policy.

zone
string
The Zone in which the Pool's node will be spawn in.

root_volume_type
string
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
The system volume disk size (in bytes).

region
string
The cluster region of the pool.
Response Example

This method allows to 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
The ID of the pool to upgrade.
Body

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

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

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

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

name
string
The name of the pool.

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

version
string
The version of the pool.

node_type
required string
The 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
The enablement of the autoscaling feature for the pool.

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

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

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

container_runtime
string
The 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
The enablement of the autohealing feature for the pool.

tags
array
The tags associated with the pool.

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

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

upgrade_policy
object
The Pool upgrade policy.

zone
string
The Zone in which the Pool's node will be spawn in.

root_volume_type
string
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
The system volume disk size (in bytes).

region
string
The cluster region of the pool.
Response Example

A node (short for worker node) is an abstraction for a Scaleway Instance. It is part of a pool and is instantiated by Scaleway, making Kubernetes software installed and configured automatically on it. Please note that Kubernetes nodes cannot be accessed with ssh.

This method allows to 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
The cluster ID from which the nodes will be listed from.
Query Parameters

pool_id
nullable string
The pool ID on which to filter the returned nodes.

order_by
string
The 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
The page number for the returned nodes. The default value is 1.

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

name
nullable string
The name on which to filter the returned nodes.

status
string
The 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
The total number of nodes.

nodes
array
The paginated returned nodes.
Response Example

This method allows to 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
The ID of the requested node.
200 Response

id
string
The ID of the node.

pool_id
string
The pool ID of the node.

cluster_id
string
The cluster ID of the node.

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

region
string
The cluster region of the node.

name
string
The name of the node.

public_ip_v4
deprecated string
The public IPv4 address of the node (IPv4 address).

public_ip_v6
deprecated string
The public IPv6 address of the node (IPv6 address).

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

status
string
The 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
The date at which the node was created (RFC 3339 format).

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

This method allows to 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
The 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
The ID of the node.

pool_id
string
The pool ID of the node.

cluster_id
string
The cluster ID of the node.

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

region
string
The cluster region of the node.

name
string
The name of the node.

public_ip_v4
deprecated string
The public IPv4 address of the node (IPv4 address).

public_ip_v6
deprecated string
The public IPv6 address of the node (IPv6 address).

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

status
string
The 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
The date at which the node was created (RFC 3339 format).

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

This method allows to reboot a specific node. This node will frist be cordoned, meaning that scheduling will be disabled. Then the existing pods on the node will be drained and reschedule 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
The ID of the node to reboot.
Body

Request Example
200 Response

id
string
The ID of the node.

pool_id
string
The pool ID of the node.

cluster_id
string
The cluster ID of the node.

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

region
string
The cluster region of the node.

name
string
The name of the node.

public_ip_v4
deprecated string
The public IPv4 address of the node (IPv4 address).

public_ip_v6
deprecated string
The public IPv6 address of the node (IPv6 address).

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

status
string
The 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
The date at which the node was created (RFC 3339 format).

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

A version is a vanilla Kubernetes version like x.y.z. It is composed of a major version x, a minor version y and a patch version z. Scaleway's managed Kubernetes, Kapsule, will at least support the last patch version for the last three minor release.

Also each version have a different set of container runtimes, CNIs, ingresses, feature gates and admission plugins available.

This method allows to 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
The available Kubernetes versions.
Response Example

This method allows to 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
The requested version name.
200 Response

name
string
The name of the Kubernetes version.

label
string
The label of the Kubernetes version.

region
string
The region in which this version is available.

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

available_ingresses
deprecated array
The supported Ingress Controllers for this version.

available_container_runtimes
array
The supported container runtimes for this version.

available_feature_gates
array
The supported feature gates for this version.

available_admission_plugins
array
The supported admission plugins for this version.

available_kubelet_args
map
The supported kubelet arguments for this version.
Response Example