locals { nix_community_zone_id = "8965c5ff4e19a3ca46b5df6965f2bc36" # For each github page, create a CNAME alias to nix-community.github.io nix_community_github_pages = [ "nur" ] host = { "build01" = { ipv4 = "65.21.139.242" ipv6 = "2a01:4f9:3b:2946::1" } "build02" = { ipv4 = "65.21.133.211" ipv6 = "2a01:4f9:3b:41d9::1" } "build03" = { ipv4 = "162.55.14.99" ipv6 = "2a01:4f8:2190:2698::2" } "build04" = { ipv4 = "65.109.107.32" ipv6 = "2a01:4f9:3051:3962::2" } "build05" = { ipv4 = "65.109.82.88" ipv6 = "2a01:4f9:3051:5066::1" } "darwin01" = { ipv4 = "49.12.162.22" ipv6 = "2a01:4f8:d1:5716::2" } "darwin02" = { ipv4 = "49.12.162.21" ipv6 = "2a01:4f8:d1:5715::2" } "web02" = { ipv4 = "46.226.105.188" ipv6 = "2001:4b98:dc0:43:f816:3eff:fe99:9fca" } } cname = { "aarch64-build-box" = "build05.nix-community.org" "alertmanager" = "web02.nix-community.org" "build-box" = "build01.nix-community.org" "buildbot" = "build03.nix-community.org" "darwin-build-box" = "darwin01.nix-community.org" "docker" = "zimbatm.docker.scarf.sh" # Used by nix-community/nixpkgs-docker "grafana" = "web02.nix-community.org" "hydra" = "build03.nix-community.org" "nixpkgs-update-cache" = "build02.nix-community.org" "nixpkgs-update-logs" = "build02.nix-community.org" "nur-update" = "build03.nix-community.org" "prometheus" = "web02.nix-community.org" } } resource "cloudflare_record" "nix-community-org-host-A" { for_each = local.host zone_id = local.nix_community_zone_id name = each.key type = "A" content = each.value.ipv4 } resource "cloudflare_record" "nix-community-org-host-AAAA" { for_each = local.host zone_id = local.nix_community_zone_id name = each.key type = "AAAA" content = each.value.ipv6 } resource "cloudflare_record" "nix-community-org-CNAME" { for_each = local.cname zone_id = local.nix_community_zone_id name = each.key content = each.value type = "CNAME" } # blocks other CAs from issuing certificates for the domain resource "cloudflare_record" "nix-community-org-caa" { zone_id = local.nix_community_zone_id name = "@" type = "CAA" data { flags = "0" tag = "issue" value = "letsencrypt.org" } } resource "cloudflare_record" "nix-community-org-apex-A" { zone_id = local.nix_community_zone_id name = "@" content = "nix-community.github.io" type = "CNAME" proxied = false } resource "cloudflare_record" "nix-community-org-apex-TXT" { zone_id = local.nix_community_zone_id name = "@" content = "v=spf1 include:_mailcust.gandi.net -all" type = "TXT" } resource "cloudflare_record" "nix-community-org-apex-MX" { for_each = { "spool.mail.gandi.net." = 10 "fb.mail.gandi.net." = 50 } zone_id = local.nix_community_zone_id name = "@" content = each.key type = "MX" priority = each.value } resource "cloudflare_record" "nix-community-org-github-challenge-TXT" { zone_id = local.nix_community_zone_id name = "_github-challenge-nix-community-org" content = "2eee7c1945" type = "TXT" } resource "cloudflare_record" "nix-community-org-github-pages-challenge-TXT" { zone_id = local.nix_community_zone_id name = "_github-pages-challenge-nix-community.nix-community.org." content = "6d236784300b9b1e80fdc496b7bfce" type = "TXT" } resource "cloudflare_record" "nix-community-org-github-pages" { for_each = { for page in local.nix_community_github_pages : page => page } zone_id = local.nix_community_zone_id name = each.value content = "nix-community.github.io" type = "CNAME" }