Skip to content

Remove Crossview's Vault seed chain after its retirement #5391

Description

@devantler

Objective

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.
  • Rename the crossview/infrastructure-as-code-group Homepage policy fixture (tests/restrict-homepage-service-groups), deferred from fix(platform): retire the unused Crossview, Headlamp and Backstage remains #5384 to avoid a merge-queue conflict with feat(homepage): reorganise the dashboard groups #5383.
  • After deployment, confirm the vault-config Job succeeded and the policy and KV entries are gone, without printing any secret value.

Part of #2496

🤖 Generated with Claude Code

Activity

  1. added theissue type on Oct 26, 2026
  2. moved this to 📥 Backlog in 🌊 Project Boardon Oct 26, 2026
  3. moved this from 📥 Backlog to 🏃🏻‍♂️ In Progress in 🌊 Project Boardon Oct 27, 2026
  4. moved this from 🏃🏻‍♂️ In Progress to ✅ Done in 🌊 Project Boardon Oct 28, 2026
  5. devantler commented on Oct 28, 2026

    @devantler
    ContributorAuthor

    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.

    🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Fields

    Priority

    None yet

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions