Skip to main content
POST
Create an UpCloud cluster

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

authorization
string | null
x-ankra-organisation-id
string | null

Body

application/json
credential_id
string<uuid4>
required
name
string
required
ssh_key_credential_id
string<uuid4>
required
zone
string
required
bastion_plan
string
default:1xCPU-1GB
cni
enum<string>

Container network. Omitted resolves to cilium on kubeadm (the default distribution) and flannel on k3s.

Available options:
flannel,
calico,
cilium
control_plane_count
integer
default:1
control_plane_plan
string
default:2xCPU-4GB
criticality
enum<string> | null
Available options:
production,
staging,
development,
disposable
description
string | null
distribution
string
default:kubeadm
environment
string | null
Required string length: 1 - 50
etcd_node_count
integer
default:3
etcd_plan
string
default:2xCPU-4GB
etcd_topology
string
default:stacked
external_cloud_provider
boolean
default:true
gitops_branch
string
default:master
gitops_credential_name
string | null
gitops_repository
string | null
include_networking
boolean
default:true
kubernetes_version
string | null
network_mode
enum<string>

Derived when omitted: wireguard_mesh for a multi-zone pool, private_network otherwise. Set wireguard_mesh on a single-zone cluster to make it mesh-capable so zones can be added later; a mesh cannot be retrofitted.

Available options:
private_network,
wireguard_mesh
network_ip_range
string | null
node_groups
CreateUpcloudNodeGroupRequest · object[] | null
worker_count
integer
default:1
worker_plan
string
default:2xCPU-4GB
zones
string[]

Zone pool for a multi-zone cluster. Must contain zone (the primary zone: bastion, first control plane and default network). Each additional zone gets its own SDN router, private network and NAT gateway, and the nodes are joined by a platform-managed WireGuard mesh. More than one zone needs at least three zones and three control planes. Omitted keeps the cluster in zone only.

Response

Cluster created successfully

cluster_id
string<uuid4>
required
name
string
required