Перейти к основному содержимому

Managed Kubernetes API (v1.0.0)

Selectel Kubernetes Team: support@selectel.ru

Managing clusters, node groups, and Managed Kubernetes nodes: creating a cluster, automating cluster maintenance, and more

AdmissionControllers

Get supported admission controllers

Get supported admission controllers

Authorizations:
X-Auth-Token

Responses

Response samples

Content type
application/json
{
  • "admission_controllers": [
    ]
}

Clusters

Get all clusters

Example response:

{
    "clusters": [
        {
            "id": "5803b490-2d6b-418a-8645-eacda0f003c5",
            "created_at": "2019-11-04T10:21:11.943917Z",
            "updated_at": "2019-11-04T10:29:22.652987Z",
            "name": "cluster1",
            "status": "ACTIVE",
            "project_id": "c1f35d51fbfc4ba595830d5416fea58a",
            "network_id": "f6e76442-d33d-4c35-9d73-b5391ca03653",
            "subnet_id": "a9881ca2-d481-4206-b39a-7f7e758672e3",
            "kube_api_ip": "203.0.113.101",
            "kube_version": "1.16.9",
            "region": "ru-3",
            "additional_software": null,
            "enable_autorepair": true,
            "enable_patch_version_auto_upgrade": true,
            "kubernetes_options": {
                "feature_gates": [
                    "CPUManager"
                 ],
                "admission_controllers": [
                    "PodSecurityPolicy"
                ],
                "audit_logs": {
                    "enabled": true,
                    "secret_name": "mks-audit-logs"
                }
            },
            "zonal": false,
            "private_kube_api": false
        },
        {
            "id": "998e205c-b67c-4941-85cd-c31b09582a4a",
            "created_at": "2019-11-04T12:54:20.769125Z",
            "updated_at": "2019-11-04T13:08:08.785385Z",
            "name": "testing",
            "status": "ACTIVE",
            "project_id": "c1f35d51fbfc4ba595830d5416fea58a",
            "network_id": "b5e2e88d-d393-4b9d-b5e5-9cc89c7843cf",
            "subnet_id": "31c0a11c-cdb2-442a-a92b-0c5d12631b75",
            "kube_api_ip": "203.0.113.220",
            "kube_version": "1.17.6",
            "region": "ru-1",
            "additional_software": null,
            "enable_autorepair": true,
            "enable_patch_version_auto_upgrade": false,
            "kubernetes_options": {
                "feature_gates": [
                    "CPUManager"
                 ],
                "admission_controllers": [
                    "PodSecurityPolicy"
                ],
                "audit_logs": {
                    "enabled": true,
                    "secret_name": "mks-audit-logs"
                }
            },
            "zonal": true,
            "private_kube_api": true
        }
    ]
}
Authorizations:
X-Auth-Token

Responses

Response samples

Content type
application/json
{
  • "clusters": [
    ]
}

Create a new cluster

Example response:

