Newer
Older
# This files contains template handling for the main archlinux.tf file
resource "hetznerdns_record" "archlinux_org_gitlab_pages_cname" {
for_each = local.archlinux_org_gitlab_pages
zone_id = hetznerdns_zone.archlinux.id
name = each.key
value = "pages.archlinux.org."
type = "CNAME"
}
resource "hetznerdns_record" "archlinux_org_gitlab_pages_verification_code_txt" {
for_each = local.archlinux_org_gitlab_pages
zone_id = hetznerdns_zone.archlinux.id
name = "_gitlab-pages-verification-code.${each.key}"
value = "gitlab-pages-verification-code=${each.value}"
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
resource "hetznerdns_record" "archlinux_page_gitlab_pages_cname" {
for_each = local.archlinux_page_gitlab_pages
zone_id = hetznerdns_zone.archlinux_page.id
name = each.key
value = "pages.archlinux.org."
type = "CNAME"
}
resource "hetznerdns_record" "archlinux_page_gitlab_pages_verification_code_txt" {
for_each = local.archlinux_page_gitlab_pages
zone_id = hetznerdns_zone.archlinux_page.id
name = "_gitlab-pages-verification-code.${each.key}"
value = "gitlab-pages-verification-code=${each.value}"
type = "TXT"
}
resource "hetznerdns_record" "archlinux_page_a" {
for_each = local.archlinux_page_a_aaaa
zone_id = hetznerdns_zone.archlinux_page.id
name = each.key
ttl = lookup(local.archlinux_page_a_aaaa[each.key], "ttl", null)
value = each.value.ipv4_address
type = "A"
}
resource "hetznerdns_record" "archlinux_page_aaaa" {
for_each = local.archlinux_page_a_aaaa
zone_id = hetznerdns_zone.archlinux_page.id
name = each.key
ttl = lookup(local.archlinux_page_a_aaaa[each.key], "ttl", null)
value = each.value.ipv6_address
type = "AAAA"
}
resource "hetznerdns_record" "pkgbuild_com_a" {
for_each = local.pkgbuild_com_a_aaaa
zone_id = hetznerdns_zone.pkgbuild.id
name = each.key
ttl = lookup(local.pkgbuild_com_a_aaaa[each.key], "ttl", null)
value = each.value.ipv4_address
type = "A"
}
resource "hetznerdns_record" "pkgbuild_com_aaaa" {
for_each = local.pkgbuild_com_a_aaaa
zone_id = hetznerdns_zone.pkgbuild.id
name = each.key
ttl = lookup(local.pkgbuild_com_a_aaaa[each.key], "ttl", null)
value = each.value.ipv6_address
type = "AAAA"
}
resource "hetznerdns_record" "pkgbuild_org_https" {
for_each = {
for k, v in local.pkgbuild_com_a_aaaa : k => v if try(v.http3, false)
}
zone_id = hetznerdns_zone.pkgbuild.id
name = each.key
ttl = lookup(local.pkgbuild_com_a_aaaa[each.key], "ttl", null)
value = "1 . alpn=h2,h3 ipv4hint=${each.value.ipv4_address} ipv6hint=${each.value.ipv6_address}"
type = "HTTPS"
}

Kristian Klausen
committed
resource "hetznerdns_record" "archlinux_org_txt" {
for_each = local.archlinux_org_txt
zone_id = hetznerdns_zone.archlinux.id
name = each.key
ttl = lookup(local.archlinux_org_txt[each.key], "ttl", null)
value = "\"${each.value.value}\" "

Kristian Klausen
committed
type = "TXT"
}
resource "hetznerdns_record" "archlinux_org_mx" {
for_each = local.archlinux_org_mx
zone_id = hetznerdns_zone.archlinux.id
name = each.key
ttl = lookup(local.archlinux_org_mx[each.key], "ttl", null)
value = "10 ${each.value.mx}"
type = "MX"
}
resource "hetznerdns_record" "archlinux_org_a" {
for_each = local.archlinux_org_a_aaaa
zone_id = hetznerdns_zone.archlinux.id
name = each.key
ttl = lookup(local.archlinux_org_a_aaaa[each.key], "ttl", null)
value = each.value.ipv4_address
type = "A"
}
resource "hetznerdns_record" "archlinux_org_aaaa" {
for_each = local.archlinux_org_a_aaaa
zone_id = hetznerdns_zone.archlinux.id
name = each.key
ttl = lookup(local.archlinux_org_a_aaaa[each.key], "ttl", null)
value = each.value.ipv6_address
type = "AAAA"
}
resource "hetznerdns_record" "archlinux_org_https" {
for_each = {
for k, v in local.archlinux_org_a_aaaa : k => v if try(v.http3, false)
}
zone_id = hetznerdns_zone.archlinux.id
name = each.key
ttl = lookup(local.archlinux_org_a_aaaa[each.key], "ttl", null)
value = "1 . alpn=h2,h3 ipv4hint=${each.value.ipv4_address} ipv6hint=${each.value.ipv6_address}"
type = "HTTPS"
}
resource "hetznerdns_record" "archlinux_org_cname" {
for_each = local.archlinux_org_cname
zone_id = hetznerdns_zone.archlinux.id
name = each.key
ttl = lookup(local.archlinux_org_cname[each.key], "ttl", null)
value = each.value.value
type = "CNAME"
}
resource "hcloud_rdns" "rdns_ipv4" {
for_each = {
for name, machine in local.machines : name => machine if try(machine.ipv4_enabled, true)
}
server_id = hcloud_server.machine[each.key].id
ip_address = hcloud_server.machine[each.key].ipv4_address
dns_ptr = each.key
}
resource "hcloud_rdns" "rdns_ipv6" {
for_each = local.machines
server_id = hcloud_server.machine[each.key].id
ip_address = hcloud_server.machine[each.key].ipv6_address
dns_ptr = each.key
}
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
resource "hcloud_primary_ip" "primary_ipv4" {
for_each = {
for name, machine in local.machines : name => machine if try(machine.ipv4_enabled, true)
}
name = "ipv4-${each.key}"
datacenter = "fsn1-dc14"
type = "ipv4"
assignee_type = "server"
auto_delete = false
delete_protection = true
lifecycle {
ignore_changes = [datacenter]
}
}
resource "hcloud_primary_ip" "primary_ipv6" {
for_each = local.machines
name = "ipv6-${each.key}"
datacenter = "fsn1-dc14"
type = "ipv6"
assignee_type = "server"
auto_delete = false
delete_protection = true
lifecycle {
ignore_changes = [datacenter]
}
}
resource "hcloud_server" "machine" {
for_each = local.machines
name = each.key
image = data.hcloud_image.archlinux.id
server_type = each.value.server_type
backups = lookup(local.machines[each.key], "backups", false)
datacenter = "fsn1-dc14"
delete_protection = true
rebuild_protection = true
ignore_changes = [image, datacenter]
}
public_net {
ipv4_enabled = try(each.value.ipv4_enabled, true)
ipv6_enabled = true
ipv4 = try(each.value.ipv4_enabled, true) ? hcloud_primary_ip.primary_ipv4[each.key].id : null
ipv6 = hcloud_primary_ip.primary_ipv6[each.key].id
}
}
resource "hetznerdns_record" "machine_a" {
for name, machine in local.machines : name => machine if can(machine.domain) && try(machine.ipv4_enabled, true)
zone_id = lookup(local.machines[each.key], "zone", hetznerdns_zone.archlinux.id)
name = each.value.domain
ttl = lookup(local.machines[each.key], "ttl", null)
value = hcloud_server.machine[each.key].ipv4_address
type = "A"
}
resource "hetznerdns_record" "machine_aaaa" {
for_each = {
for name, machine in local.machines : name => machine if can(machine.domain)
}
zone_id = lookup(local.machines[each.key], "zone", hetznerdns_zone.archlinux.id)
name = each.value.domain
ttl = lookup(local.machines[each.key], "ttl", null)
value = hcloud_server.machine[each.key].ipv6_address
type = "AAAA"
}
resource "hetznerdns_record" "machine_https" {
for_each = {
for name, machine in local.machines : name => machine if can(machine.domain) && try(machine.http3, false)
}
zone_id = lookup(local.machines[each.key], "zone", hetznerdns_zone.archlinux.id)
name = each.value.domain
ttl = lookup(local.machines[each.key], "ttl", null)
value = (try(local.machines[each.key].ipv4_enabled, true) ?
"1 . alpn=h2,h3 ipv4hint=${hcloud_server.machine[each.key].ipv4_address} ipv6hint=${hcloud_server.machine[each.key].ipv6_address}" :
"1 . alpn=h2,h3 ipv6hint=${hcloud_server.machine[each.key].ipv6_address}"
)
type = "HTTPS"
}
resource "hetznerdns_record" "geo_ns1" {
for_each = local.geo_domains
zone_id = lookup(each.value, "zone", hetznerdns_zone.archlinux.id)
name = each.value.name
value = "america.mirror.pkgbuild.com."
type = "NS"
ttl = lookup(local.geo_domains[each.key], "ttl", 86400)
resource "hetznerdns_record" "geo_ns2" {
for_each = local.geo_domains
zone_id = lookup(each.value, "zone", hetznerdns_zone.archlinux.id)
name = each.value.name
value = "asia.mirror.pkgbuild.com."
type = "NS"
ttl = lookup(local.geo_domains[each.key], "ttl", 86400)
}
resource "hetznerdns_record" "geo_ns3" {
for_each = local.geo_domains
zone_id = lookup(each.value, "zone", hetznerdns_zone.archlinux.id)
name = each.value.name
value = "europe.mirror.pkgbuild.com."
type = "NS"
ttl = lookup(local.geo_domains[each.key], "ttl", 86400)
resource "hetznerdns_record" "geo_ns4" {
for_each = local.geo_domains
zone_id = lookup(each.value, "zone", hetznerdns_zone.archlinux.id)
name = each.value.name
value = "seoul.mirror.pkgbuild.com."
type = "NS"
ttl = lookup(local.geo_domains[each.key], "ttl", 86400)
}
resource "hetznerdns_record" "geo_ns5" {
for_each = local.geo_domains
zone_id = lookup(each.value, "zone", hetznerdns_zone.archlinux.id)
name = each.value.name
value = "sydney.mirror.pkgbuild.com."
type = "NS"
ttl = lookup(local.geo_domains[each.key], "ttl", 86400)
}
resource "hetznerdns_record" "geo_ns6" {
for_each = local.geo_domains
zone_id = lookup(each.value, "zone", hetznerdns_zone.archlinux.id)
name = each.value.name
value = "london.mirror.pkgbuild.com."
type = "NS"
ttl = lookup(local.geo_domains[each.key], "ttl", 86400)
}