42 lines
1012 B
HCL
42 lines
1012 B
HCL
# ---------------------------
|
|
# Zones (many)
|
|
# ---------------------------
|
|
module "zones" {
|
|
for_each = var.zones
|
|
source = "../../modules/powerdns/zone"
|
|
|
|
zone_name = each.key
|
|
zone_kind = each.value.zone_kind
|
|
soa_edit_api = each.value.soa_edit_api
|
|
zone_nameservers = each.value.zone_nameservers
|
|
}
|
|
|
|
# ---------------------------
|
|
# Records (flatten -> many)
|
|
# ---------------------------
|
|
locals {
|
|
records_flat = merge([
|
|
for zone_name, z in var.zones : {
|
|
for rec_key, rec in z.records :
|
|
"${zone_name}::${rec_key}" => {
|
|
zone_name = zone_name
|
|
name = rec.name
|
|
type = rec.type
|
|
ttl = rec.ttl
|
|
records = rec.records
|
|
}
|
|
}
|
|
]...)
|
|
}
|
|
|
|
module "records" {
|
|
for_each = local.records_flat
|
|
source = "../../modules/powerdns/record"
|
|
|
|
zone_name = module.zones[each.value.zone_name].name
|
|
name = each.value.name
|
|
type = each.value.type
|
|
ttl = each.value.ttl
|
|
records = each.value.records
|
|
}
|