What needs to happen
When a DNSRecordSet's owner name changes to a different spelling of the same DNS name — for example from the absolute api.example.com. to the relative api — the dnsrecordset-powerdns controller should end up with the record present in PowerDNS. Today it deletes it.
Why this matters
The record disappears from PowerDNS while the DNSRecordSet still reports Programmed=True, so the hostname returns NXDOMAIN with nothing in the resource status to indicate a problem. The reconciler has no periodic requeue, so recovery waits on the next watch event — the informer resync is 10h by default.
This is reachable in production right now. Gateway DNS moved to relative owner names shipped in network-services-operator v0.24.8, and enableDNSIntegration is on in staging and production, so every gateway-managed record undergoes exactly this rewrite once.
It also re-opens the conflict in the gateway DNS dual-write issue: deleting a CNAME and recreating it against an A/AAAA still present at the same name is the 422 that pins ControllerReconcileErrorRatioCritical high for this controller.
Desired outcome
A spelling change to an owner name that resolves to the same qualified PowerDNS name is a no-op against PowerDNS — no delete is issued, and the record stays programmed throughout.
More generally, the cleanup path never deletes a qualified RRset name that an existing DNSRecordSet still owns under some other spelling. A genuinely removed owner name must still be cleaned up.
Related
What needs to happen
When a
DNSRecordSet's owner name changes to a different spelling of the same DNS name — for example from the absoluteapi.example.com.to the relativeapi— thednsrecordset-powerdnscontroller should end up with the record present in PowerDNS. Today it deletes it.Why this matters
The record disappears from PowerDNS while the
DNSRecordSetstill reportsProgrammed=True, so the hostname returns NXDOMAIN with nothing in the resource status to indicate a problem. The reconciler has no periodic requeue, so recovery waits on the next watch event — the informer resync is 10h by default.This is reachable in production right now. Gateway DNS moved to relative owner names shipped in network-services-operator v0.24.8, and
enableDNSIntegrationis on in staging and production, so every gateway-managed record undergoes exactly this rewrite once.It also re-opens the conflict in the gateway DNS dual-write issue: deleting a CNAME and recreating it against an A/AAAA still present at the same name is the 422 that pins
ControllerReconcileErrorRatioCriticalhigh for this controller.Desired outcome
A spelling change to an owner name that resolves to the same qualified PowerDNS name is a no-op against PowerDNS — no delete is issued, and the record stays programmed throughout.
More generally, the cleanup path never deletes a qualified RRset name that an existing
DNSRecordSetstill owns under some other spelling. A genuinely removed owner name must still be cleaned up.Related