UpCloud

Managed Kubernetes

UpCloud Kubernetes Service (UKS) provides fully managed Kubernetes clusters. Deploy containerized applications with automatic scaling, upgrades, and high availability.


GET/1.3/kubernetes/plans

List plans

Returns a list of available Kubernetes node plans.

Request

GET
/1.3/kubernetes/plans
curl -X GET https://api.upcloud.com/1.3/kubernetes/plans \
  -u your_username:your_password

GET/1.3/kubernetes

List clusters

Returns a list of all Kubernetes clusters in the account.

Request

GET
/1.3/kubernetes
curl -X GET https://api.upcloud.com/1.3/kubernetes \
  -u your_username:your_password

GET/1.3/kubernetes/{uuid}

Get cluster details

Returns detailed information about a specific cluster.

Request

GET
/1.3/kubernetes/{uuid}
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123 \
  -u your_username:your_password

POST/1.3/kubernetes

Create cluster

Creates a new Kubernetes cluster.

Attributes

  • Name
    name
    Type
    string
    Description

    Cluster name. Required.

  • Name
    zone
    Type
    string
    Description

    Zone identifier. Required.

  • Name
    version
    Type
    string
    Description

    Kubernetes version. Required.

  • Name
    network_uuid
    Type
    string
    Description

    Private network UUID. Required.

  • Name
    node_groups
    Type
    array
    Description

    Node group configurations. Required.

  • Name
    control_plane_ip_filter
    Type
    array
    Description

    IP addresses allowed to access the control plane.

  • Name
    private_node_groups
    Type
    boolean
    Description

    Whether node groups are private (no public IPs).

  • Name
    labels
    Type
    array
    Description

    Labels for classification.

Request

POST
/1.3/kubernetes
curl -X POST https://api.upcloud.com/1.3/kubernetes \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "name": "my-cluster",
    "zone": "fi-hel1",
    "version": "1.28",
    "network_uuid": "034c12bc-cf15-4b19-97b2-0ab4e51bb98d",
    "node_groups": [
      {
        "name": "default",
        "count": 3,
        "plan": "K8S-4xCPU-8GB",
        "anti_affinity": true
      }
    ],
    "control_plane_ip_filter": ["0.0.0.0/0"]
  }'

PATCH/1.3/kubernetes/{uuid}

Modify cluster

Modifies an existing cluster configuration.

Request

PATCH
/1.3/kubernetes/{uuid}
curl -X PATCH https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123 \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "control_plane_ip_filter": ["10.0.0.0/8"]
  }'

GET/1.3/kubernetes/{uuid}/available-upgrades

Get available upgrades

Returns a list of available Kubernetes versions that the cluster can be upgraded to.

Request

GET
/1.3/kubernetes/{uuid}/available-upgrades
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/available-upgrades \
  -u your_username:your_password

POST/1.3/kubernetes/{uuid}/upgrade

Upgrade cluster

Upgrades the cluster to a newer Kubernetes version.

Attributes

  • Name
    version
    Type
    string
    Description

    Kubernetes version to upgrade to.

  • Name
    strategy
    Type
    object
    Description

    Node group upgrade strategy. Manual strategy is used by default.

Request

POST
/1.3/kubernetes/{uuid}/upgrade
curl -X POST https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/upgrade \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.29",
    "strategy": {
      "type": "manual"
    }
  }'

GET/1.3/kubernetes/{uuid}/kubeconfig

Get kubeconfig

Returns the kubeconfig file for connecting to the cluster.

Request

GET
/1.3/kubernetes/{uuid}/kubeconfig
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/kubeconfig \
  -u your_username:your_password

DELETE/1.3/kubernetes/{uuid}

Delete cluster

Deletes a Kubernetes cluster and all its resources.

Request

DELETE
/1.3/kubernetes/{uuid}
curl -X DELETE https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123 \
  -u your_username:your_password

GET/1.3/kubernetes/{uuid}/node-groups

List node groups

Returns a list of node groups in the cluster. A node group is a uniform set of worker nodes attached to a cluster.

Request

GET
/1.3/kubernetes/{uuid}/node-groups
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups \
  -u your_username:your_password

GET/1.3/kubernetes/{uuid}/node-groups/{name}

Get node group details

Returns detailed information about a specific node group, including the list of individual nodes.

Request

GET
/1.3/kubernetes/{uuid}/node-groups/{name}
curl -X GET https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups/default \
  -u your_username:your_password

POST/1.3/kubernetes/{uuid}/node-groups

Create node group

Creates a new node group in the cluster.

Attributes

  • Name
    name
    Type
    string
    Description

    Node group name. Required.

  • Name
    count
    Type
    integer
    Description

    Number of nodes. Required.

  • Name
    plan
    Type
    string
    Description

    Node plan. Required.

  • Name
    anti_affinity
    Type
    boolean
    Description

    Enable anti-affinity placement.

  • Name
    labels
    Type
    array
    Description

    Kubernetes labels for nodes.

  • Name
    taints
    Type
    array
    Description

    Kubernetes taints for nodes.

Request

POST
/1.3/kubernetes/{uuid}/node-groups
curl -X POST https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "name": "gpu-nodes",
    "count": 2,
    "plan": "K8S-8xCPU-32GB",
    "labels": [
      {"key": "node-type", "value": "gpu"}
    ],
    "taints": [
      {"key": "gpu", "value": "true", "effect": "NoSchedule"}
    ]
  }'

PATCH/1.3/kubernetes/{uuid}/node-groups/{name}

Modify node group

Modifies an existing node group. Use this to scale the number of nodes in a group.

Attributes

  • Name
    count
    Type
    integer
    Description

    Number of nodes in the group.

Request

PATCH
/1.3/kubernetes/{uuid}/node-groups/{name}
curl -X PATCH https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups/default \
  -u your_username:your_password \
  -H "Content-Type: application/json" \
  -d '{
    "count": 5
  }'

DELETE/1.3/kubernetes/{uuid}/node-groups/{name}

Delete node group

Deletes a node group from the cluster.

Request

DELETE
/1.3/kubernetes/{uuid}/node-groups/{name}
curl -X DELETE https://api.upcloud.com/1.3/kubernetes/05d0af99-c1e2-4f63-91b8-2dc32ef4f123/node-groups/gpu-nodes \
  -u your_username:your_password