Difference between revisions of "Terraform resource: cloudflare record"
Jump to navigation
Jump to search
Line 32: | Line 32: | ||
target = "example.com" | target = "example.com" | ||
} | } | ||
+ | } | ||
+ | |||
+ | == Exampl with data [[cloudflare_zones]] == | ||
+ | |||
+ | https://github.com/djangoflow/terraform-kubernetes-django/blob/main/modules/cloudflare/main.tf | ||
+ | data "cloudflare_zones" "zones" { | ||
+ | filter {} | ||
+ | } | ||
+ | |||
+ | locals { | ||
+ | zones = {for zone in data.cloudflare_zones.zones.zones : zone.name => zone.id} | ||
+ | } | ||
+ | |||
+ | resource "cloudflare_record" "record" { | ||
+ | for_each = var.records | ||
+ | name = each.key | ||
+ | type = each.value.type | ||
+ | value = each.value.value | ||
+ | proxied = each.value.proxied | ||
+ | zone_id = lookup(local.zones, regex(".*?([^.]+\\.[^.]+)$", each.key)[0]) | ||
+ | lifecycle { | ||
+ | ignore_changes = [zone_id] | ||
+ | } | ||
} | } | ||
Revision as of 11:25, 8 March 2024
https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs/resources/record
proxied
Official example
resource "cloudflare_record" "example" { zone_id = var.cloudflare_zone_id name = "terraform" value = "192.0.2.1" type = "A" ttl = 3600 }
# Add a record to the domain resource "cloudflare_record" "example" { zone_id = var.cloudflare_zone_id name = "terraform" value = "192.0.2.1" type = "A" ttl = 3600 } # Add a record requiring a data map resource "cloudflare_record" "_sip_tls" { zone_id = var.cloudflare_zone_id name = "_sip._tls" type = "SRV" data { service = "_sip" proto = "_tls" name = "terraform-srv" priority = 0 weight = 0 port = 443 target = "example.com" } }
Exampl with data cloudflare_zones
https://github.com/djangoflow/terraform-kubernetes-django/blob/main/modules/cloudflare/main.tf
data "cloudflare_zones" "zones" { filter {} }
locals { zones = {for zone in data.cloudflare_zones.zones.zones : zone.name => zone.id} } resource "cloudflare_record" "record" { for_each = var.records name = each.key type = each.value.type value = each.value.value proxied = each.value.proxied zone_id = lookup(local.zones, regex(".*?([^.]+\\.[^.]+)$", each.key)[0]) lifecycle { ignore_changes = [zone_id] } }
See also
Advertising: