Skip to content

Latest commit

 

History

History
77 lines (66 loc) · 7.79 KB

variables.md

File metadata and controls

77 lines (66 loc) · 7.79 KB

Requirements

Name Version
hcloud 1.42.1
tls 4.0.4

Providers

Name Version
hcloud 1.42.1
local 2.4.0
tls 4.0.4

Modules

Name Source Version
controller_ips ./modules/network n/a
controllers ./modules/server n/a
k0s ./modules/k0s n/a
worker_ips ./modules/network n/a
workers ./modules/server n/a

Resources

Name Type
hcloud_ssh_key.terraform-hcloud-k0s resource
local_file.ssh_priv_key_path resource
tls_private_key.ed25519 resource

Inputs

Name Description Type Default Required
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

Outputs

Name Description
controller_ip_addresses n/a
lb_ip_addresses n/a
worker_ip_addresses n/a