You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Recognize controller-completed stateless retirement after fencing #5039
The protected stateless-retirement workflow can install its exact operation journal and fence, then race with the already-authorized Flux and Helm controllers. If those controllers begin the assessed uninstall while the workflow is still running its admission probes, a disappearing target makes the workflow report HOLD_ADMISSION even though the guarded retirement is already progressing.
That false failure obscures the real lifecycle state and makes a replay look tempting even though the original operation is consumed.
Outcome
Recognize this one-way, controller-owned transition and move into postcondition-only verification when the exact fenced targets begin disappearing after the accepted journal is installed. Never resubmit a deletion, clear the journal, or weaken retained-data checks.
Acceptance criteria
Reproduce a target disappearing during admission verification.
Do not submit the native HelmRelease deletion after controller-owned retirement begins.
Report success only after the stored Helm release is uninstalled, every assessed stateless target is absent, and separated retained-data projections remain unchanged.
Keep partial disappearance, retained-data drift, source drift, foreign identities, and ambiguous transport as holds.
Preserve first-attempt and exact-source/deployment bindings.
Resolved by the terminal retirement delivery rather than by merging #5041.
The original retirement attempt is consumed and cannot be replayed. #5044 and #5070 delivered the separate protected completion path; run 39161262289 removed the exact journal and reported two preservation samples with Flux Ready. A separated OIDC production readback confirmed no Backstage stateless objects remain, the retained database is healthy at 2/2 with continuous archiving, both claims remain Bound, and the full platform health gate is OK.
Because the controller-transition branch now changes a dead one-time path, #5041 is closed unmerged instead of carrying unnecessary operational code.
Activity
chore: agent-claim #5039 nonce=c66a715a0f327d484dbd9d5f9ef73f96
devantler commentedon Oct 19, 2026
Resolved by the terminal retirement delivery rather than by merging #5041.
The original retirement attempt is consumed and cannot be replayed. #5044 and #5070 delivered the separate protected completion path; run 39161262289 removed the exact journal and reported two preservation samples with Flux Ready. A separated OIDC production readback confirmed no Backstage stateless objects remain, the retained database is healthy at 2/2 with continuous archiving, both claims remain Bound, and the full platform health gate is OK.
Because the controller-transition branch now changes a dead one-time path, #5041 is closed unmerged instead of carrying unnecessary operational code.