52 lines
1.4 KiB
Terraform
52 lines
1.4 KiB
Terraform
data "google_client_config" "default" {}
|
|
|
|
resource "google_dns_managed_zone" "zone" {
|
|
dns_name = var.dns_name
|
|
name = var.zone_name != null ? var.zone_name : "${replace(replace(var.dns_name, "/\\.$/", ""), ".", "-")}-zone"
|
|
project = var.project_id != null ? var.project_id : data.google_client_config.default.project
|
|
|
|
visibility = var.network_id != null ? "private" : "public"
|
|
|
|
dynamic "private_visibility_config" {
|
|
for_each = var.network_id != null ? [1] : []
|
|
|
|
content {
|
|
networks {
|
|
network_url = var.network_id
|
|
}
|
|
}
|
|
}
|
|
|
|
dynamic "forwarding_config" {
|
|
for_each = var.target_name_servers != null ? var.target_name_servers : []
|
|
|
|
content {
|
|
target_name_servers {
|
|
ipv4_address = forwarding_config.value
|
|
}
|
|
}
|
|
}
|
|
|
|
dynamic "peering_config" {
|
|
for_each = var.peering_network_id != null ? [1] : []
|
|
|
|
content {
|
|
target_network {
|
|
network_url = var.peering_network_id
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "google_dns_record_set" "records" {
|
|
count = length(var.resource_records)
|
|
project = var.project_id != null ? var.project_id : data.google_client_config.default.project
|
|
|
|
managed_zone = google_dns_managed_zone.zone.name
|
|
name = var.resource_records[count.index].name
|
|
type = var.resource_records[count.index].type
|
|
ttl = var.resource_records[count.index].ttl
|
|
|
|
rrdatas = var.resource_records[count.index].rrdatas
|
|
}
|