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

  • Persistant Volume Claims (PVC) are available through Scaleway Block Volumes.
  • Pool autoscaling and autohealing is available.
  • Multiple container runtimes available (Only docker is officially supported, containerd and crio are experimental. NB: containerd ships with gvisor for untrusted workloads).
  • Kubernetes auto upgrades features is available.
  • Kapsule is only available in PAR1 datacenter
  • Clusters can't be isolated in a VPC (Virtual Private Cloud).
  • The maximum of pod per node is 110.

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/). Flannel plugin is installed by default, but yo can customize your cluster picking the one that suits your need.

A cluster is a fully managed Kubernetes cluster.

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

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 value is fr-par.
Query Parameters

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

page_size
number
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.
200 Response

total_count
number
The total number of clusters.

clusters
array
The paginated returned clusters.
id
string
The ID 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.

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 and flannel. 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
string
The date at which the cluster was created.

updated_at
string
The date at which the cluster was last updated.

autoscaler_config
object
The autoscaler config for the cluster.
scale_down_disabled
boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
string
How long a node should be unneeded before it is eligible for scale down.

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

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

auto_upgrade
object
The auo upgrade configuration of the cluster.
enabled
boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

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.
Response Example
{
"total_count": 42,
"clusters": [
{
"id": "string",
"name": "string",
"status": "unknown",
"version": "string",
"region": "string",
"organization_id": "string",
"tags": [
"string"
],
"cni": "unknown_cni",
"description": "string",
"cluster_url": "string",
"dns_wildcard": "string",
"created_at": "string",
"updated_at": "string",
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"dashboard_enabled": "boolean",
"ingress": "unknown_ingress",
"auto_upgrade": {
"enabled": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"upgrade_available": "boolean",
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}
]
}

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 value is fr-par.
Body

organization_id
required string
The organization ID where the cluster will be created.

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 and flannel. The default value is unknown_cni.

enable_dashboard
boolean
The enablement of the Kubernetes Dashboard in the cluster.

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

pools
array
The pools to be created along with the cluster.
name
string

node_type
required string
The node type is the type of Scaleway Instance wanted for the pool.

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 number
The size (number of nodes) of the pool.

min_size
nullable number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
nullable number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.

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/).
scale_down_disabled
nullable boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
nullable string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
nullable boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
nullable boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
nullable number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
nullable string
How long a node should be unneeded before it is eligible for scale down.

auto_upgrade
object
This configuratiom enables to set a speicific 2-hour time window in which the cluster can be automatically updated to the latest patch version in the current minor one.
enable
boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

feature_gates
array
List of feature gates to enable.

admission_plugins
array
List of admission plugins to enable.
Request Example
{
"organization_id": "string",
"name": "string",
"description": "string",
"tags": [
"string"
],
"version": "string",
"cni": "unknown_cni",
"enable_dashboard": "boolean",
"ingress": "unknown_ingress",
"pools": [
{
"name": "string",
"node_type": "string",
"placement_group_id": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
]
}
],
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"auto_upgrade": {
"enable": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}
200 Response

id
string
The ID 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.

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 and flannel. 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
string
The date at which the cluster was created.

updated_at
string
The date at which the cluster was last updated.

autoscaler_config
object
The autoscaler config for the cluster.
scale_down_disabled
boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
string
How long a node should be unneeded before it is eligible for scale down.

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

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

