apiVersion: v1 kind: Namespace metadata: name: k0s-test --- apiVersion: cluster.x-k8s.io/v1beta1 kind: Cluster metadata: name: hetzner-test namespace: k0s-test spec: clusterNetwork: pods: cidrBlocks: - 10.244.0.0/16 services: cidrBlocks: - 10.96.0.0/12 controlPlaneRef: apiVersion: controlplane.cluster.x-k8s.io/v1beta1 kind: K0smotronControlPlane # This tells that k0smotron should create the controlplane name: hetzner-test-cp infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: HetznerCluster name: hetzner-test --- apiVersion: controlplane.cluster.x-k8s.io/v1beta1 kind: K0smotronControlPlane # This is the config for the controlplane metadata: name: hetzner-test-cp namespace: k0s-test spec: version: v1.33.2-k0s.0 persistence: type: emptyDir service: type: LoadBalancer apiPort: 6443 konnectivityPort: 8132 annotations: load-balancer.hetzner.cloud/location: fsn1 --- apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: HetznerCluster metadata: name: hetzner-test namespace: k0s-test annotations: cluster.x-k8s.io/managed-by: k0smotron # This marks the base infra to be self managed. The value of the annotation is irrelevant, as long as there is a value. spec: controlPlaneLoadBalancer: enabled: false controlPlaneEndpoint: # This is just a placeholder, can be anything as k0smotron will overwrite it host: "5.75.210.176" port: 6443 controlPlaneRegions: - fsn1 hetznerSecretRef: name: hetzner key: hcloudToken: hcloud --- apiVersion: cluster.x-k8s.io/v1beta1 kind: MachineDeployment metadata: name: hetnzer-test-md namespace: k0s-test spec: clusterName: hetzner-test replicas: 3 selector: matchLabels: cluster.x-k8s.io/cluster-name: hetzner-test pool: worker-pool-1 template: metadata: labels: cluster.x-k8s.io/cluster-name: hetzner-test pool: worker-pool-1 spec: clusterName: hetzner-test bootstrap: configRef: # This triggers our controller to create cloud-init secret apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 kind: K0sWorkerConfigTemplate name: hetzner-test-machine-config infrastructureRef: apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: HCloudMachineTemplate name: hetzner-test-mt --- apiVersion: infrastructure.cluster.x-k8s.io/v1beta1 kind: HCloudMachineTemplate metadata: name: hetzner-test-mt namespace: k0s-test spec: template: spec: imageName: ubuntu-24.04 type: cpx21 sshKeys: - name: vasyansk --- apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 kind: K0sWorkerConfigTemplate metadata: name: hetzner-test-machine-config namespace: k0s-test spec: template: spec: version: v1.33.2+k0s.0 # More details of the worker configuration can be set here --- apiVersion: v1 kind: Secret data: hcloud: UWlBNTYxOEJ3cDVxd05MQTZBVjlkNHBGY09VSUlXWUxBODE2TTRRc0pIUlJMT0JlTWprbjJ6VkJBc1RIbjZsOA== metadata: name: hetzner namespace: k0s-test