Cluster Configurator
A Cluster API object, extended by Syself for Hetzner Cloud and bare metal. The reference below shows only the fields you can and should set, anything Cluster API exposes that Syself does not use is left out.
Creating a new cluster? Follow Create your first cluster alongside this page.
Upgrading an existing cluster? Use the upgrade guide instead, and make sure the version picker above matches your cluster's Cluster Stack Release.
Before you start
- You are logged in to the management cluster
$ kubectl get clusters - Your Hetzner account is connected
$ kubectl get secrets -n <namespace>
Have a cluster already? Export it with $ kubectl get cluster <name> -n <namespace> -o yaml and drop the file here. Upgrades don't go through the configurator: upgrade guide.
Cluster configuration
Identity, networking, authentication, encryption, and control plane configuration for the cluster.
The name of the Cluster object. Used to identify this cluster within the management cluster. See Create your first cluster
The namespace of your organization, in the format org-<your-company-name>. Find the exact value in your account setup email. See account setup guide
Labels on the Cluster object itself, labels are a standard Kubernetes concept that exists on any Kubernetes object and have no effect on the cluster itself. They can be useful for filtering cluster objects and are not propagated to nodes.
Annotations on the Cluster object itself. Annotations are a standard Kubernetes concept that exists on any Kubernetes object and have no effect on the cluster itself. They can be used to attach arbitrary metadata to objects.
References a specific Cluster Stack release. To choose a release for a new cluster, see Cluster Stacks. Updating this value upgrades the cluster's Kubernetes version. To upgrade an existing cluster, go to the upgrade guide and follow the steps.
Change the release with the version selector, or follow the Upgrade Guide for an existing cluster.
Configuration for the machines running the cluster's control plane, the Kubernetes API server and core components.
Hetzner load balancer type for control plane API traffic. Changing this also resizes an existing cluster's load balancer. See the load balancer guide
Hetzner location for the control plane's load balancer. On HCloud, this also places the control plane's servers. Machine deployments default to this same location unless they set their own failureDomain. See Hetzner's location list
Which infrastructure backs the control plane. One of hcloud or hetznerbaremetal. See Bare-metal control planes
Hetzner server type for control plane machines. See the server sizing guide
Number of control plane nodes. See the HA control plane guide
Names a placement group for the control plane's machines, spread across separate physical hosts for fault tolerance. Whatever name you type here, automatically shows up in the Placement groups section of Cluster configuration. See Spread nodes with placement groups
We recommend giving the control plane its own placement group, separate from worker pools this way a growing worker pool can never push it past the 10-server limit.
Labels for the control plane, merged onto the actual Control Plane Machines it creates. See: Label nodes and assign roles
Cluster networking configuration. Syself templates a working default for the service CIDR, pod CIDR and service domain, shown for reference, they're not meant to be edited. See pod and service subnet guide.
No placement groups yet. Name one on the control plane or a machine deployment and it appears here.
OpenID Connect (OIDC) lets you delegate cluster authentication to an external identity provider. First complete the OIDC setup in your identity provider (Keycloak, Authentik, etc.) and then set these variables on the cluster. OIDC does not have to be enabled at cluster creation, it can be configured later. See the OIDC guide.
Protects sensitive data stored in your cluster. etcd encryption-at-rest ensures Secrets, ConfigMaps, and other resources in etcd can't be read from raw disk or backups. KubeGate restricts which source IPs can reach the Kubernetes API server.
Machine deployments
The worker machine deployments that make up this cluster.
Generated from the position in the list, and yours to rename. Unique within the cluster. See Node pools and machine deployments
Selects the infrastructure this machine deployment runs on. See Mix cloud and bare-metal pools
Which Hetzner location this machine deployment's machines are placed in. See Add cloud servers
Required when class is workeramd64hcloud. Hetzner server type for this machine deployment.
Number of worker nodes in this machine deployment. See Scale a node pool
Names a placement group for this machine deployment's machines, spread across separate physical hosts for fault tolerance. Whatever name you type here, automatically shows up in the Placement groups section of Cluster configuration.
Labels for this machine deployment, merged onto the actual worker Machines it creates.