pez-infra/terraform/hetzner_dns.tf
Rasmus "Pez" Wejlgaard d22f7a52a0
Some checks failed
Terraform / Plan (push) Has been cancelled
Terraform / Apply (push) Has been cancelled
fix: clean up of terraform (#92)
2026-05-02 14:46:03 +01:00

90 lines
2.6 KiB
HCL

resource "hcloud_zone" "pezsh" {
name = "pez.sh"
mode = "primary"
}
locals {
helsinki_a = hcloud_server.helsinki-a.ipv4_address
nuremberg_a = hcloud_server.nuremberg-a.ipv4_address
nuremberg_aaaa = hcloud_server.nuremberg-a.ipv6_address
copenhagen = "83.94.248.182"
}
resource "hcloud_zone_rrset" "A_helsinki_a" {
for_each = toset([
"@", "apps", "auth", "bitwarden", "download", "git", "grafana", "helsinki-a",
"jellyfin", "jellyfin-requests", "ldap", "lidarr", "music", "naveen",
"plex", "prometheus", "prowlarr", "radarr", "readarr", "request",
"rss", "sonarr", "soulseek", "status",
])
zone = hcloud_zone.pezsh.name
name = each.value
type = "A"
ttl = 300
records = [{ value = local.helsinki_a }]
}
resource "hcloud_zone_rrset" "nuremberg_mail" {
for_each = {
A = local.nuremberg_a
AAAA = local.nuremberg_aaaa
}
zone = hcloud_zone.pezsh.name
name = "mail"
type = each.key
ttl = 300
records = [{ value = each.value }]
}
resource "hcloud_zone_rrset" "A_copenhagen" {
for_each = toset(["minecraft", "wow"])
zone = hcloud_zone.pezsh.name
name = each.value
type = "A"
ttl = 300
records = [{ value = local.copenhagen }]
}
resource "hcloud_zone_rrset" "CNAME_public" {
zone = hcloud_zone.pezsh.name
name = "public"
type = "CNAME"
ttl = 300
records = [{ value = "public.r2.dev." }]
}
resource "hcloud_zone_rrset" "MX_root" {
zone = hcloud_zone.pezsh.name
name = "@"
type = "MX"
ttl = 300
records = [
{ value = "10 mail.pez.sh." },
]
}
resource "hcloud_zone_rrset" "TXT_dkim" {
zone = hcloud_zone.pezsh.name
name = "dkim._domainkey"
type = "TXT"
ttl = 300
records = [{
value = "\"v=DKIM1;k=rsa;t=s;s=email;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAmT/TGkPkfbjleqRYuQoI67/xvM0J5gGmdlzo2jO5qTABz5+nzOS+PefrXkeEZ0IZrpLPKqLyi7K469Ql+HG5wDFDxQRRG7lHJkWJ4tnZgjZWgeszFPhoME74lT6i+j3x29WyxhyzNg0f3NhSwttOe5knmS4zsOb+JK4jShoF9zZkOUCHAZ/vKvY\" \"tJdV+8qpmU8wfgyrzN1OWxjHIjzPP8iMD4g0iCfobbvSvWXHYBveCS7b/Nr3jw3E8twtEAUEGYNGd4h0wKNbNagYUsb5My8tMxQQwZf6imKHgCeYC7buH8TvaJHATReeea4Dzj9UzdPgwdbFLiMB/HXlN0GPhlQIDAQAB\""
}]
}
resource "hcloud_zone_rrset" "TXT_dmarc" {
zone = hcloud_zone.pezsh.name
name = "_dmarc"
type = "TXT"
ttl = 300
records = [{ value = "\"v=DMARC1; p=quarantine; rua=mailto:pez@pez.sh; adkim=r; aspf=r\"" }]
}
resource "hcloud_zone_rrset" "TXT_spf" {
zone = hcloud_zone.pezsh.name
name = "@"
type = "TXT"
ttl = 300
records = [{ value = "\"v=spf1 ip4:${local.nuremberg_a} ip6:${local.nuremberg_aaaa} -all\"" }]
}