name | required | Unique cluster name |
credential_id | required | UpCloud API credential ID |
ssh_key_credential_id | required | SSH key credential ID |
zone | required | UpCloud datacenter zone |
zones | | Zone pool for a multi-zone cluster, must include zone (the primary). At least 3 zones and 3 control planes; kubeadm only. See Multi-zone clusters |
network_mode | derived | private_network or wireguard_mesh; wireguard_mesh for a pool, and on a single zone it makes the cluster mesh-capable so zones can be added later. On a wireguard_mesh cluster the load balancer backends are addressed on the private network rather than the overlay, so LoadBalancer Services work unchanged - see the guide |
network_ip_range | 10.0.0.0/24 | Private network IP range. A multi-zone pool takes one consecutive /24 per zone from this range |
bastion_plan | STARTER-1xCPU-1GB | Server plan for the bastion host |
control_plane_count | 1 | Number of control plane nodes (1 or 3) |
control_plane_plan | PREMIUM-2xCPU-4GB | Server plan for control planes |
worker_count | 1 | Number of worker nodes (legacy, use node_groups instead) |
worker_plan | PREMIUM-2xCPU-4GB | Server plan for workers (legacy, use node_groups instead) |
node_groups | | Array of node group definitions (see Node groups) |
distribution | kubeadm | Kubernetes distribution (kubeadm or k3s) |
kubernetes_version | latest stable | Kubernetes version (optional) |