auto_upgrade
object
The auo upgrade configuration of the cluster.
enabled
boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

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.
Response Example
{
"id": "string",
"name": "string",
"status": "unknown",
"version": "string",
"region": "string",
"organization_id": "string",
"tags": [
"string"
],
"cni": "unknown_cni",
"description": "string",
"cluster_url": "string",
"dns_wildcard": "string",
"created_at": "string",
"updated_at": "string",
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"dashboard_enabled": "boolean",
"ingress": "unknown_ingress",
"auto_upgrade": {
"enabled": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"upgrade_available": "boolean",
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}

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 value is fr-par.

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

id
string
The ID 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.

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 and flannel. 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
string
The date at which the cluster was created.

updated_at
string
The date at which the cluster was last updated.

autoscaler_config
object
The autoscaler config for the cluster.
scale_down_disabled
boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
string
How long a node should be unneeded before it is eligible for scale down.

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

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

auto_upgrade
object
The auo upgrade configuration of the cluster.
enabled
boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

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.
Response Example
{
"id": "string",
"name": "string",
"status": "unknown",
"version": "string",
"region": "string",
"organization_id": "string",
"tags": [
"string"
],
"cni": "unknown_cni",
"description": "string",
"cluster_url": "string",
"dns_wildcard": "string",
"created_at": "string",
"updated_at": "string",
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"dashboard_enabled": "boolean",
"ingress": "unknown_ingress",
"auto_upgrade": {
"enabled": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"upgrade_available": "boolean",
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}

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 value is fr-par.

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/).
scale_down_disabled
nullable boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
nullable string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
nullable boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
nullable boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
nullable number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
nullable string
How long a node should be unneeded before it is eligible for scale down.

enable_dashboard
nullable boolean
The new value of the Kubernetes Dashboard enablement.

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

auto_upgrade
object
The new auo upgrade configuration of the cluster. Note that all the fields needs to be set.
enable
nullable boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

feature_gates
nullable array
List of feature gates to enable.

admission_plugins
nullable array
List of admission plugins to enable.
Request Example
{
"name": "string",
"description": "string",
"tags": [
"string"
],
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"enable_dashboard": "boolean",
"ingress": "unknown_ingress",
"auto_upgrade": {
"enable": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}
200 Response

id
string
The ID 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.

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 and flannel. 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
string
The date at which the cluster was created.

updated_at
string
The date at which the cluster was last updated.

autoscaler_config
object
The autoscaler config for the cluster.
scale_down_disabled
boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
string
How long a node should be unneeded before it is eligible for scale down.

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

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

auto_upgrade
object
The auo upgrade configuration of the cluster.
enabled
boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

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.
Response Example
{
"id": "string",
"name": "string",
"status": "unknown",
"version": "string",
"region": "string",
"organization_id": "string",
"tags": [
"string"
],
"cni": "unknown_cni",
"description": "string",
"cluster_url": "string",
"dns_wildcard": "string",
"created_at": "string",
"updated_at": "string",
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"dashboard_enabled": "boolean",
"ingress": "unknown_ingress",
"auto_upgrade": {
"enabled": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"upgrade_available": "boolean",
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}

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 value is fr-par.

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.

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.

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 and flannel. 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
string
The date at which the cluster was created.

updated_at
string
The date at which the cluster was last updated.

autoscaler_config
object
The autoscaler config for the cluster.
scale_down_disabled
boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
string
How long a node should be unneeded before it is eligible for scale down.

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

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

auto_upgrade
object
The auo upgrade configuration of the cluster.
enabled
boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

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.
Response Example
{
"id": "string",
"name": "string",
"status": "unknown",
"version": "string",
"region": "string",
"organization_id": "string",
"tags": [
"string"
],
"cni": "unknown_cni",
"description": "string",
"cluster_url": "string",
"dns_wildcard": "string",
"created_at": "string",
"updated_at": "string",
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"dashboard_enabled": "boolean",
"ingress": "unknown_ingress",
"auto_upgrade": {
"enabled": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"upgrade_available": "boolean",
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}

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 value is fr-par.

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.
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
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.
Response Example
{
"versions": [
{
"name": "string",
"label": "string",
"region": "string",
"available_cnis": [
"unknown_cni"
],
"available_ingresses": [
"unknown_ingress"
],
"available_container_runtimes": [
"unknown_runtime"
],
"available_feature_gates": [
"string"
],
"available_admission_plugins": [
"string"
]
}
]
}

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 value is fr-par.

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
{
"name": "string",
"content_type": "string",
"content": "string"
}

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 value is fr-par.

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 value is fr-par.

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
{
"version": "string",
"upgrade_pools": "boolean"
}
200 Response

id
string
The ID 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.

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 and flannel. 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
string
The date at which the cluster was created.

updated_at
string
The date at which the cluster was last updated.

autoscaler_config
object
The autoscaler config for the cluster.
scale_down_disabled
boolean
Disable the cluster autoscaler.

scale_down_delay_after_add
string
How long after scale up that scale down evaluation resumes.

estimator
string
Type of resource estimator to be used in scale up. Possible values are unknown_estimator and binpacking. The default value is unknown_estimator.

expander
string
Type of node group expander to be used in scale up. Possible values are unknown_expander, random, most_pods, least_waste and priority. The default value is unknown_expander.

ignore_daemonsets_utilization
boolean
Ignore DaemonSet pods when calculating resource utilization for scaling down.

balance_similar_node_groups
boolean
Detect similar node groups and balance the number of nodes between them.

expendable_pods_priority_cutoff
number
Pods with priority below cutoff will be expendable. They can be killed without any consideration during scale down and they don't cause scale up. Pods with null priority (PodPriority disabled) are non expendable.

scale_down_unneeded_time
string
How long a node should be unneeded before it is eligible for scale down.

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

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

auto_upgrade
object
The auo upgrade configuration of the cluster.
enabled
boolean
Whether or not auto upgrade is enabled for the cluster.

maintenance_window
object
The maintenance window of the cluster auto upgrades.
start_hour
number
The start hour of the 2-hour maintenance window.

day
string
The day of the week for the maintenance window. Possible values are any, monday, tuesday, wednesday, thursday, friday, saturday and sunday. The default value is any.

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.
Response Example
{
"id": "string",
"name": "string",
"status": "unknown",
"version": "string",
"region": "string",
"organization_id": "string",
"tags": [
"string"
],
"cni": "unknown_cni",
"description": "string",
"cluster_url": "string",
"dns_wildcard": "string",
"created_at": "string",
"updated_at": "string",
"autoscaler_config": {
"scale_down_disabled": "boolean",
"scale_down_delay_after_add": "string",
"estimator": "unknown_estimator",
"expander": "unknown_expander",
"ignore_daemonsets_utilization": "boolean",
"balance_similar_node_groups": "boolean",
"expendable_pods_priority_cutoff": 42,
"scale_down_unneeded_time": "string"
},
"dashboard_enabled": "boolean",
"ingress": "unknown_ingress",
"auto_upgrade": {
"enabled": "boolean",
"maintenance_window": {
"start_hour": 42,
"day": "any"
}
},
"upgrade_available": "boolean",
"feature_gates": [
"string"
],
"admission_plugins": [
"string"
]
}

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 value is fr-par.

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

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

pools
array
The paginated returned pools.
id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

created_at
string
The date at which the pool was created.

updated_at
string
The date at which the pool was last updated.

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.

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

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

min_size
number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.

region
string
The cluster region of the pool.
Response Example
{
"total_count": 42,
"pools": [
{
"id": "string",
"cluster_id": "string",
"created_at": "string",
"updated_at": "string",
"name": "string",
"status": "unknown",
"version": "string",
"node_type": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
],
"placement_group_id": "string",
"region": "string"
}
]
}

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 value is fr-par.

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.

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 number
The size (number of nodes) of the pool.

min_size
nullable number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
nullable number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.
Request Example
{
"name": "string",
"node_type": "string",
"placement_group_id": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
]
}
200 Response

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

created_at
string
The date at which the pool was created.

updated_at
string
The date at which the pool was last updated.

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.

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

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

min_size
number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.

region
string
The cluster region of the pool.
Response Example
{
"id": "string",
"cluster_id": "string",
"created_at": "string",
"updated_at": "string",
"name": "string",
"status": "unknown",
"version": "string",
"node_type": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
],
"placement_group_id": "string",
"region": "string"
}

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 value is fr-par.

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
string
The date at which the pool was created.

updated_at
string
The date at which the pool was last updated.

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.

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

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

min_size
number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.

region
string
The cluster region of the pool.
Response Example
{
"id": "string",
"cluster_id": "string",
"created_at": "string",
"updated_at": "string",
"name": "string",
"status": "unknown",
"version": "string",
"node_type": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
],
"placement_group_id": "string",
"region": "string"
}

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 value is fr-par.

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 number
The new size for the pool.

