diff --git a/misc/find-arch-on-crt.sh b/misc/find-arch-on-crt.sh index d75bd7321afa285b8aa1cc96959891fe37e128f1..f0fbe03388b1d5e0576dabba7009c34b2cb3db77 100755 --- a/misc/find-arch-on-crt.sh +++ b/misc/find-arch-on-crt.sh @@ -8,6 +8,7 @@ set -eo pipefail readonly DOMAINS=( archlinux.org pkgbuild.com + archlinux.page ) readonly LOOKUP_URLS=( "${DOMAINS[@]/#/https://crt.sh/?exclude=expired&deduplicate=Y&output=json&q=}" diff --git a/roles/prometheus/defaults/main.yml b/roles/prometheus/defaults/main.yml index e2c10ae27d663186fd5b8fadbc07320137214e36..710f83f87862b413c3190144d2a55fcacb337f89 100644 --- a/roles/prometheus/defaults/main.yml +++ b/roles/prometheus/defaults/main.yml @@ -24,6 +24,7 @@ blackbox_targets: - https://america.mirror.pkgbuild.com - https://archive.archlinux.org - https://archlinux.org + - https://archlinux.page - https://asia.archive.pkgbuild.com - https://asia.mirror.pkgbuild.com - https://aur.archlinux.org diff --git a/tf-stage1/archlinux.tf b/tf-stage1/archlinux.tf index a1d805a334db3a4bb3f04bb4f22184eb3505ce7a..d45322da763b5f2707dfbe0ef0380db0bd63fcdf 100644 --- a/tf-stage1/archlinux.tf +++ b/tf-stage1/archlinux.tf @@ -171,6 +171,9 @@ locals { "terms" = "0b62a71af2aa85fb491295b543b4c3d2" } + archlinux_page_gitlab_pages = { + } + # This creates archlinux.org TXT DNS entries # Valid parameters are: # - ttl (optional) @@ -365,6 +368,22 @@ locals { } } + # This creates archlinux.page A/AAAA DNS entries. + # + # The entry name corresponds to the subdomain. + # '@' is the root doman (archlinux.page). + # Valid parameters are: + # - ipv4_address (mandatory) + # - ipv6_address (mandatory) + # - ttl (optional) + # + archlinux_page_a_aaaa = { + "@" = { + ipv4_address = hcloud_floating_ip.gitlab_pages.ip_address + ipv6_address = var.gitlab_pages_ipv6 + } + } + # Domains served by machines in the geo_mirrors group # Valid parameters are: # - zone_id (mandatory, either of hetznerdns_zone.{archlinux,pkgbuild}.id) @@ -387,11 +406,78 @@ resource "hetznerdns_zone" "archlinux" { ttl = 3600 } +resource "hetznerdns_zone" "archlinux_page" { + name = "archlinux.page" + ttl = 3600 +} + resource "hetznerdns_zone" "pkgbuild" { name = "pkgbuild.com" ttl = 3600 } +resource "hetznerdns_record" "archlinux_page_origin_caa" { + zone_id = hetznerdns_zone.archlinux_page.id + name = "@" + value = "0 issue \"letsencrypt.org\"" + type = "CAA" +} + +resource "hetznerdns_record" "archlinux_page_origin_mx" { + zone_id = hetznerdns_zone.archlinux_page.id + name = "@" + value = "0 ." + type = "MX" +} + +resource "hetznerdns_record" "archlinux_page_origin_ns3" { + zone_id = hetznerdns_zone.archlinux_page.id + name = "@" + value = "helium.ns.hetzner.de." + type = "NS" + ttl = 86400 +} + +resource "hetznerdns_record" "archlinux_page_origin_ns2" { + zone_id = hetznerdns_zone.archlinux_page.id + name = "@" + value = "oxygen.ns.hetzner.com." + type = "NS" + ttl = 86400 +} + +resource "hetznerdns_record" "archlinux_page_origin_ns1" { + zone_id = hetznerdns_zone.archlinux_page.id + name = "@" + value = "hydrogen.ns.hetzner.com." + type = "NS" + ttl = 86400 +} + +# TODO: Commented currently as we have no idea how to handle SOA stuff with Terraform: +# https://github.com/timohirt/terraform-provider-hetznerdns/issues/20 +# https://gitlab.archlinux.org/archlinux/infrastructure/-/merge_requests/62#note_4040 +# resource "hetznerdns_record" "archlinux_page_origin_soa" { +# zone_id = hetznerdns_zone.archlinux_page.id +# name = "@" +# value = "hydrogen.ns.hetzner.com. hetzner.archlinux.org. 2021070703 3600 1800 604800 3600" +# type = "SOA" +# } + +resource "hetznerdns_record" "archlinux_page_origin_txt" { + zone_id = hetznerdns_zone.archlinux_page.id + name = "@" + value = "\"v=spf1 -all\"" + type = "TXT" +} + +resource "hetznerdns_record" "pages_verification_code_archlinux_page_origin_txt" { + zone_id = hetznerdns_zone.archlinux_page.id + name = "_gitlab-pages-verification-code" + value = "_gitlab-pages-verification-code=d66f6b2195948e509da553a5e4f3ebcd" + type = "TXT" +} + resource "hetznerdns_record" "pkgbuild_com_origin_caa" { zone_id = hetznerdns_zone.pkgbuild.id name = "@" diff --git a/tf-stage1/templates.tf b/tf-stage1/templates.tf index 5ccca107b520cabe73aaf95013275f380333c24a..cb269ad15e248bb8329973b517dd38fcdad4adea 100644 --- a/tf-stage1/templates.tf +++ b/tf-stage1/templates.tf @@ -18,6 +18,44 @@ resource "hetznerdns_record" "archlinux_org_gitlab_pages_verification_code_txt" type = "TXT" } +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_org_a" { for_each = local.pkgbuild_com_a_aaaa