2019-03-24 23:52:35 +01:00
|
|
|
terraform {
|
2019-11-18 02:12:32 +01:00
|
|
|
backend "pg" {
|
2020-04-30 14:30:35 +02:00
|
|
|
schema_name = "terraform_remote_state_stage1"
|
2019-11-18 02:12:32 +01:00
|
|
|
}
|
2019-03-24 23:52:35 +01:00
|
|
|
}
|
|
|
|
|
2020-08-27 11:22:04 +02:00
|
|
|
data "external" "vault_hetzner" {
|
|
|
|
program = [
|
2022-05-01 14:26:32 +02:00
|
|
|
"${path.module}/../misc/get_key.py", "${path.module}/../misc/vaults/vault_hetzner.yml",
|
2020-08-27 11:22:04 +02:00
|
|
|
"hetzner_cloud_api_key",
|
|
|
|
"hetzner_dns_api_key",
|
|
|
|
"--format", "json"
|
|
|
|
]
|
2019-03-31 04:15:45 +02:00
|
|
|
}
|
2019-02-14 06:45:18 +01:00
|
|
|
|
2019-08-10 17:47:26 +02:00
|
|
|
data "hcloud_image" "archlinux" {
|
|
|
|
with_selector = "custom_image=archlinux"
|
2019-11-18 02:12:32 +01:00
|
|
|
most_recent = true
|
|
|
|
with_status = ["available"]
|
2019-02-14 06:45:18 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
provider "hcloud" {
|
2020-08-27 11:22:04 +02:00
|
|
|
token = data.external.vault_hetzner.result.hetzner_cloud_api_key
|
|
|
|
}
|
|
|
|
|
|
|
|
provider "hetznerdns" {
|
|
|
|
apitoken = data.external.vault_hetzner.result.hetzner_dns_api_key
|
|
|
|
}
|
|
|
|
|
2020-12-27 00:23:23 +01:00
|
|
|
locals {
|
2020-12-27 03:57:32 +01:00
|
|
|
# These are the Hetzner Cloud VPSes.
|
|
|
|
# Every entry creates:
|
|
|
|
# - the machine
|
|
|
|
# - the rdns entries
|
|
|
|
# - A and AAAA entries
|
|
|
|
#
|
|
|
|
# Valid parameters are:
|
|
|
|
# - server_type (mandatory)
|
2021-01-24 16:18:19 +01:00
|
|
|
# - domain (optional, creates dns entry <domain>.archlinux.org pointing to the machine)
|
2020-12-28 02:21:55 +01:00
|
|
|
# - ttl (optional, applies to the dns entries)
|
2022-03-13 19:18:06 +01:00
|
|
|
# - zone (optional, required for pkgbuild.com machines)
|
2020-12-27 03:57:32 +01:00
|
|
|
#
|
2020-12-28 02:21:55 +01:00
|
|
|
# Example:
|
|
|
|
# "archlinux.org" = {
|
|
|
|
# server_type = "cpx11"
|
|
|
|
# domain = "@"
|
2022-03-13 19:18:06 +01:00
|
|
|
# ttl = 3600
|
2020-12-28 02:21:55 +01:00
|
|
|
# }
|
2020-12-27 03:57:32 +01:00
|
|
|
machines = {
|
|
|
|
"accounts.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "accounts"
|
|
|
|
}
|
2022-07-18 11:24:13 +02:00
|
|
|
"archlinux.org" = {
|
|
|
|
server_type = "cpx11"
|
|
|
|
domain = "@"
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"aur.archlinux.org" = {
|
|
|
|
server_type = "cpx41"
|
|
|
|
domain = "aur"
|
|
|
|
}
|
|
|
|
"bbs.archlinux.org" = {
|
|
|
|
server_type = "cx21"
|
|
|
|
domain = "bbs"
|
|
|
|
}
|
|
|
|
"bugs.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "bugs"
|
|
|
|
}
|
2022-07-18 11:24:13 +02:00
|
|
|
"buildbot.pkgbuild.com" = {
|
|
|
|
server_type = "cx21"
|
|
|
|
domain = "buildbot"
|
|
|
|
zone = hetznerdns_zone.pkgbuild.id
|
|
|
|
}
|
|
|
|
"dashboards.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "dashboards"
|
|
|
|
}
|
|
|
|
"debuginfod.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "debuginfod"
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"gitlab.archlinux.org" = {
|
2022-02-06 22:43:30 +01:00
|
|
|
server_type = "cpx41"
|
2020-12-27 03:57:32 +01:00
|
|
|
domain = "gitlab"
|
|
|
|
}
|
2022-07-18 11:24:13 +02:00
|
|
|
"gluebuddy.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "gluebuddy"
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"homedir.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "homedir"
|
|
|
|
}
|
2021-01-13 16:59:41 +01:00
|
|
|
"lists.archlinux.org" = {
|
2022-09-16 18:56:44 +02:00
|
|
|
server_type = "cx21"
|
2021-06-23 20:53:40 +02:00
|
|
|
domain = "lists"
|
2021-01-13 16:59:41 +01:00
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"mail.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "mail"
|
|
|
|
}
|
2021-01-11 00:31:37 +01:00
|
|
|
"man.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "man"
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"matrix.archlinux.org" = {
|
|
|
|
server_type = "cpx31"
|
|
|
|
domain = "matrix"
|
|
|
|
}
|
2022-07-18 11:24:13 +02:00
|
|
|
"md.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "md"
|
|
|
|
}
|
|
|
|
"mirror.pkgbuild.com" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "mirror"
|
|
|
|
zone = hetznerdns_zone.pkgbuild.id
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"monitoring.archlinux.org" = {
|
2021-04-27 02:28:11 +02:00
|
|
|
server_type = "cx31"
|
2020-12-27 03:57:32 +01:00
|
|
|
domain = "monitoring"
|
|
|
|
}
|
|
|
|
"phrik.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "phrik"
|
|
|
|
}
|
|
|
|
"quassel.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "quassel"
|
|
|
|
}
|
|
|
|
"redirect.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "redirect"
|
|
|
|
}
|
2022-08-10 21:53:08 +02:00
|
|
|
"repos-git.archlinux.org" = {
|
|
|
|
server_type = "cpx11"
|
|
|
|
domain = "repos-git"
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"reproducible.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "reproducible"
|
|
|
|
}
|
|
|
|
"security.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "security"
|
|
|
|
}
|
2022-07-18 11:41:13 +02:00
|
|
|
"state.archlinux.org" = {
|
|
|
|
server_type = "cx11"
|
|
|
|
domain = "state"
|
|
|
|
backups = true
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
"wiki.archlinux.org" = {
|
2020-12-28 02:22:48 +01:00
|
|
|
server_type = "cpx21"
|
2020-12-27 03:57:32 +01:00
|
|
|
domain = "wiki"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-03-13 19:18:06 +01:00
|
|
|
# This creates gitlab pages verification entries.
|
2020-12-27 03:57:32 +01:00
|
|
|
# Every line consists of "key" = "value":
|
|
|
|
# - key equals the pages subdomain
|
|
|
|
# - value equals the pages verification code
|
|
|
|
#
|
|
|
|
archlinux_org_gitlab_pages = {
|
2021-04-27 22:30:51 +02:00
|
|
|
"conf" = "60a06a1c02e42b36c3b4919f4d6de6bf"
|
|
|
|
"whatcanidofor" = "d9e45851002a623e10f6954ff9a85d21"
|
2022-09-02 19:10:31 +02:00
|
|
|
"openpgpkey" = "d20c137368e26dcc3db56d45a368e729"
|
|
|
|
"openpgpkey.master-key" = "3eea8f39a9b473a5dc7c188366f84072"
|
2021-04-27 22:30:51 +02:00
|
|
|
"bugs-old" = "1f3308c8d5763eecb4f9013291aeeac4"
|
2021-05-08 21:24:53 +02:00
|
|
|
"tu-bylaws.aur" = "bbafd3ed82f336e0c52d3eb9774b2432"
|
2021-07-31 15:44:36 +02:00
|
|
|
"reproducible-notes" = "8c657f2f2720db1c3db63be89605cf0d"
|
2021-08-22 13:12:45 +02:00
|
|
|
"terms" = "0b62a71af2aa85fb491295b543b4c3d2"
|
2023-01-07 03:12:20 +01:00
|
|
|
"patchwork" = "37eeadf24d5cd6614e8edb1f12868a5e"
|
2020-12-27 03:57:32 +01:00
|
|
|
}
|
|
|
|
|
2022-06-23 18:46:31 +02:00
|
|
|
archlinux_page_gitlab_pages = {
|
2022-06-26 21:12:23 +02:00
|
|
|
"repod" = "f2d1ad84f7e9f22cd881d3bef58263e0"
|
2022-11-17 21:24:58 +01:00
|
|
|
"rfc" = "b457db2ce4ac4e162d2f4435f1fe1f39"
|
2022-06-26 21:12:23 +02:00
|
|
|
"monthly-reports" = "a2d60657e960b480cdb229df7cc7edf3"
|
2022-06-23 18:46:31 +02:00
|
|
|
}
|
|
|
|
|
2020-12-27 23:13:29 +01:00
|
|
|
# This creates archlinux.org TXT DNS entries
|
|
|
|
# Valid parameters are:
|
|
|
|
# - ttl (optional)
|
|
|
|
# - value (mandatory)
|
|
|
|
#
|
|
|
|
# Example:
|
2022-03-13 19:18:06 +01:00
|
|
|
# "_github-challenge-archlinux" = { ttl = 3600, value = "824af4446e" }
|
2020-12-27 23:13:29 +01:00
|
|
|
archlinux_org_txt = {
|
2022-03-13 19:18:06 +01:00
|
|
|
"dkim-ed25519._domainkey.lists" = { value = "v=DKIM1; k=ed25519;p=ongbdFgt5Vimg/VRRbbSVRU4lBCkcYNaPA4K3JS/DnY=" }
|
|
|
|
"dkim-rsa._domainkey.lists" = { value = "v=DKIM1; k=rsa; \" \"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4M+y3ZeB9eI3GVgcrvMcI1SYOveH7P5TTRstaCHTlE/aRTiCzu5h6zKwwxEiK6NR5ugbHpBtfFnfnsl1eoaXVFBQfNdDNglHllJOZGVxTnyrFjRJUk9zN+PV/Haz73nAe1hOAENgV8NKnTok1ntaOYSH1AEj4yTswfQkuN23NPrQc1eyy3+hGC+lYpud3xAAl+oT4QE76PaLgk6Hz\" \"HOvZmAPGD3azJZRbobninZZXTAEvZFuPkfpWeUreDU9Hk9VX3zOmnqTN+YjIS5CdV6+Ghem3dCkmR9j3gOZBeBUYD7b+cinTYe/PZO2OG/LWCwN11EYyf1LSBGhBJCF9HPGiGIdhy5T62nKvwDQS0bj1HL+y6pXZdv2C7KgH+lAZ0idpOQ2TtV5e0tlVdryY4QXY9m7mSQ84WsoEdGDsetOhiTEKuqyGnDoYa0wYbM5477LL6EOzS0x3ZC/mbOg\" \"B+FSdzmLWCH/WjuzMNpw9WU+u4BucwVbYcnZ1vAxQQOEnA/Ku9drRHMFixBwodQuMA78j8ICCMJKlUiXmbbL7OFoXBArYJ7lgVs7mlaoEaqzDPCyqs1lJ9kOxdNoZj5zdxERcQhLm+Yo/948i6Js/nkWT0eAjNlHxZuCg3B4z7L4lRZpaGt+vHdcGUIeDKW34O0dWxPwIUmQA4CwmhUB0HWL9UcCAwEAAQ==" }
|
|
|
|
"dkim-ed25519._domainkey" = { value = "v=DKIM1; k=ed25519; p=XOHB7b7V1puX+FryNIhsjXHYIFqk+q6JRu4XQ7Jc8MQ=" }
|
|
|
|
"dkim-rsa._domainkey" = { value = "v=DKIM1; k=rsa; \" \"p=MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA1GjGrEczq7iHZbvT7wa4ltJz2jwSndUGdRHgfEPnGBeevOXEAlEFr4zsdkfZEaNaQLIhZNpvKAt/A+kkyalkj4u9AnxqeNsNmZflFl6TKgvh0tWNEP3+XNxfdQ7zfml4WggL/YdAjXngg42oZEUsnS/6iozOFn7bNvzqBx5PFJ21pgyuR8DWyLaeOt+p55dVed7DCKnKi11Xjiu7k\" \"H68W8rose7g8Fv9fecBatEE4jwloOXsjh+tH0iab1NSSSpIq6EdgcPrpmrllN3/n2J/kCGK6ztISB6vR7xWgvgHSMjmEL0GPWzohGPrw2UQhZhrNV8dJpiLRYmfK+rXaKF0Kqag/F0e4C4jCKFX7NYFcYXYRlN5QlDFjZvUmOILlgnZ8w/SdZUKzpLObGuwnANLG+WSOjw42p9mXVGN6AfOQPu8OjRjS1MyhcdDIbUvZiQjbmiVJ5frpYZ39BTg\" \"CIzYLJJ5932+3gnwROu1OeljWkpBkfHZXPzADus80l3Vxsk91XZVB36rN8tyuMownR/M4HNC7ZE/EBwOnn1mGH7bLd6pva8u5Qy8Y6LrDdYea5Kk7aZ2WJSSRTV+nkPvOEIx+DfsIWNfmkVWzmuVky96fRvwOCuh38w8zpmlqzhDuGSQrBaLFXwAC7LYQ6kPDHzrjQhs99ScR0ix6YclrmpimMcCAwEAAQ==" }
|
2021-06-12 21:19:43 +02:00
|
|
|
|
2020-12-27 23:13:29 +01:00
|
|
|
"_dmarc" = { value = "v=DMARC1; p=none; rua=mailto:dmarc-reports@archlinux.org; ruf=mailto:dmarc-reports@archlinux.org;" }
|
|
|
|
"_github-challenge-archlinux" = { value = "824af4446e" }
|
|
|
|
"_github-challenge-archlinux.www" = { value = "b53f311f86" }
|
|
|
|
|
2020-12-28 19:21:55 +01:00
|
|
|
# TLS-RPT + MTA-STS + SPF
|
|
|
|
"_smtp._tls" = { value = "v=TLSRPTv1;rua=mailto:postmaster@archlinux.org" }
|
|
|
|
"_smtp._tls.aur" = { value = "v=TLSRPTv1;rua=mailto:postmaster@archlinux.org" }
|
|
|
|
"_smtp._tls.master-key" = { value = "v=TLSRPTv1;rua=mailto:postmaster@archlinux.org" }
|
|
|
|
"_smtp._tls.lists" = { value = "v=TLSRPTv1;rua=mailto:postmaster@archlinux.org" }
|
2022-05-16 22:29:11 +02:00
|
|
|
# Generated with: date +%Y%m%d01
|
2022-05-16 22:31:34 +02:00
|
|
|
"_mta-sts" = { value = "v=STSv1; id=2022051602" }
|
2022-03-13 19:18:06 +01:00
|
|
|
"@" = { value = "v=spf1 ip4:${hcloud_server.machine["mail.archlinux.org"].ipv4_address} ip6:${hcloud_server.machine["mail.archlinux.org"].ipv6_address} ~all" }
|
|
|
|
"mail" = { value = "v=spf1 ip4:${hcloud_server.machine["mail.archlinux.org"].ipv4_address} ip6:${hcloud_server.machine["mail.archlinux.org"].ipv6_address} ~all" }
|
|
|
|
"aur" = { value = "v=spf1 ip4:${hcloud_server.machine["mail.archlinux.org"].ipv4_address} ip6:${hcloud_server.machine["mail.archlinux.org"].ipv6_address} ~all" }
|
|
|
|
"master-key" = { value = "v=spf1 ip4:${hcloud_server.machine["mail.archlinux.org"].ipv4_address} ip6:${hcloud_server.machine["mail.archlinux.org"].ipv6_address} ~all" }
|
|
|
|
lists = { value = "v=spf1 ip4:${hcloud_server.machine["lists.archlinux.org"].ipv4_address} ip6:${hcloud_server.machine["lists.archlinux.org"].ipv6_address} ~all" }
|
2020-12-28 19:21:55 +01:00
|
|
|
}
|
2020-12-28 00:09:26 +01:00
|
|
|
|
2020-12-28 19:21:55 +01:00
|
|
|
# This creates archlinux.org MX DNS entries
|
2020-12-28 00:09:26 +01:00
|
|
|
# Valid parameters are:
|
|
|
|
# - mx (mandatory)
|
2020-12-28 19:21:55 +01:00
|
|
|
# - ttl (optional)
|
2020-12-28 00:09:26 +01:00
|
|
|
#
|
2020-12-28 19:21:55 +01:00
|
|
|
# Example:
|
2022-03-13 19:18:06 +01:00
|
|
|
# "lists" = { mx = "lists", ttl = 3600 }
|
2020-12-28 19:21:55 +01:00
|
|
|
archlinux_org_mx = {
|
2022-03-13 19:18:06 +01:00
|
|
|
"@" = { mx = "mail" }
|
|
|
|
aur = { mx = "mail" }
|
|
|
|
master-key = { mx = "mail" }
|
|
|
|
lists = { mx = "lists" }
|
2020-12-28 00:09:26 +01:00
|
|
|
}
|
|
|
|
|
2020-12-27 03:57:32 +01:00
|
|
|
# This creates archlinux.org A/AAAA DNS entries in addition to those already specified by the VPSes.
|
|
|
|
# The VPSes already get a default domain assigned based on their domain parameter.
|
|
|
|
# Thus the domains in local.archlinux_org_a_aaaa are additional domains or domains assigned to dedicated servers.
|
|
|
|
#
|
|
|
|
# The entry name corresponds to the subdomain.
|
|
|
|
# '@' is the root doman (archlinux.org).
|
|
|
|
# Valid parameters are:
|
|
|
|
# - ipv4_address (mandatory)
|
|
|
|
# - ipv6_address (mandatory)
|
2020-12-28 02:21:55 +01:00
|
|
|
# - ttl (optional)
|
2020-12-27 03:57:32 +01:00
|
|
|
#
|
2020-12-28 02:21:55 +01:00
|
|
|
# Example:
|
2020-12-29 11:55:41 +01:00
|
|
|
# gemini = {
|
|
|
|
# ipv4_address = "49.12.124.107"
|
|
|
|
# ipv6_address = "2a01:4f8:242:5614::2"
|
2022-03-13 19:18:06 +01:00
|
|
|
# ttl = 3600
|
2020-12-28 02:21:55 +01:00
|
|
|
# }
|
2020-12-27 03:57:32 +01:00
|
|
|
archlinux_org_a_aaaa = {
|
2021-01-26 18:03:56 +01:00
|
|
|
build = {
|
|
|
|
ipv4_address = "135.181.138.48"
|
|
|
|
ipv6_address = "2a01:4f9:3a:120f::2"
|
|
|
|
}
|
2020-12-27 00:23:23 +01:00
|
|
|
gemini = {
|
|
|
|
ipv4_address = "49.12.124.107"
|
|
|
|
ipv6_address = "2a01:4f8:242:5614::2"
|
|
|
|
}
|
2020-12-28 03:02:59 +01:00
|
|
|
master-key = {
|
|
|
|
ipv4_address = hcloud_server.machine["archlinux.org"].ipv4_address
|
|
|
|
ipv6_address = hcloud_server.machine["archlinux.org"].ipv6_address
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
pages = {
|
|
|
|
ipv4_address = hcloud_floating_ip.gitlab_pages.ip_address
|
|
|
|
ipv6_address = var.gitlab_pages_ipv6
|
2020-12-27 00:23:23 +01:00
|
|
|
}
|
|
|
|
runner1 = {
|
2021-07-17 15:40:57 +02:00
|
|
|
ipv4_address = "138.199.19.15"
|
|
|
|
ipv6_address = "2a02:6ea0:c72e::2"
|
2020-12-27 00:23:23 +01:00
|
|
|
}
|
|
|
|
runner2 = {
|
|
|
|
ipv4_address = "147.75.80.217"
|
|
|
|
ipv6_address = "2604:1380:2001:4500::3"
|
|
|
|
}
|
|
|
|
secure-runner1 = {
|
|
|
|
ipv4_address = "116.202.134.150"
|
|
|
|
ipv6_address = "2a01:4f8:231:4e1e::2"
|
|
|
|
}
|
2020-12-28 02:44:54 +01:00
|
|
|
www = {
|
|
|
|
ipv4_address = hcloud_server.machine["archlinux.org"].ipv4_address
|
|
|
|
ipv6_address = hcloud_server.machine["archlinux.org"].ipv6_address
|
|
|
|
}
|
2020-12-27 00:23:23 +01:00
|
|
|
}
|
|
|
|
|
2020-12-27 03:57:32 +01:00
|
|
|
# This creates archlinux.org CNAME DNS entries.
|
|
|
|
# Valid parameters are:
|
|
|
|
# - value (mandatory, the target for the CNAME "redirect")
|
2020-12-28 02:21:55 +01:00
|
|
|
# - ttl (optional)
|
2020-12-27 03:57:32 +01:00
|
|
|
#
|
2020-12-28 02:21:55 +01:00
|
|
|
# Example:
|
2022-03-13 19:18:06 +01:00
|
|
|
# dev = { value = "www", ttl = 3600 }
|
2020-12-27 03:57:32 +01:00
|
|
|
archlinux_org_cname = {
|
2020-12-27 23:21:29 +01:00
|
|
|
archive = { value = "gemini" }
|
|
|
|
dev = { value = "www" }
|
|
|
|
g2kjxsblac7x = { value = "gv-i5y6mnrelvpfiu.dv.googlehosted.com." }
|
|
|
|
ipxe = { value = "www" }
|
|
|
|
mailman = { value = "redirect" }
|
|
|
|
packages = { value = "www" }
|
2021-02-24 18:31:06 +01:00
|
|
|
ping = { value = "redirect" }
|
2020-12-27 23:21:29 +01:00
|
|
|
planet = { value = "www" }
|
|
|
|
repos = { value = "gemini" }
|
|
|
|
rsync = { value = "gemini" }
|
|
|
|
sources = { value = "gemini" }
|
|
|
|
"static.conf" = { value = "redirect" }
|
|
|
|
status = { value = "stats.uptimerobot.com." }
|
|
|
|
svn = { value = "gemini" }
|
2021-06-09 12:10:54 +02:00
|
|
|
coc = { value = "redirect" }
|
2021-07-05 22:15:21 +02:00
|
|
|
git = { value = "redirect" }
|
2020-12-28 19:21:55 +01:00
|
|
|
|
|
|
|
# MTA-STS
|
|
|
|
mta-sts = { value = "mail" }
|
|
|
|
"mta-sts.aur" = { value = "mail" }
|
2022-03-13 19:18:06 +01:00
|
|
|
"_mta-sts.aur" = { value = "_mta-sts" }
|
2020-12-28 19:21:55 +01:00
|
|
|
"mta-sts.master-key" = { value = "mail" }
|
2022-03-13 19:18:06 +01:00
|
|
|
"_mta-sts.master-key" = { value = "_mta-sts" }
|
2020-12-28 19:21:55 +01:00
|
|
|
"mta-sts.lists" = { value = "mail" }
|
2022-03-13 19:18:06 +01:00
|
|
|
"_mta-sts.lists" = { value = "_mta-sts" }
|
2020-12-26 22:47:08 +01:00
|
|
|
}
|
|
|
|
|
2022-03-13 19:18:06 +01:00
|
|
|
# This creates pkgbuild.com A/AAAA DNS entries in addition to those already specified by the VPSes.
|
2020-12-27 03:57:32 +01:00
|
|
|
# The VPSes already get a default domain assigned based on their domain parameter.
|
|
|
|
# Thus the domains in local.pkgbuild_com_a_aaaa are additional domains or domains assigned to dedicated servers.
|
|
|
|
#
|
|
|
|
# The entry name corresponds to the subdomain.
|
|
|
|
# '@' is the root doman (pkgbuild.com).
|
|
|
|
# Valid parameters are:
|
|
|
|
# - ipv4_address (mandatory)
|
|
|
|
# - ipv6_address (mandatory)
|
2020-12-28 02:21:55 +01:00
|
|
|
# - ttl (optional)
|
2020-12-27 03:57:32 +01:00
|
|
|
#
|
|
|
|
pkgbuild_com_a_aaaa = {
|
|
|
|
"@" = {
|
2020-12-28 23:13:43 +01:00
|
|
|
ipv4_address = hcloud_server.machine["homedir.archlinux.org"].ipv4_address
|
|
|
|
ipv6_address = hcloud_server.machine["homedir.archlinux.org"].ipv6_address
|
2020-12-27 03:57:32 +01:00
|
|
|
}
|
|
|
|
"america.mirror" = {
|
|
|
|
ipv4_address = "143.244.34.62"
|
|
|
|
ipv6_address = "2a02:6ea0:cc0e::2"
|
|
|
|
}
|
|
|
|
"america.archive" = {
|
|
|
|
ipv4_address = "143.244.34.62"
|
|
|
|
ipv6_address = "2a02:6ea0:cc0e::2"
|
|
|
|
}
|
|
|
|
"asia.mirror" = {
|
|
|
|
ipv4_address = "84.17.57.98"
|
|
|
|
ipv6_address = "2a02:6ea0:d605::2"
|
|
|
|
}
|
|
|
|
"asia.archive" = {
|
|
|
|
ipv4_address = "84.17.57.98"
|
|
|
|
ipv6_address = "2a02:6ea0:d605::2"
|
|
|
|
}
|
|
|
|
"europe.mirror" = {
|
|
|
|
ipv4_address = "89.187.191.12"
|
|
|
|
ipv6_address = "2a02:6ea0:c237::2"
|
|
|
|
}
|
|
|
|
"europe.archive" = {
|
|
|
|
ipv4_address = "89.187.191.12"
|
|
|
|
ipv6_address = "2a02:6ea0:c237::2"
|
|
|
|
}
|
2022-07-09 06:01:41 +02:00
|
|
|
"seoul.mirror" = {
|
|
|
|
ipv4_address = "145.40.87.75"
|
|
|
|
ipv6_address = "2604:1380:11:2600::1"
|
|
|
|
}
|
|
|
|
"sydney.mirror" = {
|
|
|
|
ipv4_address = "147.75.48.159"
|
|
|
|
ipv6_address = "2604:1380:40f1:6a00::1"
|
|
|
|
}
|
2020-12-27 03:57:32 +01:00
|
|
|
repro1 = {
|
|
|
|
ipv4_address = "147.75.81.79"
|
|
|
|
ipv6_address = "2604:1380:2001:4500::1"
|
|
|
|
}
|
|
|
|
repro2 = {
|
|
|
|
ipv4_address = "212.102.38.209"
|
|
|
|
ipv6_address = "2a02:6ea0:c238::2"
|
|
|
|
}
|
|
|
|
www = {
|
2020-12-28 23:13:43 +01:00
|
|
|
ipv4_address = hcloud_server.machine["homedir.archlinux.org"].ipv4_address
|
|
|
|
ipv6_address = hcloud_server.machine["homedir.archlinux.org"].ipv6_address
|
2020-12-27 03:57:32 +01:00
|
|
|
}
|
|
|
|
}
|
2022-05-13 21:49:16 +02:00
|
|
|
|
2022-06-23 18:46:31 +02:00
|
|
|
# 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
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-05-13 21:49:16 +02:00
|
|
|
# Domains served by machines in the geo_mirrors group
|
2022-05-16 13:18:55 +02:00
|
|
|
# Valid parameters are:
|
|
|
|
# - name (mandatory, specifies the subdomain to create in the above zone)
|
2022-08-21 03:38:16 +02:00
|
|
|
# - zone (optional, defaults to hetznerdns_zone.archlinux.id)
|
2022-05-16 13:18:55 +02:00
|
|
|
# - ttl (optional, the TTL of the NS records, defaults to 86400 if unset)
|
|
|
|
#
|
2022-05-16 14:46:43 +02:00
|
|
|
# Note: If you use a custom TTL, also add it to geo_options[domain]['ns_ttl']
|
|
|
|
# in Ansible (see the 'geo_options' variable in group_vars/all/geo.yml)
|
|
|
|
#
|
2022-05-13 21:49:16 +02:00
|
|
|
geo_domains = {
|
|
|
|
"geo.mirror.pkgbuild.com" = {
|
2022-08-21 03:38:16 +02:00
|
|
|
name = "geo.mirror"
|
|
|
|
zone = hetznerdns_zone.pkgbuild.id
|
2022-05-13 21:49:16 +02:00
|
|
|
}
|
2022-09-12 14:20:01 +02:00
|
|
|
"riscv.mirror.pkgbuild.com" = {
|
|
|
|
name = "riscv.mirror"
|
|
|
|
zone = hetznerdns_zone.pkgbuild.id
|
|
|
|
}
|
2022-05-13 21:49:16 +02:00
|
|
|
}
|
2020-12-26 17:01:12 +01:00
|
|
|
}
|
|
|
|
|
2020-08-27 11:22:04 +02:00
|
|
|
resource "hetznerdns_zone" "archlinux" {
|
|
|
|
name = "archlinux.org"
|
2022-03-13 19:18:06 +01:00
|
|
|
ttl = 3600
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
2022-06-23 18:46:31 +02:00
|
|
|
resource "hetznerdns_zone" "archlinux_page" {
|
|
|
|
name = "archlinux.page"
|
|
|
|
ttl = 3600
|
|
|
|
}
|
|
|
|
|
2020-08-27 11:22:04 +02:00
|
|
|
resource "hetznerdns_zone" "pkgbuild" {
|
|
|
|
name = "pkgbuild.com"
|
2022-03-13 19:18:06 +01:00
|
|
|
ttl = 3600
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
2022-06-23 18:46:31 +02:00
|
|
|
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"
|
2022-07-18 08:54:09 +02:00
|
|
|
value = "gitlab-pages-verification-code=0b9e3fc74735f5d83c7cfc86883b40cb"
|
2022-06-23 18:46:31 +02:00
|
|
|
type = "TXT"
|
|
|
|
}
|
|
|
|
|
2020-08-27 11:22:04 +02:00
|
|
|
resource "hetznerdns_record" "pkgbuild_com_origin_caa" {
|
|
|
|
zone_id = hetznerdns_zone.pkgbuild.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
|
|
|
value = "0 issue \"letsencrypt.org\""
|
|
|
|
type = "CAA"
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "pkgbuild_com_origin_mx" {
|
|
|
|
zone_id = hetznerdns_zone.pkgbuild.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
|
|
|
value = "0 ."
|
|
|
|
type = "MX"
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "pkgbuild_com_origin_ns3" {
|
|
|
|
zone_id = hetznerdns_zone.pkgbuild.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
2021-07-07 01:16:54 +02:00
|
|
|
value = "helium.ns.hetzner.de."
|
2020-10-21 20:14:43 +02:00
|
|
|
type = "NS"
|
2022-03-14 07:12:33 +01:00
|
|
|
ttl = 86400
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "pkgbuild_com_origin_ns2" {
|
|
|
|
zone_id = hetznerdns_zone.pkgbuild.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
2021-07-07 01:16:54 +02:00
|
|
|
value = "oxygen.ns.hetzner.com."
|
2020-10-21 20:14:43 +02:00
|
|
|
type = "NS"
|
2022-03-14 07:12:33 +01:00
|
|
|
ttl = 86400
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "pkgbuild_com_origin_ns1" {
|
|
|
|
zone_id = hetznerdns_zone.pkgbuild.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
2021-07-07 01:16:54 +02:00
|
|
|
value = "hydrogen.ns.hetzner.com."
|
2020-10-21 20:14:43 +02:00
|
|
|
type = "NS"
|
2022-03-14 07:12:33 +01:00
|
|
|
ttl = 86400
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
2020-09-08 12:34:16 +02:00
|
|
|
# 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" "pkgbuild_com_origin_soa" {
|
|
|
|
# zone_id = hetznerdns_zone.pkgbuild.id
|
|
|
|
# name = "@"
|
2021-07-07 12:40:59 +02:00
|
|
|
# value = "hydrogen.ns.hetzner.com. hetzner.archlinux.org. 2021070703 3600 1800 604800 3600"
|
2020-09-08 12:34:16 +02:00
|
|
|
# type = "SOA"
|
|
|
|
# }
|
2020-08-27 11:22:04 +02:00
|
|
|
|
|
|
|
resource "hetznerdns_record" "pkgbuild_com_origin_txt" {
|
|
|
|
zone_id = hetznerdns_zone.pkgbuild.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
|
|
|
value = "\"v=spf1 -all\""
|
|
|
|
type = "TXT"
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "archlinux_org_origin_caa" {
|
|
|
|
zone_id = hetznerdns_zone.archlinux.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
|
|
|
value = "0 issue \"letsencrypt.org\""
|
|
|
|
type = "CAA"
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "archlinux_org_origin_ns3" {
|
|
|
|
zone_id = hetznerdns_zone.archlinux.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
2021-07-07 01:16:54 +02:00
|
|
|
value = "helium.ns.hetzner.de."
|
2020-10-21 20:14:43 +02:00
|
|
|
type = "NS"
|
2022-03-14 07:12:33 +01:00
|
|
|
ttl = 86400
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "archlinux_org_origin_ns2" {
|
|
|
|
zone_id = hetznerdns_zone.archlinux.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
2021-07-07 01:16:54 +02:00
|
|
|
value = "oxygen.ns.hetzner.com."
|
2020-10-21 20:14:43 +02:00
|
|
|
type = "NS"
|
2022-03-14 07:12:33 +01:00
|
|
|
ttl = 86400
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hetznerdns_record" "archlinux_org_origin_ns1" {
|
|
|
|
zone_id = hetznerdns_zone.archlinux.id
|
2020-10-21 20:14:43 +02:00
|
|
|
name = "@"
|
2021-07-07 01:16:54 +02:00
|
|
|
value = "hydrogen.ns.hetzner.com."
|
2020-10-21 20:14:43 +02:00
|
|
|
type = "NS"
|
2022-03-14 07:12:33 +01:00
|
|
|
ttl = 86400
|
2020-08-27 11:22:04 +02:00
|
|
|
}
|
|
|
|
|
2020-09-08 12:34:16 +02:00
|
|
|
# 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_org_origin_soa" {
|
|
|
|
# zone_id = hetznerdns_zone.archlinux.id
|
|
|
|
# name = "@"
|
2021-07-07 12:40:59 +02:00
|
|
|
# value = "hydrogen.ns.hetzner.com. hetzner.archlinux.org. 2021070703 3600 1800 604800 3600"
|
2020-09-08 12:34:16 +02:00
|
|
|
# type = "SOA"
|
|
|
|
# }
|
2020-08-27 11:22:04 +02:00
|
|
|
|
2020-12-18 16:38:13 +01:00
|
|
|
resource "hcloud_floating_ip" "gitlab_pages" {
|
2022-04-23 02:13:59 +02:00
|
|
|
type = "ipv4"
|
|
|
|
description = "GitLab Pages"
|
|
|
|
server_id = hcloud_server.machine["gitlab.archlinux.org"].id
|
|
|
|
delete_protection = true
|
2020-12-18 16:38:13 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
variable "gitlab_pages_ipv6" {
|
|
|
|
default = "2a01:4f8:c2c:5d2d::2"
|
|
|
|
}
|
|
|
|
|
2020-08-13 21:07:15 +02:00
|
|
|
resource "hcloud_volume" "mirror" {
|
2022-04-23 02:13:59 +02:00
|
|
|
name = "mirror"
|
|
|
|
size = 100
|
|
|
|
server_id = hcloud_server.machine["mirror.pkgbuild.com"].id
|
|
|
|
delete_protection = true
|
2019-11-18 07:47:44 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
resource "hcloud_volume" "homedir" {
|
2022-04-23 02:13:59 +02:00
|
|
|
name = "homedir"
|
|
|
|
size = 100
|
|
|
|
server_id = hcloud_server.machine["homedir.archlinux.org"].id
|
|
|
|
delete_protection = true
|
2020-04-30 14:30:35 +02:00
|
|
|
}
|
2021-03-19 05:41:40 +01:00
|
|
|
|
|
|
|
resource "hcloud_volume" "monitoring" {
|
2022-04-23 02:13:59 +02:00
|
|
|
name = "monitoring"
|
|
|
|
size = 200
|
|
|
|
server_id = hcloud_server.machine["monitoring.archlinux.org"].id
|
|
|
|
delete_protection = true
|
2021-03-19 05:41:40 +01:00
|
|
|
}
|
2022-01-27 20:38:46 +01:00
|
|
|
|
|
|
|
resource "hcloud_volume" "debuginfod" {
|
2022-04-23 02:13:59 +02:00
|
|
|
name = "debuginfod"
|
2023-01-06 00:40:37 +01:00
|
|
|
size = 50
|
2022-04-23 02:13:59 +02:00
|
|
|
server_id = hcloud_server.machine["debuginfod.archlinux.org"].id
|
|
|
|
delete_protection = true
|
2022-01-27 20:38:46 +01:00
|
|
|
}
|
2022-08-10 21:53:08 +02:00
|
|
|
|
|
|
|
resource "hcloud_volume" "repos-git" {
|
|
|
|
name = "repos-git"
|
|
|
|
size = 100
|
|
|
|
server_id = hcloud_server.machine["repos-git.archlinux.org"].id
|
|
|
|
delete_protection = true
|
|
|
|
}
|