Skip to content

fix(gateway): retain admitted DNS intent through observation gaps - #9

Merged
reoring merged 1 commit into
mainfrom
work/20260910/payment-dns-fix-20260910
Sep 10, 2026
Merged

fix(gateway): retain admitted DNS intent through observation gaps#9
reoring merged 1 commit into
mainfrom
work/20260910/payment-dns-fix-20260910

Conversation

@reoring

@reoring reoring commented Sep 10, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Preserve only previously admitted DNS bindings through missing/Unknown route observations or temporary Gateway address loss.
  • Store exact route UID/generation, Gateway UID/class, parent/listener identity and listener digest in the managed EndpointRecordSet admission receipt. Do not grant new hostnames or binding receipts without current acceptance and addresses.
  • Current explicit route/Gateway rejection, removed topology, and identity replacement revoke the affected claims. Historical receipt discovery keeps old-Gateway cleanup reachable after parent removal or route disappearance.
  • Keep repeated no-address reconciliation stable without allowing another route sharing a hostname to inherit admission. Dynamic namespace-selector retention remains fail-closed, without new RBAC.
  • Keep endpoint/provider ownership and finalization unchanged; update the existing design contract.

Verification

Development-only with real Gateway/EndpointRecordSet reconcilers and fake Kubernetes storage:

  • Original cb8b8dd source fails the Payment/HA shared-DNS retention regression; fixed source passes.
  • Gateway and endpoint controller packages pass, including explicit rejection, identity changes, detached-parent cleanup, same-hostname admission isolation, repeated address loss, and recovery.
  • Focused go vet and golangci-lint pass; gofmt and git diff --check pass.
  • Focused independent security review completed; all reported blockers resolved.
  • No live Route 53/Cloudflare calls, cluster mutation, release tags, artifact publication, or provider certification.

Required adoption order

Depends on the Platform status-producer correction in https://github.com/appthrust/platform/pull/3632. Adopt that Platform producer first, then this DNS consumer, so explicit rejection is not mistaken for an observation gap. Opening this PR does not request merge or live deployment. Historical exact outage inputs remain unproven.

@reoring
reoring merged commit 1ba0d39 into main Sep 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant