Verify Secret Delivery Pipeline¶
Intent¶
- Purpose: Confirm that the secret-delivery path is healthy across both the on-prem and burst delivery surfaces.
- Trigger: Pre-demo validation, post-change validation, or routine confirmation before relying on cluster-delivered secrets.
- Impact: Verifies the GCP service-account authority layer, bootstrap
material, ClusterSecretStore readiness, and application-side
ExternalSecretsync. - Severity: P2
- Rollback: Verification only. If the path is unhealthy, stop dependent rollout and reconcile the relevant bootstrap, store, or application state first.
Preconditions¶
- The service-account authority and at least one cluster-side store have already been deployed.
- The on-prem RKE2 cluster and the GKE burst cluster are reachable.
- Do not print or persist secret payload material during verification.
Verify authority and on-prem bootstrap¶
hyops show module org/gcp/gsm-eso-sa --env dev
hyops show module platform/k8s/gsm-bootstrap --env dev
KUBECONFIG="$HOME/.hybridops/envs/dev/state/kubeconfigs/rke2.yaml" \
kubectl -n external-secrets get secret gsm-sa-credentials
Expected:
org/gcp/gsm-eso-saisstatus=ok- the ESO reader service account email is published
platform/k8s/gsm-bootstrapisstatus=okgsm-sa-credentialsexists inexternal-secrets
Verify on-prem store and sync¶
KUBECONFIG="$HOME/.hybridops/envs/dev/state/kubeconfigs/rke2.yaml" \
kubectl get clustersecretstore -A
KUBECONFIG="$HOME/.hybridops/envs/dev/state/kubeconfigs/rke2.yaml" \
kubectl get externalsecret -A
KUBECONFIG="$HOME/.hybridops/envs/dev/state/kubeconfigs/rke2.yaml" \
kubectl -n keycloak get externalsecret,secret
Expected:
gcp-secret-managerreportsREADY=True- representative
ExternalSecretresources reportSecretSyncedandREADY=True - the materialized application secret exists alongside its
ExternalSecret
Verify GKE burst store and sync¶
hyops show module platform/k8s/gcp-secret-store#gke_burst_secret_store --env dev
KUBECONFIG="$HOME/.hybridops/envs/dev/state/kubeconfigs/gke-burst.yaml" \
kubectl get clustersecretstore -A
KUBECONFIG="$HOME/.hybridops/envs/dev/state/kubeconfigs/gke-burst.yaml" \
kubectl get externalsecret -A
Expected:
- the burst secret-store module is
status=ok cap.k8s.gcp-secret-store: ready- the GKE
gcp-secret-managerstore reportsREADY=True - representative burst-lane
ExternalSecretresources reportSecretSyncedandREADY=True