feat: move from cloudflare to hetzner update zones.yaml
This commit is contained in:
parent
496292086f
commit
c2ec494411
3 changed files with 104 additions and 47 deletions
53
main.tf
53
main.tf
|
@ -1,9 +1,6 @@
|
|||
provider "cloudflare" {
|
||||
api_token = local.cloudflare_api.auth.api_token
|
||||
}
|
||||
|
||||
locals {
|
||||
cloudflare_api = yamldecode(file("${path.module}/auth.yaml"))
|
||||
api = yamldecode(file("${path.module}/auth.yaml"))
|
||||
zones = yamldecode(file("${path.module}/zones.yaml"))
|
||||
|
||||
zone_data = flatten([
|
||||
|
@ -22,21 +19,49 @@ locals {
|
|||
]]
|
||||
])
|
||||
}
|
||||
|
||||
data "cloudflare_zone" "zone" {
|
||||
for_each = local.zones
|
||||
name = each.key
|
||||
output "zones" {
|
||||
value = length(local.zones)
|
||||
}
|
||||
|
||||
resource "cloudflare_record" "myrecord" {
|
||||
resource "hetznerdns_zone" "zone" {
|
||||
for_each = local.zones
|
||||
name = each.key
|
||||
ttl = 300
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
resource "hetznerdns_record" "myrecord" {
|
||||
for_each = {
|
||||
for record in local.zone_data : "${record.record_type}${record.extra_data}-${record.record_name}.${record.zone_name}" => record }
|
||||
|
||||
zone_id = data.cloudflare_zone.zone[each.value.zone_name].id
|
||||
name = "${each.value.record_name}.${each.value.zone_name}" == "@.${each.value.zone_name}" ? each.value.zone_name : "${each.value.record_name}.${each.value.zone_name}"
|
||||
zone_id = hetznerdns_zone.zone[each.value.zone_name].id
|
||||
name = "${each.value.record_name}"
|
||||
type = each.value.record_type
|
||||
value = each.value.record_value
|
||||
value = each.value.record_type == "MX" ? "${each.value.extra_data} ${each.value.record_value}" : each.value.record_value
|
||||
ttl = 300
|
||||
priority = each.value.record_type == "MX" ? tonumber(each.value.extra_data) : 0
|
||||
comment = "OpenTofu"
|
||||
|
||||
}
|
||||
|
||||
resource "hetznerdns_record" "ns" {
|
||||
for_each = {
|
||||
for entry in flatten([
|
||||
for zone in hetznerdns_zone.zone : [
|
||||
for ns_entry in zone.ns : {
|
||||
zone_id = zone.id
|
||||
ns_entry = ns_entry
|
||||
key = "${zone.id}-${ns_entry}"
|
||||
}
|
||||
]
|
||||
]) : entry.key => entry
|
||||
}
|
||||
|
||||
zone_id = each.value.zone_id
|
||||
name = "@"
|
||||
type = "NS"
|
||||
value = each.value.ns_entry
|
||||
ttl = 300
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue