Via Terraform/OpenTufu. Triple node setup featuring a bastion node and database node, ingress via loadbalancer and machine provisioning by bastion. Some additional configuration required such as injecting automation/provisioning tools, private keys on bastion, additional DNS setup for serving traffic over loadbalancer and volume attachments (if needed) or Terraform/OpenTofu backends.
| Name | Version |
|---|---|
| terraform | >= 1.11.5 |
| hcloud | 1.60.1 |
| Name | Version |
|---|---|
| hcloud | 1.60.1 |
| Name | Source | Version |
|---|---|---|
| certificate | ./modules/certificate | n/a |
| firewall | ./modules/firewall | n/a |
| loadbalancer | ./modules/loadbalancer | n/a |
| network | ./modules/network | n/a |
| node | ./modules/node | n/a |
| ssh | ./modules/ssh | n/a |
| zone | ./modules/zone | n/a |
| Name | Type |
|---|---|
| hcloud_zone | resource |
| hcloud_managed_certificate | resource |
| hcloud_network | resource |
| hcloud_network_subnet | resource |
| hcloud_load_balancer | resource |
| hcloud_load_balancer_network | resource |
| hcloud_load_balancer_target | resource |
| hcloud_load_balancer_service | resource |
| hcloud_firewall | resource |
| hcloud_ssh_key | resource |
| hcloud_placement_group | resource |
| hcloud_server | resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| hcloud_token | Hetzner Cloud API token used to create infrastructure | string |
n/a | yes |
| managed_domain | FQDN to be associated with the project | string |
n/a | yes |
| location | Location to locate infrastructure | string |
fsn1 |
no |
| network_ip_range | IP range to limit the internal network to | string |
10.0.0.0/16 |
no |
| network_subnet_zone | Zone assignement for the network subnet | string |
eu-central |
no |
| network_subnet_ip_range | IP range to limit the internal network subnet to | string |
10.0.1.0/24 |
no |
| admin_public_ssh_key | Admin user public ssh key | string |
n/a | yes |
| automation_public_ssh_key | Automation user public ssh key | string |
n/a | yes |
| lb_type | Node type of the loadbalancer | string |
lb11 |
no |
| machine_image | Image to install on server nodes | string |
rocky-10 |
no |
| bastion_type | Node type of the bastion | string |
cx23 |
no |
| manager_worker_count | Number of manager worker instances to create | number |
3 | no |
| manager_worker_type | Node type of the manager workers | string |
cx23 |
no |
| db_type | Node type of the db | string |
cx23 |
no |
| Name | Description |
|---|---|
| bastion_ipv4_address | IPv4 address of the bastion node |
| bastion_private_ip_address | Private IP address of the bastion node |
| manager_worker_ipv4_addresses | IPv4 addresses of the manager worker nodes |
| manager_worker_private_ip_addresses | Private IP addresses of the manager worker nodes |
| db_private_ip_address | Private IP address of the db node |