min_size
nullable number
The new minimun size for the pool.

max_size
nullable number
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.
Request Example
{
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"autohealing": "boolean",
"tags": [
"string"
]
}
200 Response

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

created_at
string
The date at which the pool was created.

updated_at
string
The date at which the pool was last updated.

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.

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

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

min_size
number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.

region
string
The cluster region of the pool.
Response Example
{
"id": "string",
"cluster_id": "string",
"created_at": "string",
"updated_at": "string",
"name": "string",
"status": "unknown",
"version": "string",
"node_type": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
],
"placement_group_id": "string",
"region": "string"
}

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 value is fr-par.

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
string
The date at which the pool was created.

updated_at
string
The date at which the pool was last updated.

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.

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

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

min_size
number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.

region
string
The cluster region of the pool.
Response Example
{
"id": "string",
"cluster_id": "string",
"created_at": "string",
"updated_at": "string",
"name": "string",
"status": "unknown",
"version": "string",
"node_type": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
],
"placement_group_id": "string",
"region": "string"
}

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 value is fr-par.

pool_id
required string
The ID of the pool to upgrade.
Body

version
required string
The new Kubernetes version for the pool.
Request Example
{
"version": "string"
}
200 Response

id
string
The ID of the pool.

cluster_id
string
The cluster ID of the pool.

created_at
string
The date at which the pool was created.

updated_at
string
The date at which the pool was last updated.

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.

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

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

