fix: bind DNS provider state to RecordSet incarnations - #8
Merged
reoring merged 1 commit intoSep 10, 2026
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Scope
Source-only correction and review handoff. No merge, release, publication, live adoption, DNS write, ownership/status/finalizer repair, or WLC intervention is requested or performed by this work. The previously authorized dns-api 0.2.7 → 0.2.9 Helm upgrade completed separately.
Problem
Deterministic controller reproductions expose stale whole-array provider-state loss, false deletion completion borrowed from a prior
Programmed=True, and same-name RecordSet recreation consuming predecessor completion/provider ownership. These are source-level defects, not proof of the exact historical mutation that caused the live DNS incident.Changes
Verification
go vetpassed.cb8b8ddc2e93938b92734d1306eaa2673c8738d5and passed on the candidate. The original-source harness retained current API/test fixtures; Cloudflare required only a test decoder adapter for its old private helper signature and omission of the new test-context field.git diff --checkpassed.Migration / operational boundary
This is not a transparent in-place adoption of legacy UID-less receipts. Existing external records without current UID-bound authority remain conflicts. Updated CRDs must precede the corresponding controllers; Helm does not upgrade existing CRDs from a chart's
crds/directory. Qualify that coordinated rollout and any explicit per-claim adoption separately. Do not manufacture authority by patching UID/status/finalizers or enabling zone-wide adoption as a fallback. This source change does not itself restore already-lost live provider ownership or complete the separately owned WLC/HA acceptance.