# --------------------------- # 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 }