{
    "cluster": {
        "id": "998e205c-b67c-4941-85cd-c31b09582a4a",
        "created_at": "2019-11-04T12:54:20.769125Z",
        "updated_at": null,
        "name": "staging",
        "status": "PENDING_CREATE",
        "project_id": "c1f35d51fbfc4ba595830d5416fea58a",
        "network_id": "",
        "subnet_id": "",
        "kube_api_ip": "",
        "kube_version": "1.16.9",
        "region": "ru-2",
        "additional_software": null,
        "pki_tree_updated_at": null,
        "maintenance_window_start": "01:00:00",
        "maintenance_window_end": "03:00:00",
        "maintenance_last_start": null,
        "enable_autorepair": true,
        "enable_patch_version_auto_upgrade": true,
        "kubernetes_options": {
            "feature_gates": [
                "CPUManager"
             ],
            "admission_controllers": [
                "PodSecurityPolicy"
            ],
            "x509_ca_certificates":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJek1Ea3dOVEUyTkRVMU1Wb1hEVE16TURrd01qRTJORFUxTVZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTlBCCmF3VlM1citJcFdaNzQreFp3eUIvUVgzdC9nSHVEUkJBUUtjQmtadjlUT2VCZ1l2NVFWcFg0VkxLMk1JZUxFUkQKb3VtT0xGL3FQTEtPc3dkMzdndlN4QmRGY1Z5bTRuVi9OQisrUHJUMFFuNHRnbUZPcVlESmdsSmNHOERjR2loZQpWMWNackYxZ2NVOVhjdFFzcDM0T2JmZlhBd3A2WnpBdklYcGhRbnpGbkFrdUlSM3RyVGxWbTZMZ09Xek9NWlF0ClhtckYxRWYyYmtNcG01TnduVmx4c0xubHFLTGJLK1NTOUsyMk1za2dzQStqTVZaNVRSWjlzb0dhanVOUitkRmwKWU5XeWtSZ3JTL1ZBU2VXV3NhOGE3V0lmWGlBOHVHZ0U2ZVBQKzdDNEFNNmNqbjQ4K2l5Z01DSUFoSllGaFVZNQo2NW85SXBxaXU4TmRLUExhZ1I4Q0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZNeTd6NWQxa1plZGVzWDlzWlJJV01BamVLa2ZNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFDVjFMaVJ1SXJVZlR6YkFwak10R3Z6T0tXK0cxYVFsNTRzQ3RJUmQwMENjbSt0OFJqZQpDVjJyeXArd0MyRGt4amZpS0owanpQbitVM3F4V01HMmdDNmpGRi9YbHRGeWNGd291OFJUcisycGZuTk9MbGEzCnpHK0o3Uys4b1RObWZxa2NqZExLa08rQ0U1M3Rpa0daQy95eThMWEVJdWlBeGptOFY5WlF3SGxxZjRXaUFPUXMKNGNUbUpRT2tJaU5ZTDRJcmlLQWNTMzB4bDVtNDB4ZVI5dm1DdzBNdGhoLytDNFNLNW9NNS9YaWZNT2JadnV6WQpkR3ArbGdkUU9jdTJJUEVUQUl2S3J1UDVObUhnZ2RaNXZnVHRKWGdqSkJZcHV6dXNiUmxmMy8wbWZhOE82V0o3ClZxVTJZL3FkSFRNVWhkUkgyRU9KcThDQ3VQNHFiUnppaVhGdQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t",
            "audit_logs": {
                "enabled": true,
                "secret_name": "mks-audit-logs"
            }
        },
        "zonal": false,
        "private_kube_api": false
    }
}
Authorizations:
X-Auth-Token
Request Body schema: application/json
required

Cluster create request body.

required
object (SwaggerClusterCreateStruct)
object

AdditionalSoftware represents parameters of additional software that can be installed in the Kubernetes cluster.

enable_autorepair
boolean

EnableAutorepair reflects if worker nodes are allowed to be reinstalled automatically in case of their unavailability or unhealthiness. Enabled by default.

enable_patch_version_auto_upgrade
boolean

EnablePatchVersionAutoUpgrade specifies if Kubernetes version of the cluster is allowed to be upgraded automatically. Enabled by default for regional clusters and disabled for zonal clusters.

kube_version
required
string

KubeVersion represents the needed Kubernetes version of the cluster. It should be in x.y.z format.

object (KubernetesOptions)

KubernetesOptions represents additional k8s options such as pod security policy, feature gates and etc.

maintenance_window_start
string

MaintenanceWindowStart represents UTC time of when the cluster will start its maintenance tasks. It should be in hh:mm:ss format if provided.

name
required
string

Name represent the needed name of the cluster. It shouldn't contain more than 32 symbols and can contain latin letters with numbers and hyphens and start with a letter or a number.

network_id
string <uuid4>

NetworkID contains a reference to the network of the cluster. It can be set in cases where network is pre-created.

required
Array of objects (Nodegroup create.)

Nodegroups contains groups of nodes with their parameters.

private_kube_api
boolean

PrivateKubeAPI specifies if kube API should be available from the Internet or not. False by default.

region
required
string

Region represents the needed region.

subnet_id
string <uuid4>

SubnetID contains a reference to the subnet of the cluster. It can be set in cases where subnet is pre-created.

zonal
boolean

Zonal specifies that only a single zonal master will be created. It is needed if highly available control-plane is not required. False by default.

