Hetzner hat DNS in die Cloud-API integriert → der hcloud-Provider (>=1.64) bringt hcloud_zone/hcloud_zone_rrset mit. germanbrew/hetznerdns (separate API + eigener Token) entfernt. dns.tf legt mit manage_dns=true Apex (@) + Wildcard (*) als A-Records auf die caddy_ip; Zone wird per Name nachgeschlagen. Plan verifiziert (12 to add). Kein separater DNS-Token mehr nötig. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
29 lines
986 B
HCL
29 lines
986 B
HCL
# DNS über die Hetzner Cloud DNS API (manage_dns = true) — gleicher Cloud-Token,
|
|
# DNS ist inzwischen in die Cloud-API integriert. Die Zone muss bereits in
|
|
# Hetzner DNS existieren (Lookup per Name).
|
|
|
|
data "hcloud_zone" "zone" {
|
|
count = var.manage_dns ? 1 : 0
|
|
name = var.dns_zone_name
|
|
}
|
|
|
|
# Portal-Domain (Apex "@" wenn domain == zone, sonst Subdomain-Teil) → Caddy
|
|
resource "hcloud_zone_rrset" "portal" {
|
|
count = var.manage_dns ? 1 : 0
|
|
zone = data.hcloud_zone.zone[0].id
|
|
name = var.domain == var.dns_zone_name ? "@" : replace(var.domain, ".${var.dns_zone_name}", "")
|
|
type = "A"
|
|
ttl = 300
|
|
records = [{ value = hcloud_server.caddy.ipv4_address }]
|
|
}
|
|
|
|
# Wildcard für Firmen-Subdomains (KONZEPT §11) → Caddy (On-Demand-TLS)
|
|
resource "hcloud_zone_rrset" "wildcard" {
|
|
count = var.manage_dns ? 1 : 0
|
|
zone = data.hcloud_zone.zone[0].id
|
|
name = "*"
|
|
type = "A"
|
|
ttl = 300
|
|
records = [{ value = hcloud_server.caddy.ipv4_address }]
|
|
}
|