this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: initial Hetzner support

Khue Doan 443aac58 c1cb0007

+82
+24
infra/production/hetzner/helsinki/compute/.terraform.lock.hcl
··· 1 + # This file is maintained automatically by "tofu init". 2 + # Manual edits may be lost in future updates. 3 + 4 + provider "registry.opentofu.org/hetznercloud/hcloud" { 5 + version = "1.52.0" 6 + constraints = "~> 1.45" 7 + hashes = [ 8 + "h1:LTjrLuC+4F1Kv4TxS9e7LVVkG8/S4QQ7X4ORblvKTbc=", 9 + "zh:1e9bb6b6a2ea5f441638dbae2d60fbe04ff455f58a18c740b8b7913e2197d875", 10 + "zh:29c122e404ba331cfbadacc7f1294de5a31c9dfd60bdfe3e1b402271fc8e419c", 11 + "zh:2bd0ae2f0bb9f16b7753f59a08e57ac7230f9c471278d7882f81406b9426c8c7", 12 + "zh:4383206971873f6b5d81580a9a36e0158924f5816ebb6206b0cf2430e4e6a609", 13 + "zh:47e2ca1cfa18500e4952ab51dc357a0450d00a92da9ea03e452f1f3efe6bbf75", 14 + "zh:8e9fe90e3cea29bb7892b64da737642fc22b0106402df76c228a3cbe99663278", 15 + "zh:a2d69350a69c471ddb63bcc74e105e585319a0fc0f4d1b7f70569f6d2ece5824", 16 + "zh:a97abcc254e21c294e2d6b0fc9068acfd63614b097dda365f1c56ea8b0fd5f6b", 17 + "zh:aba8d72d4fe2e89c922d5446d329e5c23d00b28227b4666e6486ba18ea2ec278", 18 + "zh:ad36c333978c2d9e4bc43dcadcbff42fe771a8c5ef53d028bcacec8287bf78a7", 19 + "zh:cdb1e6903b9d2f0ad8845d4eb390fbe724ee2435fb045baeab38d4319e637682", 20 + "zh:df77b08757f3f36b8aadb33d73362320174047044414325c56a87983f48b5186", 21 + "zh:e07513d5ad387247092b5ae1c87e21a387fc51873b3f38eee616187e38b090a7", 22 + "zh:e2be02bdc59343ff4b9e26c3b93db7680aaf3e6ed13c8c4c4b144c74c2689915", 23 + ] 24 + }
+22
infra/production/hetzner/helsinki/compute/main.tf
··· 1 + resource "hcloud_ssh_key" "main" { 2 + # TODO better key gen 3 + name = "workstation" 4 + public_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN5ue4np7cF34f6dwqH1262fPjkowHQ8irfjVC156PCG" 5 + } 6 + 7 + resource "hcloud_server" "nodes" { 8 + for_each = var.nodes 9 + 10 + name = each.key 11 + server_type = "cax11" 12 + public_net { 13 + ipv4_enabled = false 14 + ipv6_enabled = true 15 + } 16 + # TODO NixOS 17 + image = "debian-13" 18 + location = each.value.location 19 + ssh_keys = [ 20 + hcloud_ssh_key.main.id 21 + ] 22 + }
+3
infra/production/hetzner/helsinki/compute/outputs.tf
··· 1 + output "ipv6_addresses" { 2 + value = { for node in hcloud_server.nodes : node.name => node.ipv6_address } 3 + }
+18
infra/production/hetzner/helsinki/compute/terragrunt.hcl
··· 1 + terraform { 2 + # TODO move to modules 3 + source = "." 4 + } 5 + 6 + inputs = { 7 + nodes = { 8 + "master-1" = { 9 + location = "hel1" 10 + } 11 + "worker-1" = { 12 + location = "nbg1" 13 + } 14 + "worker-2" = { 15 + location = "fsn1" 16 + } 17 + } 18 + }
+5
infra/production/hetzner/helsinki/compute/variables.tf
··· 1 + variable "nodes" { 2 + type = map(object({ 3 + location = string 4 + })) 5 + }
+10
infra/production/hetzner/helsinki/compute/versions.tf
··· 1 + terraform { 2 + required_providers { 3 + hcloud = { 4 + source = "hetznercloud/hcloud" 5 + version = "~> 1.45" 6 + } 7 + } 8 + } 9 + 10 + # TODO export HCLOUD_TOKEN