Responses

Request samples

Content type
application/json
{
  • "cluster": {
    }
}

Response samples

Content type
application/json
{
  • "cluster": {
    }
}

Get cluster by ID

Example response:

{
    "cluster": {
        "id": "998e205c-b67c-4941-85cd-c31b09582a4a",
        "created_at": "2019-11-04T12:54:20.769125Z",
        "updated_at": "2019-11-04T13:08:08.785385Z",
        "name": "testing",
        "status": "ACTIVE",
        "project_id": "c1f35d51fbfc4ba595830d5416fea58a",
        "network_id": "b5e2e88d-d393-4b9d-b5e5-9cc89c7843cf",
        "subnet_id": "31c0a11c-cdb2-442a-a92b-0c5d12631b75",
        "kube_api_ip": "203.0.113.220",
        "kube_version": "1.17.6",
        "region": "ru-1",
        "additional_software": null,
        "pki_tree_updated_at": "2019-12-16T11:34:19.140113Z",
        "maintenance_window_start": "01:00:00",
        "maintenance_window_end": "03:00:00",
        "maintenance_last_start": "2019-12-16T01:04:10.140212Z",
        "enable_autorepair": false,
        "enable_patch_version_auto_upgrade": true,
        "kubernetes_options": {
            "feature_gates": [
                "CPUManager"
             ],
            "admission_controllers": [
                "PodSecurityPolicy"
            ],
            "x509_ca_certificates":"LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJek1Ea3dOVEUyTkRVMU1Wb1hEVE16TURrd01qRTJORFUxTVZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTlBCCmF3VlM1citJcFdaNzQreFp3eUIvUVgzdC9nSHVEUkJBUUtjQmtadjlUT2VCZ1l2NVFWcFg0VkxLMk1JZUxFUkQKb3VtT0xGL3FQTEtPc3dkMzdndlN4QmRGY1Z5bTRuVi9OQisrUHJUMFFuNHRnbUZPcVlESmdsSmNHOERjR2loZQpWMWNackYxZ2NVOVhjdFFzcDM0T2JmZlhBd3A2WnpBdklYcGhRbnpGbkFrdUlSM3RyVGxWbTZMZ09Xek9NWlF0ClhtckYxRWYyYmtNcG01TnduVmx4c0xubHFLTGJLK1NTOUsyMk1za2dzQStqTVZaNVRSWjlzb0dhanVOUitkRmwKWU5XeWtSZ3JTL1ZBU2VXV3NhOGE3V0lmWGlBOHVHZ0U2ZVBQKzdDNEFNNmNqbjQ4K2l5Z01DSUFoSllGaFVZNQo2NW85SXBxaXU4TmRLUExhZ1I4Q0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZNeTd6NWQxa1plZGVzWDlzWlJJV01BamVLa2ZNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFDVjFMaVJ1SXJVZlR6YkFwak10R3Z6T0tXK0cxYVFsNTRzQ3RJUmQwMENjbSt0OFJqZQpDVjJyeXArd0MyRGt4amZpS0owanpQbitVM3F4V01HMmdDNmpGRi9YbHRGeWNGd291OFJUcisycGZuTk9MbGEzCnpHK0o3Uys4b1RObWZxa2NqZExLa08rQ0U1M3Rpa0daQy95eThMWEVJdWlBeGptOFY5WlF3SGxxZjRXaUFPUXMKNGNUbUpRT2tJaU5ZTDRJcmlLQWNTMzB4bDVtNDB4ZVI5dm1DdzBNdGhoLytDNFNLNW9NNS9YaWZNT2JadnV6WQpkR3ArbGdkUU9jdTJJUEVUQUl2S3J1UDVObUhnZ2RaNXZnVHRKWGdqSkJZcHV6dXNiUmxmMy8wbWZhOE82V0o3ClZxVTJZL3FkSFRNVWhkUkgyRU9KcThDQ3VQNHFiUnppaVhGdQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t",
            "audit_logs": {
                "enabled": true,,
                "secret_name": "mks-audit-logs"
            }
        },
        "zonal": false,
        "private_kube_api": false,
        "registries_integration": {
          "registries": [
            {
              "id": "4bed5c76-c8ce-4c8f-92f8-26721cab4079"
            }
          ],
          "status": "ACTIVE"
        }
    }
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Response samples

Content type
application/json
{
  • "cluster": {
    }
}

Update a cluster

Example response:

{
    "cluster": {
        "id": "a1f1e026-24c5-4a72-ba8b-7f213c9e5922",
        "created_at": "2020-01-13T15:15:20.769129Z",
        "updated_at": "2020-01-14T10:12:34.785341Z",
        "name": "mycluster",
        "status": "ACTIVE",
        "project_id": "16204804dedf46f1b1389aa39e73c485",
        "network_id": "33b4a55f-a20c-4daf-a7af-76989dc7dce0",
        "subnet_id": "8c34704d-8ac0-4c9e-8bf3-6699d9ab91ea",
        "kube_api_ip": "203.0.113.220",
        "kube_version": "1.17.6",
        "region": "ru-2",
        "additional_software": null,
        "pki_tree_updated_at": "2020-01-13T20:45:01.140121Z",
        "maintenance_window_start": "04:00:00",
        "maintenance_window_end": "06:00:00",
        "maintenance_last_start": "2020-01-13T20:04:00.712351Z",
        "enable_autorepair": false,
        "enable_patch_version_auto_upgrade": false,
        "kubernetes_options": {
            "feature_gates": [
                "CPUManager"
             ],
            "admission_controllers": [
                "PodSecurityPolicy"
            ],
            "audit_logs": {
                "enabled": true,
                "secret_name": "mks-audit-logs"
            }
        },
        "zonal": false,
        "private_kube_api": false
    }
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Request Body schema: application/json
required

Cluster update request body.

required
object (SwaggerClusterUpdateStruct)
enable_autorepair
boolean

EnableAutorepair reflects if worker nodes are allowed to be reinstalled automatically in case of their unavailability or unhealthiness.

enable_patch_version_auto_upgrade
boolean

EnablePatchVersionAutoUpgrade specifies if Kubernetes version of the cluster is allowed to be upgraded automatically.

object (SwaggerKubernetesOptions)

SwaggerKubernetesOptions represents additional k8s options such as pod security policy, feature gates and etc.

maintenance_window_start
string

MaintenanceWindowStart represents UTC time of when the cluster will start its maintenance tasks. It should be in hh:mm:ss format if provided.

Responses

Request samples

Content type
application/json
{
  • "cluster": {
    }
}

Response samples

Content type
application/json
{
  • "cluster": {
    }
}

Delete a cluster

Delete a cluster

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Get cluster kubeconfig

Get cluster kubeconfig

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Rotate cluster certificates

Rotate cluster certificates

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Upgrade cluster Kubernetes minor version

Example response:

{
    "cluster": {
        "id": "0551d9d2-fa10-4c57-9774-d7b088f5e0b2",
        "created_at": "2020-05-12T12:45:10.729225Z",
        "updated_at": "2020-05-12T14:20:05.729324Z",
        "name": "upgrade-me",
        "status": "PENDING_UPGRADE_MINOR_VERSION",
        "project_id": "0994073ec7a24b64b03788d25826fcb0",
        "network_id": "ddf3a3d0-f11b-4a9d-b017-bc128af66a65",
        "subnet_id": "0814a551-e659-489d-8cb3-c743f70fbd8c",
        "kube_api_ip": "203.0.113.220",
        "kube_version": "1.17.6",
        "region": "ru-3",
        "additional_software": null,
        "pki_tree_updated_at": "2020-05-12T12:45:10.729225Z",
        "maintenance_window_start": "01:00:00",
        "maintenance_window_end": "03:00:00",
        "maintenance_last_start": null,
        "enable_autorepair": true,
        "enable_patch_version_auto_upgrade": false,
        "kubernetes_options": {
            "feature_gates": [
                "CPUManager"
             ],
            "admission_controllers": [
                "PodSecurityPolicy"
            ],
            "audit_logs": {
                "enabled": true,
                "secret_name": "mks-audit-logs"
            }
        },
        "zonal": true,
        "private_kube_api": false
    }
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Response samples

Content type
application/json
{
  • "cluster": {
    }
}

Upgrade cluster Kubernetes patch version

Example response:

{
    "cluster": {
        "id": "0551d9d2-fa10-4c57-9774-d7b088f5e0b2",
        "created_at": "2020-03-11T10:30:15.769125Z",
        "updated_at": "2020-03-11T11:30:15.769224Z",
        "name": "my-cluster",
        "status": "PENDING_UPGRADE_PATCH_VERSION",
        "project_id": "7d52bc2dc3f94c408d55562d1e92be35",
        "network_id": "9009ca40-223b-4773-a71f-02ba80ee2582",
        "subnet_id": "2970b83c-81ba-4ca2-8aff-11770f353b75",
        "kube_api_ip": "203.0.113.220",
        "kube_version": "1.16.9",
        "region": "ru-3",
        "additional_software": null,
        "pki_tree_updated_at": "2020-03-11T11:00:02.768124Z",
        "maintenance_window_start": "01:00:00",
        "maintenance_window_end": "03:00:00",
        "maintenance_last_start": null,
        "enable_autorepair": true,
        "enable_patch_version_auto_upgrade": true,
        "kubernetes_options": {
            "feature_gates": [
                "CPUManager"
             ],
            "admission_controllers": [
                "PodSecurityPolicy"
            ],
            "audit_logs": {
                "enabled": true,
                "secret_name": "mks-audit-logs"
            }
        },
        "zonal": false,
        "private_kube_api": false
    }
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Response samples

Content type
application/json
{
  • "cluster": {
    }
}

Nodegroups

Get all cluster nodegroups

Example response:

{
    "nodegroups": [
        {
            "id": "63ed5342-b22c-4c7a-9d41-c1fe4a142c13",
            "created_at": "2019-11-05T15:08:23.66493Z",
            "updated_at": "2019-11-06T10:50:39.304694Z",
            "cluster_id": "2d6feb84-ecca-4ea6-bd36-90a0ba838b5e",
            "flavor_id": "c48c1b7a-33b3-4ff1-94e8-8e48f1c848f9",
            "volume_gb": 64,
            "volume_type": "fast.ru-1a",
            "local_volume": false,
            "availability_zone": "ru-1a",
            "enable_autoscale": true,
            "autoscale_min_nodes": 1,
            "autoscale_max_nodes": 10,
            "nodegroup_type": "standard"
            "labels": {
              "key1": "value1",
              "key2": "value2"
            },
            "taints": [
              {
               "key": "key1",
               "value": "value1",
               "effect": "NoSchedule"
              },
              {
               "key": "key2",
               "value": "value2",
               "effect": "PreferNoSchedule"
              }
            ],
            "nodes": [
                {
                    "id": "94838b31-9ae0-4a23-88ad-256e4f13d345",
                    "created_at": "2019-11-05T15:08:23.672122Z",
                    "updated_at": "2019-11-06T10:50:39.31144Z",
                    "hostname": "first-node",
                    "ip": "198.51.100.101",
                    "nodegroup_id": "63ed5342-b22c-4c7a-9d41-c1fe4a142c13",
                    "os_server_id": "1821e0ef-cd77-4fea-bd39-5b1f470368b5"
                },
                {
                    "id": "ab0128c4-4ba3-4522-85bc-df26eb73f54d",
                    "created_at": "2019-11-05T15:08:23.670328Z",
                    "updated_at": "2019-11-06T10:50:39.310225Z",
                    "hostname": "second-node",
                    "ip": "198.51.100.102",
                    "nodegroup_id": "63ed5342-b22c-4c7a-9d41-c1fe4a142c13",
                    "os_server_id": "a2c3a2e1-5f4b-4d5d-a095-48c96bc83171"
                }
            ],
            "available_additional_info": {
                "user_data": false
            },
            "install_nvidia_device_plugin": false
        },
        {
            "id": "822aa376-790d-434d-ac56-3983fb4f6591",
            "created_at": "2019-11-05T15:08:23.663397Z",
            "updated_at": "2019-11-06T10:50:39.302515Z,
            "cluster_id": "2d6feb84-ecca-4ea6-bd36-90a0ba838b5e",
            "flavor_id": "11516413-5ff9-41e1-8673-bed6b8d3b102",
            "volume_gb": 100,
            "volume_type": "fast.ru-1b",
            "local_volume": false,
            "availability_zone": "ru-1b",
            "enable_autoscale": true,
            "autoscale_min_nodes": 1,
            "autoscale_max_nodes": 10,
            "nodegroup_type": "standard",
            "labels": {
              "key1": "value1",
              "key2": "value2"
            },
            "taints": [
              {
               "key": "key1",
               "value": "value1",
               "effect": "NoSchedule"
              },
              {
               "key": "key2",
               "value": "value2",
               "effect": "PreferNoSchedule"
              }
            ],
            "nodes": [
                {
                    "id": "bbba3f42-3f3d-4652-a57d-f1f68d4cf42e",
                    "created_at": "2019-11-05T15:08:23.668641Z",
                    "updated_at": "2019-11-06T10:50:39.308983Z",
                    "hostname": "third-node",
                    "ip": "198.51.100.103",
                    "nodegroup_id": "822aa376-790d-434d-ac56-3983fb4f6591",
                    "os_server_id": "6099e18b-27e2-4b74-8cf7-0e2bb4368b38"
                }
            ],
            "available_additional_info": {
                "user_data": true
            },
            "install_nvidia_device_plugin": false
        }
    ]
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Response samples

Content type
application/json
{
  • "nodegroups": [
    ]
}

Create a new cluster nodegroup

Create a new cluster nodegroup

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Request Body schema: application/json
required

Nodegroup create request body.

required
object (Nodegroup create.)
affinity_policy
string

AffinityPolicy is an optional parameter to tune nodes affinity.

autoscale_max_nodes
integer <int64>

AutoscaleMaxNodes represents maximum possible number of worker nodes in the nodegroup.

autoscale_min_nodes
integer <int64>

AutoscaleMinNodes represents minimum possible number of worker nodes in the nodegroup.

availability_zone
required
string

AvailabilityZone should contain the valid zone in the selected region of the created cluster.

count
required
integer <int64>

Count represents nodes count for this nodegroup.

cpus
integer <int64>

CPUs represents CPU count for each node. It can be omitted only in cases when flavor_id is set.

enable_autoscale
boolean

EnableAutoscale reflects if the nodegroup is allowed to be scaled automatically.

flavor_id
string

FlavorID contains reference to a pre-created flavor. It can be omitted in most cases.

install_nvidia_device_plugin
boolean

InstallNvidiaDevicePlugin indicates if nvidia device plugin installation was requested.

keypair_name
string

KeypairName contains name of the SSH key that will be added to all nodes.

object

Labels represents an object containing a set of Kubernetes labels that will be applied for each node in the group. The keys must be user-defined.

local_volume
boolean

LocalVolume represents if nodes will use local volume.

ram_mb
integer <int64>

RAMMB represents RAM count in MB for each node. It can be omitted only in cases when flavor_id is set.

Array of objects (NodegroupTaint)

Taints represents a list of nodegroup taints.

user_data
string

UserData represents base64 data which is used to pass a script that worker nodes run on boot.

volume_gb
integer <int64>

VolumeGB represents volume size in GB for each node. It can be omitted only in cases when flavor_id is set and volume is local.

volume_type
string

VolumeType represents blockstorage volume type for each node. It can be omitted only in cases when flavor_id is set and volume is local.

Responses

Request samples

Content type
application/json
{
  • "nodegroup": {
    }
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Get cluster nodegroup by ID

Example response:

{
    "nodegroup": {
        "id": "63ed5342-b22c-4c7a-9d41-c1fe4a142c13",
        "created_at": "2019-11-05T15:08:23.66493Z",
        "updated_at": "2019-11-06T10:50:39.304694Z",
        "cluster_id": "2d6feb84-ecca-4ea6-bd36-90a0ba838b5e",
        "flavor_id": "c48c1b7a-33b3-4ff1-94e8-8e48f1c848f9",
        "volume_gb": 32,
        "volume_type": "",
        "local_volume": true,
        "availability_zone": "ru-1a",
        "enable_autoscale": true,
        "autoscale_min_nodes": 1,
        "autoscale_max_nodes": 10,
        "nodegroup_type": "standard",
        "labels": {
          "key1": "value1",
          "key2": "value2"
        },
        "taints": [
         {
           "key": "key1",
           "value": "value1",
           "effect": "NoSchedule"
         },
         {
           "key": "key2",
           "value": "value2",
           "effect": "PreferNoSchedule"
         }
        ],
        "nodes": [
            {
                "id": "94838b31-9ae0-4a23-88ad-256e4f13d345",
                "created_at": "2019-11-05T15:08:23.672122Z",
                "updated_at": "2019-11-06T10:50:39.31144Z",
                "hostname": "first-node",
                "ip": "198.51.100.101",
                "nodegroup_id": "63ed5342-b22c-4c7a-9d41-c1fe4a142c13",
                "os_server_id": "6099e18b-27e2-4b74-8cf7-0e2bb4368b38"
            },
            {
                "id": "ab0128c4-4ba3-4522-85bc-df26eb73f54d",
                "created_at": "2019-11-05T15:08:23.670328Z",
                "updated_at": "2019-11-06T10:50:39.310225Z",
                "hostname": "second-node",
                "ip": "198.51.100.102",
                "nodegroup_id": "63ed5342-b22c-4c7a-9d41-c1fe4a142c13",
                "os_server_id": "1d23179d-6fd5-4737-8f68-0e3796735657"
            }
        ],
        "user_data": "IyEvYmluL2Jhc2ggLXYKYXB0IC15IHVwZGF0ZQphcHQgLXkgaW5zdGFsbCBtdHI=",
        "install_nvidia_device_plugin": true
    }
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

nodegroup_id
required
string

Nodegroup identifier.

Responses

Response samples

Content type
application/json
{
  • "nodegroup": {
    }
}

Update nodegroup

Update nodegroup

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

nodegroup_id
required
string

Nodegroup identifier.

Request Body schema: application/json
required

Nodegroup update request body.

required
object (Nodegroup update.)
autoscale_max_nodes
integer <int64>

AutoscaleMaxNodes represents maximum possible number of worker nodes in the nodegroup.

autoscale_min_nodes
integer <int64>

AutoscaleMinNodes represents minimum possible number of worker nodes in the nodegroup.

enable_autoscale
boolean

EnableAutoscale reflects if the nodegroup is allowed to be scaled automatically.

object

Labels represents an object containing a set of Kubernetes labels that will be applied for each node in the group. The keys must be user-defined.

Array of objects (NodegroupTaint)

Taints represents an object containing a set of Kubernetes taints that will be applied for each node in the group.

Note 💡

Changing the list of taints equal to applyingkubectl taint nodeswith flag--overwrite=true.

Responses

Request samples

Content type
application/json
{
  • "nodegroup": {
    }
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete cluster nodegroup

Delete cluster nodegroup

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

nodegroup_id
required
string

Nodegroup identifier.

Responses

Resize cluster nodegroup

Resize cluster nodegroup

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

nodegroup_id
required
string

Nodegroup identifier.

Request Body schema: application/json
required

Nodegroup resize request body.

required
object (SwaggerNodegroupResizeBody_nodegroup)

Nodegroup resize request body.

in: body

desired
required
integer <int64>

Desired represents desired amount of nodes for this nodegroup.

Responses

Request samples

Content type
application/json
{
  • "nodegroup": {
    }
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Nodes

Get node of a cluster nodegroup by ID

Example response:

{
    "node": {
        "id": "94838b31-9ae0-4a23-88ad-256e4f13d345",
        "created_at": "2019-11-05T15:08:23.672122Z",
        "updated_at": "2019-11-06T10:50:39.31144Z",
        "hostname": "first-node",
        "ip": "198.51.100.101",
        "nodegroup_id": "63ed5342-b22c-4c7a-9d41-c1fe4a142c13",
        "os_server_id": "1821e0ef-cd77-4fea-bd39-5b1f470368b5"
    }
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

nodegroup_id
required
string

Nodegroup identifier.

node_id
required
string

Node identifier.

Responses

Response samples

Content type
application/json
{
  • "node": {
    }
}

deleteNode

Delete node of a cluster nodegroup by ID

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

nodegroup_id
required
string

Nodegroup identifier.

node_id
required
string

Node identifier.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Reinstall node of a cluster nodegroup by ID

Reinstall node of a cluster nodegroup by ID

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

nodegroup_id
required
string

Nodegroup identifier.

node_id
required
string

Node identifier.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Registries

Get integrated registries

Get integrated registries

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Response samples

Content type
application/json
{
  • "registries": [
    ],
  • "status": "string"
}

Update registries integration

Update registries integration

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Request Body schema: application/json
required

Registry update request body.

Array of objects (Registry)
Array
id
string

ID represents unique identifier of the registry.

Responses

Request samples

Content type
application/json
{
  • "registries": [
    ]
}

Response samples

Content type
application/json
{
  • "registries": [
    ],
  • "status": "string"
}

Create registries integration

Create registries integration

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Request Body schema: application/json
required

Create registries integration request body.

Array of objects (Registry)
Array
id
string

ID represents unique identifier of the registry.

Responses

Request samples

Content type
application/json
{
  • "registries": [
    ]
}

Response samples

Content type
application/json
{
  • "registries": [
    ],
  • "status": "string"
}

Delete all registry integrations

Delete all registry integrations

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete registry integration

Delete registry integration

Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

registry_id
required
string

Registry identifier.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Tasks

Get all cluster tasks

Example response:

{
    "count": 2,
    "tasks": [
        {
            "id": "aaa350dc-bbc2-442b-8d53-788d45b68728",
            "started_at": "2019-11-04T12:54:20.784887Z",
            "updated_at": "2019-11-04T13:00:08.782731Z",
            "cluster_id": "087f27de-8f9b-4368-9123-98f49161a69f",
            "status": "DONE",
            "type": "CREATE_CLUSTER",
            "error_details": {
                "code": 0,
                "name": "NO_ERROR",
                "details": ""
            }
        },
        {
            "id": "a462e4ff-83e4-4aa4-b63b-731942a95644",
            "started_at": "2019-11-04T14:12:08.784887Z",
            "updated_at": "2019-11-04T14:12:54.782731Z",
            "cluster_id": "087f27de-8f9b-4368-9123-98f49161a69f",
            "status": "DONE",
            "type": "ROTATE_CERTS",
            "error_details": {
                "code": 0,
                "name": "NO_ERROR",
                "details": ""
            }
        }
    ]
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

query Parameters
with_error_details
boolean

Flag to show error details at task view.

Offset
integer <int64>

Number of tasks to skip.

Limit
integer <int64>

Limit of tasks in response.

Responses

Response samples

Content type
application/json
{
  • "count": 0,
  • "tasks": [
    ]
}

Get cluster task by ID

Example response:

{
    "task": {
        "id": "aaa350dc-bbc2-442b-8d53-788d45b68728",
        "started_at": "2019-11-04T12:54:20.784887Z",
        "updated_at": "2019-11-04T13:00:08.782731Z",
        "cluster_id": "087f27de-8f9b-4368-9123-98f49161a69f",
        "status": "DONE",
        "type": "CREATE_CLUSTER",
        "error_details": {
            "code": 0,
            "name": "NO_ERROR",
            "details": ""
        },
         "task_data": {
             "location_name": "SPB-5",
             "service_uuid": "00353c1d-1e64-5ae1-a083-145dce6838b1",
             "nodegroup_type": "DEDICATED"
       }
    }
}
Authorizations:
X-Auth-Token
path Parameters
cluster_id
required
string

Cluster identifier.

task_id
required
string

Task identifier.

query Parameters
with_error_details
boolean

Flag to show error details at task view.

with_task_details
boolean

Flag to show task details at task view.

Responses

Response samples

Content type
application/json
{
  • "task": {
    }
}

FeatureGates

Get supported feature gates

Get supported feature gates

Authorizations:
X-Auth-Token

Responses

Response samples

Content type
application/json
{
  • "feature_gates": [
    ]
}

Kubeversions

Get all supported Kubernetes versions

Get all supported Kubernetes versions

Authorizations:
X-Auth-Token

Responses

Response samples

Content type
application/json
{
  • "kube_versions": [
    ]
}