Skip to content

Hetzner

Hetzner provider requires credentials token field in string format, and Hetzner DNS provider requires apiToken field in string format.

Compute example

providers:
  hetzner:
    - name: hetzner-1
      credentials: token

DNS example

providers:
  hetznerdns:
    - name: hetznerdns-1
      apiToken: token

Create Hetzner API credentials

You can create Hetzner API credentials by following this guide. The required permissions for the zone you want to use are:

Read & Write

Create Hetzner DNS credentials

You can create Hetzner DNS credentials by following this guide.

DNS provider specification

The provider for DNS is different from the one for the Cloud.

DNS setup

If you wish to use Hetzner as your DNS provider where Claudie creates DNS records pointing to Claudie managed clusters, you will need to create a public DNS zone by following this guide.

Hetzner is not my domain registrar

If you haven't acquired a domain via Hetzner and wish to utilize Hetzner for hosting your zone, you can refer to this guide on Hetzner nameservers. However, if you prefer not to use the entire domain, an alternative option is to delegate a subdomain to Hetzner.

Input manifest examples

Single provider, multi region cluster example

name: HetznerExampleManifest

providers:
  hetzner:
    - name: hetzner-1
      # API access token.
      credentials: kslISA878a6etYAfXYcg5iYyrFGNlCxcICo060HVEygjFs21nske76ksjKko21lp

nodePools:
  dynamic:
    - name: control-hetzner
      providerSpec:
        # Name of the provider instance.
        name: hetzner-1
        # Region of the nodepool.
        region: hel1
        # Datacenter of the nodepool.
        zone: hel1-dc2
      count: 1
      # Machine type name.
      serverType: cpx11
      # OS image name.
      image: ubuntu-22.04

    - name: compute-1-hetzner
      providerSpec:
        # Name of the provider instance.
        name: hetzner-1
        # Region of the nodepool.
        region: fsn1
        # Datacenter of the nodepool.
        zone: fsn1-dc14
      count: 2
      # Machine type name.
      serverType: cpx11
      # OS image name.
      image: ubuntu-22.04
      storageDiskSize: 50

    - name: compute-2-hetzner
      providerSpec:
        # Name of the provider instance.
        name: hetzner-1
        # Region of the nodepool.
        region: nbg1
        # Datacenter of the nodepool.
        zone: nbg1-dc3
      count: 2
      # Machine type name.
      serverType: cpx11
      # OS image name.
      image: ubuntu-22.04
      storageDiskSize: 50

kubernetes:
  clusters:
    - name: hetzner-cluster
      version: v1.24.0
      network: 192.168.2.0/24
      pools:
        control:
          - control-hetzner
        compute:
          - compute-1-hetzner
          - compute-2-hetzner

Multi provider, multi region clusters example

name: HetznerExampleManifest

providers:
  hetzner:
    - name: hetzner-1
      # API access token.
      credentials: kslISA878a6etYAfXYcg5iYyrFGNlCxcICo060HVEygjFs21nske76ksjKko21lp

    - name: hetzner-2
      # API access token.
      credentials: kslIIOUYBiuui7iGBYIUiuybpiUB87bgPyuCo060HVEygjFs21nske76ksjKko21l

nodePools:
  dynamic:
    - name: control-hetzner-1
      providerSpec:
        # Name of the provider instance.
        name: hetzner-1
        # Region of the nodepool.
        region: hel1
        # Datacenter of the nodepool.
        zone: hel1-dc2
      count: 1
      # Machine type name.
      serverType: cpx11
      # OS image name.
      image: ubuntu-22.04

    - name: control-hetzner-2
      providerSpec:
        # Name of the provider instance.
        name: hetzner-2
        # Region of the nodepool.
        region: fsn1
        # Datacenter of the nodepool.
        zone: fsn1-dc14
      count: 2
      # Machine type name.
      serverType: cpx11
      # OS image name.
      image: ubuntu-22.04

    - name: compute-hetzner-1
      providerSpec:
        # Name of the provider instance.
        name: hetzner-1
        # Region of the nodepool.
        region: fsn1
        # Datacenter of the nodepool.
        zone: fsn1-dc14
      count: 2
      # Machine type name.
      serverType: cpx11
      # OS image name.
      image: ubuntu-22.04
      storageDiskSize: 50

    - name: compute-hetzner-2
      providerSpec:
        # Name of the provider instance.
        name: hetzner-2
        # Region of the nodepool.
        region: nbg1
        # Datacenter of the nodepool.
        zone: nbg1-dc3
      count: 2
      # Machine type name.
      serverType: cpx11
      # OS image name.
      image: ubuntu-22.04
      storageDiskSize: 50

kubernetes:
  clusters:
    - name: hetzner-cluster
      version: v1.24.0
      network: 192.168.2.0/24
      pools:
        control:
          - control-hetzner-1
          - control-hetzner-2
        compute:
          - compute-hetzner-1
          - compute-hetzner-2