Cluster
Clusters are managed Kubernetes control planes.
create-sks-cluster
Create an SKS cluster
POST /sks-clusterRequest body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
level | string | yes | Cluster service level Allowed values: starter, pro. |
name | string | yes | Cluster name |
version | string | yes | Control plane Kubernetes version |
addons | array[string] | no | Cluster addons |
audit | object | no | Kubernetes Audit parameters schema details |
auto-upgrade | boolean | no | Enable auto upgrade of the control plane to the latest patch version available |
cni | string | no | Cluster CNI Allowed values: calico, cilium. |
create-default-security-group | boolean | no | Creates an ad-hoc security group based on the choice of the selected CNI |
description | string | no | Cluster description |
enable-kube-proxy | boolean | no | Indicates whether to deploy the Kubernetes network proxy. When unspecified, defaults to true unless Cilium CNI is selected |
feature-gates | array[string] | no | A list of Kubernetes-only Alpha features to enable for API server component |
labels | object | no | Cluster Labels |
networking | object | no | Cluster networking configuration. schema details |
oidc | object | no | SKS Cluster OpenID config map schema details |
Example
{
"addons": [
"exoscale-cloud-controller"
],
"audit": {
"bearer-token": "string",
"endpoint": "string",
"initial-backoff": "string"
},
"auto-upgrade": true,
"cni": "calico",
"create-default-security-group": true,
"description": "string",
"enable-kube-proxy": true,
"feature-gates": [
"string"
],
"labels": {},
"level": "starter",
"name": "string",
"networking": {
"cluster-cidr": "string",
"node-cidr-mask-size-ipv4": 0,
"node-cidr-mask-size-ipv6": 0,
"service-cluster-ip-range": "string"
},
"oidc": {
"client-id": "string",
"groups-claim": "string",
"groups-prefix": "string",
"issuer-url": "string",
"required-claim": {},
"username-claim": "string",
"username-prefix": "string"
},
"version": "string"
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for create-sks-cluster: golang | Python | Java
CLI: exo api create-sks-cluster
get-sks-cluster
Retrieve SKS cluster details
GET /sks-cluster/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
addons | array[string] | Cluster addons |
audit | object | Kubernetes Audit parameters schema details |
auto-upgrade | boolean | Enable auto upgrade of the control plane to the latest patch version available |
cni | string | Cluster CNI Allowed values: calico, cilium. |
created-at | string | Cluster creation date |
description | string | Cluster description |
enable-kube-proxy | boolean | Indicates whether to deploy the Kubernetes network proxy. |
enable-operators-ca | boolean | Indicates whether to add operators certificate authority (CA) as part of trusted CAs for the API server. |
endpoint | string | Cluster endpoint |
feature-gates | array[string] | A list of Kubernetes-only Alpha features to enable for API server component |
id | string | Cluster ID |
labels | object | Cluster labels |
level | string | Cluster level Allowed values: starter, pro. |
name | string | Cluster name |
nodepools | array[object] | Cluster Nodepools schema details |
state | string | Cluster state Allowed values: rotating-csi-credentials, rotating-ccm-credentials, creating, upgrading, deleting, running, suspending, updating, error, rotating-karpenter-credentials, resuming. |
version | string | Control plane Kubernetes version |
Example output
{
"addons": [
"exoscale-cloud-controller"
],
"audit": {
"enabled": true,
"endpoint": "string",
"initial-backoff": "string"
},
"auto-upgrade": true,
"cni": "calico",
"created-at": "2024-01-01T12:00:00Z",
"description": "string",
"enable-kube-proxy": true,
"enable-operators-ca": true,
"endpoint": "string",
"feature-gates": [
"string"
],
"id": "string",
"labels": {},
"level": "starter",
"name": "string",
"nodepools": [
{
"addons": [
"storage-lvm"
],
"anti-affinity-groups": [
{
"description": "string",
"id": "string",
"instances": [
null
],
"name": "string"
}
],
"created-at": "2024-01-01T12:00:00Z",
"deploy-target": {
"description": "string",
"id": "string",
"name": "string",
"type": "edge"
},
"description": "string",
"disk-size": 0,
"id": "string",
"instance-pool": {
"anti-affinity-groups": [
{
"description": null,
"id": null,
"instances": null,
"name": null
}
],
"application-consistent-snapshot-enabled": true,
"deploy-target": {
"description": "string",
"id": "string",
"name": "string",
"type": "edge"
},
"description": "string",
"disk-size": 0,
"elastic-ips": [
{
"addressfamily": null,
"cidr": null,
"description": null,
"healthcheck": null,
"id": null,
"ip": null,
"labels": null
}
],
"id": "string",
"instance-prefix": "string",
"instance-type": {
"authorized": true,
"cpus": 0,
"family": "gpu3",
"gpus": 0,
"id": "string",
"memory": 0,
"size": "large",
"zones": [
null
]
},
"instances": [
{
"anti-affinity-groups": null,
"application-consistent-snapshot-enabled": null,
"created-at": null,
"deploy-target": null,
"disk-size": null,
"elastic-ips": null,
"id": null,
"instance-type": null,
"ipv6-address": null,
"labels": null,
"mac-address": null,
"manager": null,
"name": null,
"private-networks": null,
"public-ip": null,
"public-ip-assignment": null,
"secureboot-enabled": null,
"security-groups": null,
"snapshots": null,
"ssh-key": null,
"ssh-keys": null,
"state": null,
"template": null,
"tpm-enabled": null,
"user-data": null
}
],
"ipv6-enabled": true,
"labels": {},
"manager": {
"id": "string",
"type": "sks-nodepool"
},
"min-available": 0,
"name": "string",
"private-networks": [
{
"description": null,
"end-ip": null,
"id": null,
"labels": null,
"leases": null,
"name": null,
"netmask": null,
"options": null,
"start-ip": null,
"vni": null
}
],
"public-ip-assignment": "inet4",
"security-groups": [
{
"description": null,
"external-sources": null,
"id": null,
"name": null,
"rules": null
}
],
"size": 0,
"ssh-key": {
"fingerprint": "string",
"name": "string"
},
"ssh-keys": [
{
"fingerprint": null,
"name": null
}
],
"state": "scaling-up",
"template": {
"application-consistent-snapshot-enabled": true,
"boot-mode": "legacy",
"build": "string",
"checksum": "string",
"created-at": "2024-01-01T12:00:00Z",
"default-user": "string",
"description": "string",
"family": "string",
"id": "string",
"maintainer": "string",
"name": "string",
"password-enabled": true,
"size": 0,
"ssh-key-enabled": true,
"url": "string",
"version": "string",
"visibility": "private",
"zones": [
null
]
},
"user-data": "string"
},
"instance-prefix": "string",
"instance-type": {
"authorized": true,
"cpus": 0,
"family": "gpu3",
"gpus": 0,
"id": "string",
"memory": 0,
"size": "large",
"zones": [
"ch-dk-2"
]
},
"kubelet-image-gc": {
"high-threshold": 0,
"low-threshold": 0,
"min-age": "string"
},
"labels": {},
"name": "string",
"private-networks": [
{
"description": "string",
"end-ip": "string",
"id": "string",
"labels": {},
"leases": [
null
],
"name": "string",
"netmask": "string",
"options": {
"dns-servers": null,
"domain-search": null,
"ntp-servers": null,
"routers": null
},
"start-ip": "string",
"vni": 0
}
],
"public-ip-assignment": "inet4",
"security-groups": [
{
"description": "string",
"external-sources": [
null
],
"id": "string",
"name": "string",
"rules": [
null
]
}
],
"size": 0,
"state": "renewing-token",
"taints": {},
"template": {
"application-consistent-snapshot-enabled": true,
"boot-mode": "legacy",
"build": "string",
"checksum": "string",
"created-at": "2024-01-01T12:00:00Z",
"default-user": "string",
"description": "string",
"family": "string",
"id": "string",
"maintainer": "string",
"name": "string",
"password-enabled": true,
"size": 0,
"ssh-key-enabled": true,
"url": "string",
"version": "string",
"visibility": "private",
"zones": [
"ch-dk-2"
]
},
"version": "string"
}
],
"state": "rotating-csi-credentials",
"version": "string"
}SDK reference for get-sks-cluster: golang | Python | Java
CLI: exo api get-sks-cluster
update-sks-cluster
Update an SKS cluster
PUT /sks-cluster/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
addons | array[string] | no | Cluster addons |
audit | object | no | Kubernetes Audit parameters schema details |
auto-upgrade | boolean | no | Enable auto upgrade of the control plane to the latest patch version available |
description | string | no | Cluster description |
enable-operators-ca | boolean | no | Add or remove the operators certificate authority (CA) from the list of trusted CAs of the api server. The default value is true |
feature-gates | array[string] | no | A list of Kubernetes-only Alpha features to enable for API server component |
labels | object | no | Cluster labels |
name | string | no | Cluster name |
oidc | object | no | SKS Cluster OpenID config map schema details |
Example
{
"addons": [
"exoscale-cloud-controller"
],
"audit": {
"bearer-token": "string",
"enabled": true,
"endpoint": "string",
"initial-backoff": "string"
},
"auto-upgrade": true,
"description": "string",
"enable-operators-ca": true,
"feature-gates": [
"string"
],
"labels": {},
"name": "string",
"oidc": {
"client-id": "string",
"groups-claim": "string",
"groups-prefix": "string",
"issuer-url": "string",
"required-claim": {},
"username-claim": "string",
"username-prefix": "string"
}
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for update-sks-cluster: golang | Python | Java
CLI: exo api update-sks-cluster
delete-sks-cluster
Delete an SKS cluster
DELETE /sks-cluster/{id}Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for delete-sks-cluster: golang | Python | Java
CLI: exo api delete-sks-cluster
Other Operations
generate-sks-cluster-kubeconfig
Generate a new Kubeconfig file for a SKS cluster
POST /sks-cluster-kubeconfig/{id}This operation returns a Kubeconfig file encoded in base64.
Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
groups | array[string] | yes | List of roles. The certificate present in the Kubeconfig will have these roles set in the Org field. |
user | string | yes | User name in the generated Kubeconfig. The certificate present in the Kubeconfig will also have this name set for the CN field. |
ttl | integer | no | Validity in seconds of the Kubeconfig user certificate (default: 30 days) |
Example
{
"groups": [
"string"
],
"ttl": 0,
"user": "string"
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
kubeconfig | string |
Example output
{
"kubeconfig": "string"
}SDK reference for generate-sks-cluster-kubeconfig: golang | Python | Java
CLI: exo api generate-sks-cluster-kubeconfig
rotate-sks-ccm-credentials
Rotate Exoscale CCM credentials
PUT /sks-cluster/{id}/rotate-ccm-credentialsPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for rotate-sks-ccm-credentials: golang | Python | Java
CLI: exo api rotate-sks-ccm-credentials
rotate-sks-csi-credentials
Rotate Exoscale CSI credentials
PUT /sks-cluster/{id}/rotate-csi-credentialsPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for rotate-sks-csi-credentials: golang | Python | Java
CLI: exo api rotate-sks-csi-credentials
rotate-sks-karpenter-credentials
Rotate Exoscale Karpenter credentials
PUT /sks-cluster/{id}/rotate-karpenter-credentialsPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for rotate-sks-karpenter-credentials: golang | Python | Java
CLI: exo api rotate-sks-karpenter-credentials
rotate-sks-operators-ca
Rotate operators certificate authority
PUT /sks-cluster/{id}/rotate-operators-caPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for rotate-sks-operators-ca: golang | Python | Java
CLI: exo api rotate-sks-operators-ca
get-sks-cluster-authority-cert
Get the certificate for a SKS cluster authority
GET /sks-cluster/{id}/authority/{authority}/certThis operation returns the certificate for the given SKS cluster authority encoded in base64.
Path parameters
| Name | In | Description |
|---|---|---|
id | path | |
authority | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
cacert | string |
Example output
{
"cacert": "string"
}SDK reference for get-sks-cluster-authority-cert: golang | Python | Java
CLI: exo api get-sks-cluster-authority-cert
list-sks-cluster-deprecated-resources
Resources that are scheduled to be removed in future kubernetes releases
GET /sks-cluster-deprecated-resources/{id}This operation returns the deprecated resources for a given cluster
Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
Example output
[
{
"group": "string",
"removed-release": "string",
"resource": "string",
"subresource": "string",
"version": "string"
}
]SDK reference for list-sks-cluster-deprecated-resources: golang | Python | Java
CLI: exo api list-sks-cluster-deprecated-resources
get-sks-cluster-inspection
Get the latest inspection result
GET /sks-cluster/{id}/inspectionHelps troubleshoot common problems when deploying a kubernetes cluster. Inspections run every couple of minutes.
Path parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
Example output
{}SDK reference for get-sks-cluster-inspection: golang | Python | Java
CLI: exo api get-sks-cluster-inspection
list-sks-cluster-versions
List available versions for SKS clusters
GET /sks-cluster-versionQuery parameters
| Name | In | Required | Description |
|---|---|---|---|
include-deprecated | query | no |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
sks-cluster-versions | array[string] |
Example output
{
"sks-cluster-versions": [
"string"
]
}SDK reference for list-sks-cluster-versions: golang | Python | Java
CLI: exo api list-sks-cluster-versions
list-sks-clusters
List SKS clusters
GET /sks-clusterResponses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
sks-clusters | array[object] | schema details |
Example output
{
"sks-clusters": [
{
"addons": [
"exoscale-cloud-controller"
],
"audit": {
"enabled": true,
"endpoint": "string",
"initial-backoff": "string"
},
"auto-upgrade": true,
"cni": "calico",
"created-at": "2024-01-01T12:00:00Z",
"description": "string",
"enable-kube-proxy": true,
"enable-operators-ca": true,
"endpoint": "string",
"feature-gates": [
"string"
],
"id": "string",
"labels": {},
"level": "starter",
"name": "string",
"nodepools": [
{
"addons": [
null
],
"anti-affinity-groups": [
null
],
"created-at": "2024-01-01T12:00:00Z",
"deploy-target": {
"description": null,
"id": null,
"name": null,
"type": null
},
"description": "string",
"disk-size": 0,
"id": "string",
"instance-pool": {
"anti-affinity-groups": null,
"application-consistent-snapshot-enabled": null,
"deploy-target": null,
"description": null,
"disk-size": null,
"elastic-ips": null,
"id": null,
"instance-prefix": null,
"instance-type": null,
"instances": null,
"ipv6-enabled": null,
"labels": null,
"manager": null,
"min-available": null,
"name": null,
"private-networks": null,
"public-ip-assignment": null,
"security-groups": null,
"size": null,
"ssh-key": null,
"ssh-keys": null,
"state": null,
"template": null,
"user-data": null
},
"instance-prefix": "string",
"instance-type": {
"authorized": null,
"cpus": null,
"family": null,
"gpus": null,
"id": null,
"memory": null,
"size": null,
"zones": null
},
"kubelet-image-gc": {
"high-threshold": null,
"low-threshold": null,
"min-age": null
},
"labels": {},
"name": "string",
"private-networks": [
null
],
"public-ip-assignment": "inet4",
"security-groups": [
null
],
"size": 0,
"state": "renewing-token",
"taints": {},
"template": {
"application-consistent-snapshot-enabled": null,
"boot-mode": null,
"build": null,
"checksum": null,
"created-at": null,
"default-user": null,
"description": null,
"family": null,
"id": null,
"maintainer": null,
"name": null,
"password-enabled": null,
"size": null,
"ssh-key-enabled": null,
"url": null,
"version": null,
"visibility": null,
"zones": null
},
"version": "string"
}
],
"state": "rotating-csi-credentials",
"version": "string"
}
]
}SDK reference for list-sks-clusters: golang | Python | Java
CLI: exo api list-sks-clusters
upgrade-sks-cluster
Upgrade an SKS cluster
PUT /sks-cluster/{id}/upgradePath parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
version | string | yes | Control plane Kubernetes version |
Example
{
"version": "string"
}Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for upgrade-sks-cluster: golang | Python | Java
CLI: exo api upgrade-sks-cluster
upgrade-sks-cluster-service-level
Upgrade a SKS cluster to pro
PUT /sks-cluster/{id}/upgrade-service-levelPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
id | string | Operation ID |
message | string | Operation message |
reason | string | Operation failure reason Allowed values: incorrect, unknown, unavailable, forbidden, busy, fault, partial, not-found, interrupted, unsupported, conflict. |
reference | object | Related resource reference schema details |
state | string | Operation status Allowed values: failure, pending, success, timeout. |
Example output
{
"id": "string",
"message": "string",
"reason": "incorrect",
"reference": {
"command": "string",
"id": "string",
"link": "string"
},
"state": "failure"
}SDK reference for upgrade-sks-cluster-service-level: golang | Python | Java
CLI: exo api upgrade-sks-cluster-service-level