Replace flat with "@" + implement vars with "$" + add special type "A+AAAA" + resolver (cache, retry, multi-results)
This commit is contained in:
parent
e1fc586076
commit
d145ffa61a
4 changed files with 204 additions and 70 deletions
26
main.go
26
main.go
|
|
@ -68,22 +68,21 @@ func main() {
|
|||
|
||||
log.Info("Creating DNS config file for existing zone", "zone", hZone.Name)
|
||||
|
||||
zone := dnsconfig.Zone{
|
||||
zone := dnsconfig.TomlZone{
|
||||
Domain: strings.ToLower(hZone.Name),
|
||||
DefaultTTL: 3600,
|
||||
}
|
||||
|
||||
for _, record := range hZone.Records {
|
||||
zone.Records = append(zone.Records, dnsconfig.Record{
|
||||
zone.TomlRecords = append(zone.TomlRecords, dnsconfig.TomlRecord{
|
||||
Name: record.Name,
|
||||
Type: record.Type,
|
||||
Value: record.Value,
|
||||
TTL: record.TTL,
|
||||
Flat: false,
|
||||
})
|
||||
}
|
||||
|
||||
err = dnsconfig.CreateZone(zone)
|
||||
err = dnsconfig.CreateTomlZone(zone)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
|
@ -109,31 +108,12 @@ func main() {
|
|||
log.Info("Calculating sync diff (step 1: create/update)")
|
||||
var keepTheseIds []string
|
||||
for _, zone := range zones {
|
||||
if zone.DefaultTTL <= 0 {
|
||||
zone.DefaultTTL = 3600
|
||||
}
|
||||
|
||||
for _, hZone := range hZones {
|
||||
if strings.EqualFold(zone.Domain, hZone.Name) {
|
||||
log.Info("Calculating sync diff for zone", "name", zone.Domain)
|
||||
|
||||
var alreadyFoundIds []string
|
||||
for _, record := range zone.Records {
|
||||
if record.Flat {
|
||||
record.Value = helpers.ResolveRecord(
|
||||
record.Value, record.Type,
|
||||
)
|
||||
|
||||
if len(record.Value) == 0 {
|
||||
log.Error("Could not flatten record, skipping", "record", record)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if record.TTL <= 0 {
|
||||
record.TTL = zone.DefaultTTL
|
||||
}
|
||||
|
||||
var id string
|
||||
for _, hRecord := range hZone.Records {
|
||||
if slices.Contains(alreadyFoundIds, hRecord.ID) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue