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
Remove Crossview's Vault seed chain after its retirement #5391
Remove Crossview's Vault seed chain and its stored credentials once the explicit retirement of the Crossview leftovers has run.
Details
#5384 removes Crossview from the platform but keeps its Vault seed chain declared on purpose. That chain is the password generators, the generated ExternalSecrets and the PushSecrets for apps/crossview/{db,app,admin}, plus the vault-config grants for that path. If an evicted merge-group deploy heals back to main while Crossview's database volume still exists, regenerating those credentials would lock the restored app out of its own database. Removing them is therefore safe only after the Retire Unused App Leftovers workflow has deleted the crossview namespace and its storage.
Checklist
Confirm the Retire Unused App Leftovers run passed and the crossview namespace and its volume are gone.
Remove the nine Crossview seed manifests and their kustomization.yaml entries in k8s/bases/infrastructure/vault-seed/.
In vault-config, drop the Crossview read policy and its seed-write grants, delete the retired policy, and destroy the three Crossview KV entries with an idempotent step.
Remove the seed-chain exemption from scripts/retire-unused-apps.sh and its test, or retire that script and workflow if nothing else is left.
Verified in production after #5423 merged (6206299), read-only:
The merge-group deploy (run 40605659993) published platform manifest sha256:d218aa17…. All six Flux layers are Ready=True (ReconciliationSucceeded) at that artifact.
No ExternalSecret, PushSecret or Password generator named after Crossview remains. Each list was non-empty (47, 25 and 16 objects), so the zero is a real read rather than an empty answer.
The force-recreated openbao/vault-config Job ran from 00:14:57Z to 00:16:03Z and completed. It runs under set -e, so bao policy delete app-crossview-readonly and the three bao kv metadata delete calls for apps/crossview/{db,app,admin} all succeeded. A failure would have failed the Job, failed the infrastructure health check (wait: true) and healed back to main. ttlSecondsAfterFinished: 600 had already removed the Job and its log, so this proof rests on the completed status and the events, not on log lines.
Activity
fix(retirement): keep Crossview's Vault seed chain until after retire…
test(homepage): leave the declared-group fixture to #5383
fix(vault): fail the Job when a retired Crossview credential cannot b…
devantler commentedon Oct 28, 2026
Verified in production after #5423 merged (
6206299), read-only:sha256:d218aa17…. All six Flux layers areReady=True(ReconciliationSucceeded) at that artifact.ExternalSecret,PushSecretorPasswordgenerator named after Crossview remains. Each list was non-empty (47, 25 and 16 objects), so the zero is a real read rather than an empty answer.openbao/vault-configJob ran from 00:14:57Z to 00:16:03Z and completed. It runs underset -e, sobao policy delete app-crossview-readonlyand the threebao kv metadata deletecalls forapps/crossview/{db,app,admin}all succeeded. A failure would have failed the Job, failed theinfrastructurehealth check (wait: true) and healed back to main.ttlSecondsAfterFinished: 600had already removed the Job and its log, so this proof rests on the completed status and the events, not on log lines.🤖 Generated with Claude Code