34 lines
724 B
HCL
34 lines
724 B
HCL
terraform {
|
|
required_providers {
|
|
cloudflare = {
|
|
source = "cloudflare/cloudflare"
|
|
}
|
|
}
|
|
}
|
|
|
|
locals {
|
|
hostname_records = length(var.hostnames) > 0 ? {
|
|
for hostname in var.hostnames :
|
|
hostname => {
|
|
name = split(".", hostname)[0] // Extract subdomain
|
|
value = var.target_content
|
|
type = var.record_type
|
|
proxied = var.proxied
|
|
ttl = var.ttl
|
|
}
|
|
} : {}
|
|
|
|
all_records = merge(local.hostname_records, var.dns_records)
|
|
}
|
|
|
|
resource "cloudflare_record" "service" {
|
|
for_each = local.all_records
|
|
|
|
zone_id = var.zone_id
|
|
name = each.value.name
|
|
content = each.value.value
|
|
type = each.value.type
|
|
proxied = each.value.proxied
|
|
ttl = each.value.ttl
|
|
}
|