balance_control_plane |
Whether the control plane will be load balanced. Needs > 1 controller |
bool |
false |
no |
balance_worker_plane |
Whether the control plane will be load balanced. Needs > 1 worker |
bool |
false |
no |
controller_count |
The number of controllers. Defaults to 3 |
number |
3 |
no |
controller_role |
The k0s role for a controller. Values: controller, controller+worker, single |
string |
"controller" |
no |
controller_server_datacenter |
The Hetzner datacenter name to create the server in. Values: nbg1-dc3, fsn1-dc14, hel1-dc2, ash-dc1 or hil-dc1 |
string |
"fsn1-dc14" |
no |
controller_server_image |
The Hetzner cloud server image. Values: debian-11, debian-12 |
string |
"debian-12" |
no |
controller_server_type |
The Hetzner cloud server type. Values: cax11, cax21, cax31, cax41 (all ARM64) |
string |
"cax11" |
no |
domain |
The domain of all hosts. Will be used to generate all PTRs and names |
string |
n/a |
yes |
enable_ipv4 |
Whether an IPv4 address should be allocated |
bool |
true |
no |
enable_ipv6 |
Whether an IPv6 address should be allocated |
bool |
true |
no |
enable_private_network |
Whether to enable a Hetzner private network interconnecting all nodes or not |
bool |
false |
no |
extra_workers |
A map of objects containing IPv4/IPv6 public and private addresses. Use it to add workers that aren't terraform resources, e.g. baremetal servers |
map(object({ public_ipv4 = optional(string), public_ipv6 = optional(string), private_ipv4 = optional(string), })) |
{} |
no |
hccm_enable |
Whether or not the Hetzner Cloud controller manager will be installed |
bool |
true |
no |
hcloud_token |
Value of the Hetzner token |
string |
n/a |
yes |
hcsi_enable |
Whether or not the Hetzner CSI (Cloud Storage Interface) will be installed |
bool |
true |
no |
hcsi_encryption_key |
If specified, a Kubernetes StorageClass with LUKS encryption will become available |
string |
"" |
no |
k0s_version |
The version of k0s to target. Default: 1.27.5+k0s.0 |
string |
"1.27.5+k0s.0" |
no |
network_ip_range |
A CIDR in the RFC1918 space for the Hetzner private network. This is an umbrella entity, don't be frugal |
string |
"10.100.0.0/16" |
no |
network_subnet_ip_range |
A CIDR in the RFC1918 space for the Hetzner private network subnet. This needs to be part of the network_ip_range |
string |
"10.100.1.0/24" |
no |
network_subnet_type |
Either cloud of vswitch. vswitch is only possible if you also have a Hetzner Robot vswitch |
string |
"cloud" |
no |
network_vswitch_id |
ID of the vswitch, Required if type is vswitch |
number |
null |
no |
network_zone |
The Hetzner network zone. Stick to eu-central for now |
string |
"eu-central" |
no |
prometheus_enable |
Whether to enable the entire prometheus stack |
bool |
true |
no |
single_controller_hostname |
If you are deploying using a single role, it's probably a pet. Name it |
string |
null |
no |
ssh_priv_key_path |
The private SSH for connecting to servers. If left empty, terraform will create a key pair for you |
string |
null |
no |
ssh_pub_key |
Public SSH key for connecting to servers. If left empty, terraform will create a key pair for you |
string |
null |
no |
worker_count |
The number of workers. Defaults to 3 |
number |
3 |
no |
worker_server_datacenter |
The Hetzner datacenter name to create the server in. Values: nbg1-dc3, fsn1-dc14, hel1-dc2, ash-dc1 or hil-dc1 |
string |
"fsn1-dc14" |
no |
worker_server_image |
The Hetzner cloud server image. Values: debian-11, debian-12 |
string |
"debian-12" |
no |
worker_server_type |
The Hetzner cloud server type. Values: cax11, cax21, cax31, cax41 (all ARM64) |
string |
"cax11" |
no |