min_size
number
The minimun size of the pool. Note that this fields will be used only when autoscaling is enabled.

max_size
number
The maximum size of the pool. Note that this fields 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 the only supporter runtime at the moment. Others are to be considered experimental. . 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.

region
string
The cluster region of the pool.
Response Example
{
"id": "string",
"cluster_id": "string",
"created_at": "string",
"updated_at": "string",
"name": "string",
"status": "unknown",
"version": "string",
"node_type": "string",
"autoscaling": "boolean",
"size": 42,
"min_size": 42,
"max_size": 42,
"container_runtime": "unknown_runtime",
"autohealing": "boolean",
"tags": [
"string"
],
"placement_group_id": "string",
"region": "string"
}

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 value is fr-par.

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

page_size
number
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 and creation_error. The default value is unknown.
200 Response

total_count
number
The total number of nodes.

nodes
array
The paginated returned nodes.
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.

region
string
The cluster region of the node.

name
string
The name of the node.

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

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

conditions
map
These conditions contains the Node Problem Detector conditions, as well as some in house conditions.
<conditionKey>
string

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

created_at
string
The date at which the node was created.

updated_at
string
The date at which the node was last updated.
Response Example
{
"total_count": 42,
"nodes": [
{
"id": "string",
"pool_id": "string",
"cluster_id": "string",
"region": "string",
"name": "string",
"public_ip_v4": "1.2.3.4",
"public_ip_v6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
"conditions": {
"<conditionKey>": "string"
},
"status": "unknown",
"created_at": "string",
"updated_at": "string"
}
]
}

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 value is fr-par.

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.

region
string
The cluster region of the node.

name
string
The name of the node.

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

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

conditions
map
These conditions contains the Node Problem Detector conditions, as well as some in house conditions.
<conditionKey>
string

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

created_at
string
The date at which the node was created.

updated_at
string
The date at which the node was last updated.
Response Example
{
"id": "string",
"pool_id": "string",
"cluster_id": "string",
"region": "string",
"name": "string",
"public_ip_v4": "1.2.3.4",
"public_ip_v6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
"conditions": {
"<conditionKey>": "string"
},
"status": "unknown",
"created_at": "string",
"updated_at": "string"
}

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 value is fr-par.

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.

region
string
The cluster region of the node.

name
string
The name of the node.

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

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

conditions
map
These conditions contains the Node Problem Detector conditions, as well as some in house conditions.
<conditionKey>
string

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

created_at
string
The date at which the node was created.

updated_at
string
The date at which the node was last updated.
Response Example
{
"id": "string",
"pool_id": "string",
"cluster_id": "string",
"region": "string",
"name": "string",
"public_ip_v4": "1.2.3.4",
"public_ip_v6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
"conditions": {
"<conditionKey>": "string"
},
"status": "unknown",
"created_at": "string",
"updated_at": "string"
}

This method allows to replace a specific node. The node will be set cordoned, meaning that scheduling will be disabled. Then the existing pods on the node will be drained and reschedule onto another schedulable node. Then the node will be deleted, and a new one will be created after the deletion. 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}/replace
Path Parameters

region
required string
The region you want to target. Possible value is fr-par.

node_id
required string
The ID of the node to replace.
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.

region
string
The cluster region of the node.

name
string
The name of the node.

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

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

conditions
map
These conditions contains the Node Problem Detector conditions, as well as some in house conditions.
<conditionKey>
string

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

created_at
string
The date at which the node was created.

updated_at
string
The date at which the node was last updated.
Response Example
{
"id": "string",
"pool_id": "string",
"cluster_id": "string",
"region": "string",
"name": "string",
"public_ip_v4": "1.2.3.4",
"public_ip_v6": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
"conditions": {
"<conditionKey>": "string"
},
"status": "unknown",
"created_at": "string",
"updated_at": "string"
}

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 value is fr-par.
200 Response

versions
array
The available Kubernetes versions.
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
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.
Response Example
{
"versions": [
{
"name": "string",
"label": "string",
"region": "string",
"available_cnis": [
"unknown_cni"
],
"available_ingresses": [
"unknown_ingress"
],
"available_container_runtimes": [
"unknown_runtime"
],
"available_feature_gates": [
"string"
],
"available_admission_plugins": [
"string"
]
}
]
}

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 value is fr-par.

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
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.
Response Example
{
"name": "string",
"label": "string",
"region": "string",
"available_cnis": [
"unknown_cni"
],
"available_ingresses": [
"unknown_ingress"
],
"available_container_runtimes": [
"unknown_runtime"
],
"available_feature_gates": [
"string"
],
"available_admission_plugins": [
"string"
]
}