Installation Manual - 59 Vault R1 ESO smoke migration

Migration of the hub-dc-v7 and spoke-dc-v7 ESO smoke ExternalSecrets to replacement Vault R1.

This chapter records the first non-OADP consumer migration to replacement Vault R1. The scope was intentionally narrow: only the eso-smoke ExternalSecret on each v7 cluster moved from the old vault-platform store to a dedicated R1 store.

Governance

FieldValue
IssueOP-GF-VAULTRECOVERY-1 / #389
MilestoneWorkspace Governance
ADRADR 0028: Greenfield Vault Replacement After Custody Loss
Existing controlsADR 0016 and ADR 0025

Preflight

Read-only checks used the required path:

local coordinator -> dl385-2 -> gf-ocp-bootstrap-01 -> v7 kubeconfigs
ClusterOpenShiftClusterOperatorsNodesExisting ESO smokeOADP
hub-dc-v74.20.18steady3/3 ReadyReadyDPA Reconciled, BSL Available, Velero 1/1
spoke-dc-v74.20.18steady6/6 ReadyReadyDPA Reconciled, BSL Available, Velero 1/1

The existing stores were Ready before the change:

Clustervault-platformvault-r1-oadp
hub-dc-v7ReadyReady
spoke-dc-v7ReadyReady

GitOps Change

GitOps commit:

43ee49a Move ESO smoke to Vault R1

The commit added:

ClusterNew store
hub-dc-v7ClusterSecretStore/vault-r1-eso-smoke
spoke-dc-v7ClusterSecretStore/vault-r1-eso-smoke

The new store uses:

FieldValue
Vault serverhttps://30.30.200.35:8200
Vault roleeso-secrets
ServiceAccountexternal-secrets-operator-controller-manager
ServiceAccount namespaceexternal-secrets-operator

Then only ExternalSecret/eso-smoke was changed to reference vault-r1-eso-smoke.

Validation

Both overlays rendered locally with kubectl kustomize, and server-side dry-run accepted both overlays. The dry-run showed that ClusterSecretStore/vault-r1-eso-smoke would be created on each cluster.

The bootstrap GitOps clone was fast-forwarded to 43ee49a, and Argo CD was hard-refreshed.

Argo applicationSyncHealthRevision
hub-dc-v7-bootstrapSyncedHealthy43ee49a
hub-side spoke-dc-v7-cluster-configSyncedHealthy43ee49a
spoke-local spoke-dc-v7-cluster-configSyncedHealthy43ee49a

Post-change ESO validation:

ClusterStoreExternalSecretRefresh timeSecret keys
hub-dc-v7vault-r1-eso-smoke ReadyReady / SecretSynced2026-05-17T23:09:36Zhello
spoke-dc-v7vault-r1-eso-smoke ReadyReady / SecretSynced2026-05-17T23:09:36Zhello

Secret values were not printed.

Unaffected Consumers

The existing old-Vault store remains in place because RHACS still uses it.

ConsumerStoreResult
OADP cloud credentialsvault-r1-oadpReady
Hub RHACS ExternalSecretsvault-platformReady
Spoke RHACS ExternalSecretsvault-platformReady
Spoke logging bridgelogging-localReady

Final State

ClusterOpenShiftClusterOperatorsNodesOADP
hub-dc-v74.20.18steady3/3 ReadyDPA Reconciled, BSL Available, Velero 1/1
spoke-dc-v74.20.18steady6/6 ReadyDPA Reconciled, BSL Available, Velero 1/1

Actions Not Taken

  • No old Vault mutation was made.
  • No stable Vault DNS cutover was made.
  • No RHACS ExternalSecret was moved.
  • No secret values were printed.

Next Action

Run a dedicated RHACS replacement Vault migration or rotation gate before any stable Vault DNS promotion.