ns-controller: do not use cname aliases
diff --git a/core/ns-controller/controllers/store.go b/core/ns-controller/controllers/store.go
index 2e1e955..533e767 100644
--- a/core/ns-controller/controllers/store.go
+++ b/core/ns-controller/controllers/store.go
@@ -29,7 +29,7 @@
type ZoneConfig struct {
Zone string `json:"zone,omitempty"`
PublicIPs []string `json:"publicIPs,omitempty"`
- PrivateIP string `json:"privateIP",omitempty`
+ PrivateIP string `json:"privateIP,omitempty"`
Nameservers []string `json:"nameservers,omitempty"`
DNSSec *DNSSecKey `json:"dnsSec,omitempty"`
}
@@ -210,10 +210,10 @@
ns{{ add1 $i }}.{{ $zone }}. 10800 IN A {{ $ns }}
{{ end }}
{{ range .publicIngressIPs }}
-@ 10800 IN A {{ . }}
+{{ $zone }}. 10800 IN A {{ . }}
+*.{{ $zone }}. 10800 IN A {{ . }}
+*.*.{{ $zone }}. 10800 IN A {{ . }}
{{ end }}
-*.{{ $zone }}. 10800 IN CNAME {{ $zone }}.
-p.{{ $zone }}. 10800 IN CNAME {{ $zone }}.
*.p.{{ $zone }}. 10800 IN A {{ .privateIngressIP }}
`)
records, err := fs.Create("zone.db")
@@ -252,7 +252,11 @@
if err != nil {
return err
}
- z.CreateOrReplaceTxtRecord(fmt.Sprintf("%s.%s.", entry, s.zone.Zone), txt)
+ var fqdn = fmt.Sprintf("%s.%s.", entry, s.zone.Zone)
+ z.CreateOrReplaceTxtRecord(fqdn, txt)
+ for _, ip := range s.zone.PublicIPs {
+ z.CreateARecord(fqdn, ip)
+ }
w, err := s.fs.Create("zone.db")
if err != nil {
return err
@@ -261,9 +265,6 @@
if err := z.Write(w); err != nil {
return err
}
- // if _, err := r.Write([]byte(fmt.Sprintf("%s 300 IN TXT \"%s\"", entry, txt))); err != nil {
- // return err
- // }
return nil
}
@@ -277,7 +278,9 @@
if err != nil {
return err
}
- z.DeleteTxtRecord(fmt.Sprintf("%s.%s.", entry, s.zone.Zone), txt)
+ fqdn := fmt.Sprintf("%s.%s.", entry, s.zone.Zone)
+ z.DeleteTxtRecord(fqdn, txt)
+ z.DeleteRecordsFor(fqdn)
w, err := s.fs.Create("zone.db")
if err != nil {
return err