infra/terraform/cloudflare_nix-community_org.tf

148 lines
3.8 KiB
Terraform
Raw Normal View History

2020-02-22 13:18:20 +01:00
locals {
nix_community_zone_id = "8965c5ff4e19a3ca46b5df6965f2bc36"
# For each github page, create a CNAME alias to nix-community.github.io
nix_community_github_pages = [
"nur"
]
2020-02-22 13:18:20 +01:00
2024-10-22 16:43:01 +10:00
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"
}
2024-10-22 16:43:01 +10:00
"darwin01" = {
2024-12-09 10:30:41 +10:00
ipv4 = "49.12.162.22"
ipv6 = "2a01:4f8:d1:5716::2"
2024-10-22 16:43:01 +10:00
}
"darwin02" = {
2024-12-09 10:33:51 +10:00
ipv4 = "49.12.162.21"
ipv6 = "2a01:4f8:d1:5715::2"
2024-10-22 16:43:01 +10:00
}
"web02" = {
ipv4 = "46.226.105.188"
ipv6 = "2001:4b98:dc0:43:f816:3eff:fe99:9fca"
}
2023-10-21 19:03:32 +02:00
}
2021-01-18 18:19:46 +01:00
2024-10-22 16:43:01 +10:00
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"
2024-10-22 16:43:01 +10:00
}
2024-03-08 09:51:37 +10:00
}
2024-10-22 16:43:01 +10:00
resource "cloudflare_record" "nix-community-org-host-A" {
for_each = local.host
2024-03-08 09:51:37 +10:00
2023-05-16 18:58:13 +10:00
zone_id = local.nix_community_zone_id
2024-10-22 16:43:01 +10:00
name = each.key
2023-05-16 18:58:13 +10:00
type = "A"
2024-10-22 16:43:01 +10:00
content = each.value.ipv4
2023-05-16 18:58:13 +10:00
}
2024-10-22 16:43:01 +10:00
resource "cloudflare_record" "nix-community-org-host-AAAA" {
for_each = local.host
2023-07-25 17:49:00 +10:00
zone_id = local.nix_community_zone_id
2024-10-22 16:43:01 +10:00
name = each.key
2023-07-25 17:49:00 +10:00
type = "AAAA"
2024-10-22 16:43:01 +10:00
content = each.value.ipv6
2023-07-25 17:49:00 +10:00
}
2024-10-22 16:43:01 +10:00
resource "cloudflare_record" "nix-community-org-CNAME" {
for_each = local.cname
2021-04-20 21:51:03 +02:00
zone_id = local.nix_community_zone_id
2024-10-22 16:43:01 +10:00
name = each.key
content = each.value
type = "CNAME"
}
2024-10-22 16:43:01 +10:00
# blocks other CAs from issuing certificates for the domain
resource "cloudflare_record" "nix-community-org-caa" {
zone_id = local.nix_community_zone_id
2024-10-22 16:43:01 +10:00
name = "@"
type = "CAA"
data {
flags = "0"
tag = "issue"
value = "letsencrypt.org"
}
2023-07-29 15:54:41 +10:00
}
2020-02-22 13:18:20 +01:00
resource "cloudflare_record" "nix-community-org-apex-A" {
zone_id = local.nix_community_zone_id
2020-02-22 13:18:20 +01:00
name = "@"
content = "nix-community.github.io"
2020-02-22 13:18:20 +01:00
type = "CNAME"
proxied = false
}
resource "cloudflare_record" "nix-community-org-apex-TXT" {
zone_id = local.nix_community_zone_id
2020-02-22 13:18:20 +01:00
name = "@"
content = "v=spf1 include:_mailcust.gandi.net -all"
2020-02-22 13:18:20 +01:00
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"
}