← modules/server/hetzner · Registry

modules/server/hetzner 0.2.0

Source: cf-tfr.davidguerrero.fr/modules/server/hetzner

module "server" {
  source  = "cf-tfr.davidguerrero.fr/modules/server/hetzner"
  version = "0.2.0"
}

Download: module.tar.gz


Requirements

Name Version
terraform >= 1.0
bunnynet >= 0.13
hcloud ~> 1.60
netbird 0.0.9
random 3.8.1
tailscale 0.13.7
tls 4.2.1

Providers

Name Version
bunnynet >= 0.13
hcloud ~> 1.60
netbird 0.0.9
random 3.8.1
tailscale 0.13.7
tls 4.2.1

Modules

No modules.

Resources

Name Type
bunnynet_dns_record.server resource
hcloud_server.node resource
hcloud_server_network.node resource
hcloud_ssh_key.key resource
netbird_setup_key.server resource
random_password.cluster_token resource
tailscale_device_key.server resource
tailscale_tailnet_key.key resource
tls_private_key.ssh resource
hcloud_servers.cluster_peers data source
tailscale_device.server data source

Inputs

Name Description Type Default Required
add_public_ingress_labels Whether to add the public ingress labels. bool false no
agent_mode Run the server in k3s agent mode (requires an existing control plane). bool false no
api_server_domain Kubernetes API server domain to add to the API server certificate. string null no
bunnynet_dns_zone_id Bunny.net DNS zone ID to create a record for the server. string n/a yes
cluster_name Cluster name to use as tag and discover peers. string n/a yes
disable_tailscale_key_expiry Disable Tailscale key expiry. Should always be true unless the server didn't come up properly and you still need to destroy resources. bool true no
dockerhub_token DockerHub credentials token. string n/a yes
dockerhub_username DockerHub credentials username. string n/a yes
firewall_ids List of firewall IDs to attach to the server. list(string) [] no
image Image identifier. string "ubuntu-24.04" no
k3s_version Version of k3s to install. string "v1.35.1" no
kubeconfig_aws_access_key_id AWS access key ID used to set the kubeconfig SSM parameter. string n/a yes
kubeconfig_aws_region AWS region used to set the kubeconfig SSM parameter. string n/a yes
kubeconfig_aws_secret_access_key AWS secret access key used to set the kubeconfig SSM parameter. string n/a yes
kubeconfig_ssm_parameter_name SSM parameter name where to set the kubeconfig. string n/a yes
location Server location. string "nbg1" no
name Name of the server. string n/a yes
netbird_domain NetBird DNS suffix for peer hostnames. string "netbird.cloud" no
netbird_group_ids List of NetBird group IDs to assign to the server. list(string) [] no
placement_group_id Placement group ID. string null no
private_ip The private IP to use within the private network. string null no
server_type Server type. string "cax11" no
subnet_id The network subnet ID to create the server in. string null no
tailscale_tailnet_name Tailscale Tailnet name. string n/a yes
use_netbird Set to true to enable NetBird. Cannot be true if use_tailscale is true. bool false no
use_tailscale Set to true to enable Tailscale. Cannot be true if use_netbird is true. bool false no

Outputs

Name Description
bunnynet_accelerated_pullzone_id Bunny.net accelerated pull zone ID, created by the DNS record.
cluster_token Secret k3s cluster token to join the cluster.
peer_host Peer host used for k3s initialization.
peers_ips Peer IPs fetched as candidates for k3s initialization.
private_ip Private IP of the server.
public_ipv4 Public IPv4 of the server.