fix(e2e): mark the Domain verified before asserting a zone provisions - #104
Merged
Conversation
Five chainsaw suites have been red on main since #100, which added a gate refusing to provision DNS until the requester has proven they own the domain. That gate is correct — without it any syntactically valid domain name gets a live PowerDNS zone, letting a tenant serve traffic for a domain someone else controls — but the tests were never taught the new precondition, so they sat waiting for a verification that nothing in a kind cluster can perform. Each affected test now marks its Domain verified between creating the DNSZone and asserting it provisions. The replicator creates the Domain itself and watches it, so patching the Verified condition re-enqueues the zone and the rest of the test proceeds unchanged. This asserts the precondition rather than working around the gate: the tests reach the same state a real tenant reaches after completing ownership verification, and a regression in the gate would still fail them, because a zone that provisioned before the patch step would break the ordering the steps encode. Fixes activity-display, alias, display-annotations, full-chain and zones-and-records. Federation is deliberately untouched: it creates its DNSZone on the control cluster, which runs the agent rather than the replicator and therefore has neither the domain gate nor the networking CRDs installed. It passes on main and still passes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
scotwells
force-pushed
the
fix/e2e-domain-verification
branch
from
August 23, 2026 15:34
dde4493 to
f716b2b
Compare
scotwells
marked this pull request as ready for review
August 23, 2026 16:18
kevwilliams
approved these changes
Aug 23, 2026
Contributor
|
Sorry I broke this :| I think I saw the test fail and meant to go fix it but I forgot. |
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.
Five chainsaw suites have been red on
mainsince #100. Last green run repo-wide was 2026-08-14.What broke
#100 added a gate that refuses to provision DNS until the requester has proven they own the domain:
That gate is right. But the tests were never taught the new precondition, so five suites sit waiting for a verification that nothing in a kind cluster can perform, and the operator logs
domain not yet verified; deferring DNS provisioninguntil they time out.The fix
Each affected test now marks its
Domainverified between creating theDNSZoneand asserting it provisions:The operator creates the
Domainitself and watches it, mapping changes back to the zone in the same namespace with a matchingspec.domainName— so patching theVerifiedcondition re-enqueues the zone and the rest of each test proceeds unchanged.This asserts the precondition rather than working around the gate. The tests now reach the same state a real tenant reaches after completing ownership verification, and a regression in the gate would still fail them: a zone that provisioned before the patch step would break the ordering the steps encode.
Affected suites
activity-display·alias·display-annotations·full-chain·zones-and-recordsfederationis deliberately untouched. It creates itsDNSZoneon the control cluster, which runs the agent rather than the replicator — so it has neither the domain gate nor the networking CRDs installed. It passes onmainand still passes.Verification
All six pass
chainsaw lint. The suites themselves need a kind cluster, so CI on this PR is the real check — this fix is the only change on the branch, so a green E2E here is unambiguous evidence.🤖 Generated with Claude Code