77 lines
1.8 KiB
HCL
77 lines
1.8 KiB
HCL
terraform {
|
|
required_providers {
|
|
cloudflare = {
|
|
source = "cloudflare/cloudflare"
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "cloudflare_dns_record" "proxy_ipv4" {
|
|
zone_id = var.domain_zone_id
|
|
name = "${var.domain_name}"
|
|
content = var.pangolin-proxy-v4
|
|
comment = "Azure VPS"
|
|
type = "A"
|
|
proxied = false
|
|
ttl = 1
|
|
}
|
|
|
|
resource "cloudflare_dns_record" "proxy_ipv6" {
|
|
zone_id = var.domain_zone_id
|
|
name = "${var.domain_name}"
|
|
content = var.pangolin-proxy-v6
|
|
comment = "Azure VPS"
|
|
type = "AAAA"
|
|
proxied = false
|
|
ttl = 1
|
|
}
|
|
|
|
|
|
resource "cloudflare_dns_record" "subdomains_ipv4" {
|
|
zone_id = var.domain_zone_id
|
|
name = "*.${var.domain_name}"
|
|
content = var.pangolin-proxy-v4
|
|
comment = "Azure VPS"
|
|
type = "A"
|
|
proxied = false
|
|
ttl = 1
|
|
}
|
|
|
|
resource "cloudflare_dns_record" "subdomains_ipv6" {
|
|
zone_id = var.domain_zone_id
|
|
name = "*.${var.domain_name}"
|
|
content = var.pangolin-proxy-v6
|
|
comment = "Azure VPS"
|
|
type = "AAAA"
|
|
proxied = false
|
|
ttl = 1
|
|
}
|
|
|
|
# ── CDN-proxied subdomains ───────────────────────────────────
|
|
# Specific records with proxied=true override the wildcard for
|
|
# these subdomains, enabling Cloudflare edge caching.
|
|
|
|
resource "cloudflare_dns_record" "cdn_ipv4" {
|
|
for_each = toset(var.cdn_subdomains)
|
|
|
|
zone_id = var.domain_zone_id
|
|
name = "${each.value}.${var.domain_name}"
|
|
content = var.pangolin-proxy-v4
|
|
comment = "CDN-proxied via Cloudflare"
|
|
type = "A"
|
|
proxied = true
|
|
ttl = 1
|
|
}
|
|
|
|
resource "cloudflare_dns_record" "cdn_ipv6" {
|
|
for_each = toset(var.cdn_subdomains)
|
|
|
|
zone_id = var.domain_zone_id
|
|
name = "${each.value}.${var.domain_name}"
|
|
content = var.pangolin-proxy-v6
|
|
comment = "CDN-proxied via Cloudflare"
|
|
type = "AAAA"
|
|
proxied = true
|
|
ttl = 1
|
|
}
|