infrastructure/tf/system/records/cnames.tf

40 lines
1.1 KiB
HCL

variable "local_subdomains" {
type = list(string)
default = []
}
variable "global_subdomains" {
type = list(string)
default = []
}
locals {
cname_records = concat(
[for subdomain in var.local_subdomains : {
name = "${subdomain}.local",
value = "${local.local_name}.${var.zone_zone}",
}],
local.has_int ? [for subdomain in var.local_subdomains : {
name = "${subdomain}.int",
value = "${local.int_name}.${var.zone_zone}",
}] : [],
local.has_tailscale ? [for subdomain in var.local_subdomains : {
name = "${subdomain}.tail",
value = "${local.tailscale_name}.${var.zone_zone}",
}] : [],
[for subdomain in var.global_subdomains : {
name = subdomain,
value = "${local.global_name}.${var.zone_zone}",
}],
)
}
resource "cloudflare_record" "cname_records" {
for_each = { for i, cname in local.cname_records : cname.name => i }
name = local.cname_records[each.value].name
proxied = false
ttl = 600
type = "CNAME"
content = local.cname_records[each.value].value
zone_id = var.zone_id
}