init
This commit is contained in:
41
terraform/stacks/powerdns/main.tf
Normal file
41
terraform/stacks/powerdns/main.tf
Normal file
@@ -0,0 +1,41 @@
|
||||
# ---------------------------
|
||||
# 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
|
||||
}
|
||||
4
terraform/stacks/powerdns/providers.tf
Normal file
4
terraform/stacks/powerdns/providers.tf
Normal file
@@ -0,0 +1,4 @@
|
||||
provider "powerdns" {
|
||||
server_url = var.pdns_server_url
|
||||
api_key = var.pdns_api_key
|
||||
}
|
||||
23
terraform/stacks/powerdns/variables.tf
Normal file
23
terraform/stacks/powerdns/variables.tf
Normal file
@@ -0,0 +1,23 @@
|
||||
variable "pdns_server_url" {
|
||||
type = string
|
||||
}
|
||||
|
||||
variable "pdns_api_key" {
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
|
||||
variable "zones" {
|
||||
type = map(object({
|
||||
zone_kind = string
|
||||
soa_edit_api = string
|
||||
zone_nameservers = list(string)
|
||||
|
||||
records = map(object({
|
||||
name = string
|
||||
type = string
|
||||
ttl = number
|
||||
records = list(string)
|
||||
}))
|
||||
}))
|
||||
}
|
||||
10
terraform/stacks/powerdns/versions.tf
Normal file
10
terraform/stacks/powerdns/versions.tf
Normal file
@@ -0,0 +1,10 @@
|
||||
terraform {
|
||||
required_version = ">= 1.3.0"
|
||||
|
||||
required_providers {
|
||||
powerdns = {
|
||||
source = "pan-net/powerdns"
|
||||
# version = "1.5.0" # опционально: можно зафиксировать
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user