Nodepool
Nodepools are groups of compute instances managed by SKS, serving as worker nodes in your Kubernetes cluster.
create-sks-nodepool
Create a new SKS Nodepool
POST /sks-cluster/{id}/nodepoolPath parameters
| Name | In | Description |
|---|---|---|
id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
disk-size | integer | yes | Nodepool instances disk size in GiB |
instance-type | object | yes | Compute instance type schema details |
name | string | yes | Nodepool name, lowercase only |
size | integer | yes | Number of instances |
addons | array[string] | no | Nodepool addons |
anti-affinity-groups | array[object] | no | Nodepool Anti-affinity Groups schema details |
deploy-target | object | no | Deploy target schema details |
description | string | no | Nodepool description |
instance-prefix | string | no | Prefix to apply to instances names (default: pool), lowercase only |
kubelet-image-gc | object | no | Kubelet image GC options schema details |
labels | object | no | Nodepool labels |
private-networks | array[object] | no | Nodepool Private Networks schema details |
public-ip-assignment | string | no | Configures public IP assignment of the Instances with: * IPv4 (inet4) addressing only (default); * both IPv4 and IPv6 (dual) addressing.Allowed values: inet4, dual. |
security-groups | array[object] | no | Nodepool Security Groups schema details |
taints | object | no | Nodepool taints |
Example
{
"addons": [
"storage-lvm"
],
"anti-affinity-groups": [
{
"description": "string",
"id": "string",
"instances": [
{
"anti-affinity-groups": [
null
],
"application-consistent-snapshot-enabled": true,
"created-at": "2024-01-01T12:00:00Z",
"deploy-target": {
"description": null,
"id": null,
"name": null,
"type": null
},
"disk-size": 0,
"elastic-ips": [
null
],
"id": "string",
"instance-type": {
"authorized": null,
"cpus": null,
"family": null,
"gpus": null,
"id": null,
"memory": null,
"size": null,
"zones": null
},
"ipv6-address": "string",
"labels": {},
"mac-address": "string",
"manager": {
"id": null,
"type": null
},
"name": "string",
"private-networks": [
null
],
"public-ip": "string",
"public-ip-assignment": "inet4",
"secureboot-enabled": true,
"security-groups": [
null
],
"snapshots": [
null
],
"ssh-key": {
"fingerprint": null,
"name": null
},
"ssh-keys": [
null
],
"state": "expunging",
"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
},
"tpm-enabled": true,
"user-data": "string"
}
],
"name": "string"
}
],
"deploy-target": {
"description": "string",
"id": "string",
"name": "string",
"type": "edge"
},
"description": "string",
"disk-size": 0,
"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": [
{
"instance-id": "string",
"ip": "string"
}
],
"name": "string",
"netmask": "string",
"options": {
"dns-servers": [
"string"
],
"domain-search": [
"string"
],
"ntp-servers": [
"string"
],
"routers": [
"string"
]
},
"start-ip": "string",
"vni": 0
}
],
"public-ip-assignment": "inet4",
"security-groups": [
{
"description": "string",
"external-sources": [
"string"
],
"id": "string",
"name": "string",
"rules": [
{
"description": "string",
"end-port": 0,
"flow-direction": "ingress",
"icmp": {
"code": null,
"type": null
},
"id": "string",
"network": "string",
"protocol": "tcp",
"security-group": {
"id": null,
"name": null,
"visibility": null
},
"start-port": 0
}
]
}
],
"size": 0,
"taints": {}
}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-nodepool: golang | Python | Java
CLI: exo api create-sks-nodepool
get-sks-nodepool
Retrieve SKS Nodepool details
GET /sks-cluster/{id}/nodepool/{sks-nodepool-id}Path parameters
| Name | In | Description |
|---|---|---|
id | path | |
sks-nodepool-id | path |
Responses
Status: 200 - 200
Content-Type: application/json
| Property | Type | Description |
|---|---|---|
addons | array[string] | Nodepool addons |
anti-affinity-groups | array[object] | Nodepool Anti-affinity Groups schema details |
created-at | string | Nodepool creation date |
deploy-target | object | Deploy target schema details |
description | string | Nodepool description |
disk-size | integer | Nodepool instances disk size in GiB |
id | string | Nodepool ID |
instance-pool | object | Instance Pool schema details |
instance-prefix | string | The instances created by the Nodepool will be prefixed with this value (default: pool) |
instance-type | object | Compute instance type schema details |
kubelet-image-gc | object | Kubelet image GC options schema details |
labels | object | Nodepool labels |
name | string | Nodepool name |
private-networks | array[object] | Nodepool Private Networks schema details |
public-ip-assignment | string | Nodepool public IP assignment of the Instances: * IPv4 (inet4) addressing only; * IPv4 and IPv6 (dual) addressing.Allowed values: inet4, dual. |
security-groups | array[object] | Nodepool Security Groups schema details |
size | integer | Number of instances |
state | string | Nodepool state Allowed values: renewing-token, creating, deleting, running, scaling, updating, error. |
taints | object | Nodepool taints |
template | object | Instance template schema details |
version | string | Nodepool version |
Example output
{
"addons": [
"storage-lvm"
],
"anti-affinity-groups": [
{
"description": "string",
"id": "string",
"instances": [
{
"anti-affinity-groups": [
null
],
"application-consistent-snapshot-enabled": true,
"created-at": "2024-01-01T12:00:00Z",
"deploy-target": {
"description": null,
"id": null,
"name": null,
"type": null
},
"disk-size": 0,
"elastic-ips": [
null
],
"id": "string",
"instance-type": {
"authorized": null,
"cpus": null,
"family": null,
"gpus": null,
"id": null,
"memory": null,
"size": null,
"zones": null
},
"ipv6-address": "string",
"labels": {},
"mac-address": "string",
"manager": {
"id": null,
"type": null
},
"name": "string",
"private-networks": [
null
],
"public-ip": "string",
"public-ip-assignment": "inet4",
"secureboot-enabled": true,
"security-groups": [
null
],
"snapshots": [
null
],
"ssh-key": {
"fingerprint": null,
"name": null
},
"ssh-keys": [
null
],
"state": "expunging",
"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
},
"tpm-enabled": true,
"user-data": "string"
}
],
"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": "string",
"id": "string",
"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
}
],
"name": "string"
}
],
"application-consistent-snapshot-enabled": true,
"deploy-target": {
"description": "string",
"id": "string",
"name": "string",
"type": "edge"
},
"description": "string",
"disk-size": 0,
"elastic-ips": [
{
"addressfamily": "inet4",
"cidr": "string",
"description": "string",
"healthcheck": {
"interval": 0,
"mode": "tcp",
"port": 0,
"strikes-fail": 0,
"strikes-ok": 0,
"timeout": 0,
"tls-skip-verify": true,
"tls-sni": "string",
"uri": "string"
},
"id": "string",
"ip": "string",
"labels": {}
}
],
"id": "string",
"instance-prefix": "string",
"instance-type": {
"authorized": true,
"cpus": 0,
"family": "gpu3",
"gpus": 0,
"id": "string",
"memory": 0,
"size": "large",
"zones": [
"ch-dk-2"
]
},
"instances": [
{
"anti-affinity-groups": [
{
"description": null,
"id": null,
"instances": null,
"name": null
}
],
"application-consistent-snapshot-enabled": true,
"created-at": "2024-01-01T12:00:00Z",
"deploy-target": {
"description": "string",
"id": "string",
"name": "string",
"type": "edge"
},
"disk-size": 0,
"elastic-ips": [
{
"addressfamily": null,
"cidr": null,
"description": null,
"healthcheck": null,
"id": null,
"ip": null,
"labels": null
}
],
"id": "string",
"instance-type": {
"authorized": true,
"cpus": 0,
"family": "gpu3",
"gpus": 0,
"id": "string",
"memory": 0,
"size": "large",
"zones": [
null
]
},
"ipv6-address": "string",
"labels": {},
"mac-address": "string",
"manager": {
"id": "string",
"type": "sks-nodepool"
},
"name": "string",
"private-networks": [
{
"id": null,
"mac-address": null
}
],
"public-ip": "string",
"public-ip-assignment": "inet4",
"secureboot-enabled": true,
"security-groups": [
{
"description": null,
"external-sources": null,
"id": null,
"name": null,
"rules": null
}
],
"snapshots": [
{
"application-consistent": null,
"created-at": null,
"export": null,
"id": null,
"instance": null,
"name": null,
"size": null,
"state": null
}
],
"ssh-key": {
"fingerprint": "string",
"name": "string"
},
"ssh-keys": [
{
"fingerprint": null,
"name": null
}
],
"state": "expunging",
"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
]
},
"tpm-enabled": true,
"user-data": "string"
}
],
"ipv6-enabled": true,
"labels": {},
"manager": {
"id": "string",
"type": "sks-nodepool"
},
"min-available": 0,
"name": "string",
"private-networks": [
{
"description": "string",
"end-ip": "string",
"id": "string",
"labels": {},
"leases": [
{
"instance-id": null,
"ip": 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": [
"string"
],
"id": "string",
"name": "string",
"rules": [
{
"description": null,
"end-port": null,
"flow-direction": null,
"icmp": null,
"id": null,
"network": null,
"protocol": null,
"security-group": null,
"start-port": null
}
]
}
],
"size": 0,
"ssh-key": {
"fingerprint": "string",
"name": "string"
},
"ssh-keys": [
{
"fingerprint": "string",
"name": "string"
}
],
"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": [
"ch-dk-2"
]
},
"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": [
{
"instance-id": "string",
"ip": "string"
}
],
"name": "string",
"netmask": "string",
"options": {
"dns-servers": [
"string"
],
"domain-search": [
"string"
],
"ntp-servers": [
"string"
],
"routers": [
"string"
]
},
"start-ip": "string",
"vni": 0
}
],
"public-ip-assignment": "inet4",
"security-groups": [
{
"description": "string",
"external-sources": [
"string"
],
"id": "string",
"name": "string",
"rules": [
{
"description": "string",
"end-port": 0,
"flow-direction": "ingress",
"icmp": {
"code": null,
"type": null
},
"id": "string",
"network": "string",
"protocol": "tcp",
"security-group": {
"id": null,
"name": null,
"visibility": null
},
"start-port": 0
}
]
}
],
"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"
}SDK reference for get-sks-nodepool: golang | Python | Java
CLI: exo api get-sks-nodepool
update-sks-nodepool
Update an SKS Nodepool
PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}Path parameters
| Name | In | Description |
|---|---|---|
id | path | |
sks-nodepool-id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
anti-affinity-groups | array[object] | no | Nodepool Anti-affinity Groups schema details |
deploy-target | object | no | Deploy target schema details |
description | string | no | Nodepool description |
disk-size | integer | no | Nodepool instances disk size in GiB |
instance-prefix | string | no | Prefix to apply to managed instances names (default: pool), lowercase only |
instance-type | object | no | Compute instance type schema details |
labels | object | no | Nodepool labels |
name | string | no | Nodepool name, lowercase only |
private-networks | array[object] | no | Nodepool Private Networks schema details |
public-ip-assignment | string | no | Configures public IP assignment of the Instances with: * IPv4 (inet4) addressing only; * both IPv4 and IPv6 (dual) addressing.Allowed values: inet4, dual. |
security-groups | array[object] | no | Nodepool Security Groups schema details |
taints | object | no | Nodepool taints |
Example
{
"anti-affinity-groups": [
{
"description": "string",
"id": "string",
"instances": [
{
"anti-affinity-groups": [
null
],
"application-consistent-snapshot-enabled": true,
"created-at": "2024-01-01T12:00:00Z",
"deploy-target": {
"description": null,
"id": null,
"name": null,
"type": null
},
"disk-size": 0,
"elastic-ips": [
null
],
"id": "string",
"instance-type": {
"authorized": null,
"cpus": null,
"family": null,
"gpus": null,
"id": null,
"memory": null,
"size": null,
"zones": null
},
"ipv6-address": "string",
"labels": {},
"mac-address": "string",
"manager": {
"id": null,
"type": null
},
"name": "string",
"private-networks": [
null
],
"public-ip": "string",
"public-ip-assignment": "inet4",
"secureboot-enabled": true,
"security-groups": [
null
],
"snapshots": [
null
],
"ssh-key": {
"fingerprint": null,
"name": null
},
"ssh-keys": [
null
],
"state": "expunging",
"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
},
"tpm-enabled": true,
"user-data": "string"
}
],
"name": "string"
}
],
"deploy-target": {
"description": "string",
"id": "string",
"name": "string",
"type": "edge"
},
"description": "string",
"disk-size": 0,
"instance-prefix": "string",
"instance-type": {
"authorized": true,
"cpus": 0,
"family": "gpu3",
"gpus": 0,
"id": "string",
"memory": 0,
"size": "large",
"zones": [
"ch-dk-2"
]
},
"labels": {},
"name": "string",
"private-networks": [
{
"description": "string",
"end-ip": "string",
"id": "string",
"labels": {},
"leases": [
{
"instance-id": "string",
"ip": "string"
}
],
"name": "string",
"netmask": "string",
"options": {
"dns-servers": [
"string"
],
"domain-search": [
"string"
],
"ntp-servers": [
"string"
],
"routers": [
"string"
]
},
"start-ip": "string",
"vni": 0
}
],
"public-ip-assignment": "inet4",
"security-groups": [
{
"description": "string",
"external-sources": [
"string"
],
"id": "string",
"name": "string",
"rules": [
{
"description": "string",
"end-port": 0,
"flow-direction": "ingress",
"icmp": {
"code": null,
"type": null
},
"id": "string",
"network": "string",
"protocol": "tcp",
"security-group": {
"id": null,
"name": null,
"visibility": null
},
"start-port": 0
}
]
}
],
"taints": {}
}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-nodepool: golang | Python | Java
CLI: exo api update-sks-nodepool
scale-sks-nodepool
Scale a SKS Nodepool
PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:scalePath parameters
| Name | In | Description |
|---|---|---|
id | path | |
sks-nodepool-id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
size | integer | yes | Number of instances |
Example
{
"size": 0
}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 scale-sks-nodepool: golang | Python | Java
CLI: exo api scale-sks-nodepool
delete-sks-nodepool
Delete an SKS Nodepool
DELETE /sks-cluster/{id}/nodepool/{sks-nodepool-id}Path parameters
| Name | In | Description |
|---|---|---|
id | path | |
sks-nodepool-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-nodepool: golang | Python | Java
CLI: exo api delete-sks-nodepool
Other Operations
evict-sks-nodepool-members
Evict Nodepool members
PUT /sks-cluster/{id}/nodepool/{sks-nodepool-id}:evictThis operation evicts the specified Compute instances member from the Nodepool, shrinking it to <current nodepool size> - <# evicted members>.
Path parameters
| Name | In | Description |
|---|---|---|
id | path | |
sks-nodepool-id | path |
Request body
Content-Type: application/json
| Property | Type | Required | Description |
|---|---|---|---|
instances | array[string] | no |
Example
{
"instances": [
"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 evict-sks-nodepool-members: golang | Python | Java
CLI: exo api evict-sks-nodepool-members