reconcile zone apex NS off the pod IP placeholder
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful

Add BindZone.spec.nameservers and sync the apex NS RRset on every reconcile.
This commit is contained in:
2026-09-26 18:27:11 +10:00
parent 03df5d56b4
commit 4a41cbc427
14 changed files with 346 additions and 39 deletions
+9
View File
@@ -64,6 +64,15 @@ type BindZoneSpec struct {
// +optional
DefaultTTL int32 `json:"defaultTTL,omitempty"`
// Nameservers are the names published in the zone's apex NS RRset, kept in
// sync on every reconcile. Each entry is a full domain name, never relative
// to the zone. Prefer out-of-zone names glued by the parent: an
// in-zone name needs an address record in the zone, and the seed can only
// supply the primary pod's (unstable) IP for it. When empty the apex NS is
// the primary's stable in-cluster DNS name.
// +optional
Nameservers []string `json:"nameservers,omitempty"`
// Records are static record sets seeded into a primary zone.
// +optional
Records []Record `json:"records,omitempty"`
+5
View File
@@ -970,6 +970,11 @@ func (in *BindZoneList) DeepCopyObject() runtime.Object {
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *BindZoneSpec) DeepCopyInto(out *BindZoneSpec) {
*out = *in
if in.Nameservers != nil {
in, out := &in.Nameservers, &out.Nameservers
*out = make([]string, len(*in))
copy(*out, *in)
}
if in.Records != nil {
in, out := &in.Records, &out.Records
*out = make([]Record, len(*in))