diff --git a/pkg/dns/record.go b/pkg/dns/record.go index 3a00d25..ed958b8 100644 --- a/pkg/dns/record.go +++ b/pkg/dns/record.go @@ -151,6 +151,16 @@ func (mgr *Manager) genRegionsSorted() []string { return cluster.SortRegions(regions) } +func (mgr *Manager) genZonesSorted() []string { + zones := make([]string, 0, len(mgr.zones)) + for name := range mgr.zones { + zones = append(zones, name) + } + + sort.Strings(zones) + return zones +} + func (mgr *Manager) genAllAddrRecords() []AddrRecord { var out []AddrRecord diff --git a/pkg/dns/write.go b/pkg/dns/write.go index 5fdb05b..b129252 100644 --- a/pkg/dns/write.go +++ b/pkg/dns/write.go @@ -14,12 +14,13 @@ func (mgr *Manager) WriteTo(w io.Writer) (int64, error) { cache := make(map[string][]netip.Addr) // zones - for _, z := range mgr.zones { + for _, zoneName := range mgr.genZonesSorted() { + z := mgr.zones[zoneName] + mgr.writeZoneHosts(&buf, z) // zone alias addrs := mgr.genZoneAddresses(z) - zoneName := z.Name rr := AddrRecord{ Name: mgr.fqdn(zoneName + mgr.suffix),