This software is aimed to convert the input CSV file from route53-transfer to a JSON file which can be then used in a Terraform google_dns_record_set
- Python 3.7.9 or higher
pip install route53-recordset-converter
- Dump AWS Route 53 Hosted Zone records to a CSV using route53-transfer
route53-transfer dump example.com example.com.csv
- Convert the CSV file to a JSON one
route53-recordset-converter example.com.csv example.com.json
- Use the JSON in Terraform
locals {
dns_records = jsondecode(file("example.com.json"))
}
resource "google_dns_record_set" "dns_records" {
for_each = { for index, dns_record in local.dns_records : index => dns_record }
name = each.value.name
managed_zone = "dns-zone-name"
type = each.value.type
ttl = each.value.ttl
rrdatas = each.value.value
}
The following CSV formats are supported:
aws
: AWS Route 53 standard format, as outputted byroute53-transfer
register.it
: Register.it format, as exported by www.register.it
You can convert the CSV without dumping them to a JSON.
from route53_recordset_converter import Route53RecordsetConverter
c = Route53RecordsetConverter()
converted_results = c.convert("example.com.csv")