- Deployment model: On-premises
- Configuration reference: The
external-secrets.io/v1API. - Live validation: ESO
0.16.2on GKE, using an existing Workload Identity store and an isolated cloud marker Secret.
qodo-secrets store consumed by the shared Qodo
Secret examples. Qodo application Pods continue to read Kubernetes Secrets.
For more information, see Manage Qodo secrets with External Secrets Operator.
Before you begin
Complete the common ESO controller, webhook, CRD, namespace, and permission checks first. For more information, see Before you begin. Prepare:- A GKE cluster with Workload Identity enabled and the metadata server available to ESO.
- Secret Manager API enabled in the source project, with an enabled source Secret version.
- The project containing your source secrets, and the project, name, and location of the GKE cluster.
- A Google service account approved to read the required source secrets.
- ESO permission to request tokens for the referenced Kubernetes service account.
- Network access from ESO to Secret Manager and the identity services required by Workload Identity.
ExternalSecret’s secretStoreRef instead of creating another identity.
For more information, see Google Cloud Secret Manager authentication.
1. Prepare the source Secret and permissions
Using your approved secret-management process, createqodo-database in
Secret Manager. Its JSON value must contain POSTGRES_PASSWORD with the
existing database password. Keep the value out of Git, Helm values, shell
arguments, and chat.
Configure these IAM bindings through your cloud administration process:
Replace the cluster project ID in the IAM member. The cluster project and
secret project can differ; the store identifies them separately. Scope
source access to the required secrets. For more information, see Authenticate to Google Cloud APIs from GKE workloads.
2. Configure the service account and store
Replace everyREPLACE_WITH_* value. clusterLocation is the Region for a
regional cluster or the zone for a zonal cluster. The annotation must name
the Google service account configured in the IAM bindings above.
google-cloud-secret-store.yaml
ClusterSecretStore, its service account reference also needs the account’s
namespace. Keep the store’s approved name and access scope.
3. Reconcile and verify
Select the target context explicitly. These examples use namespaceqodo:
ExternalSecret. It reads the JSON property from
qodo-database and writes the fixed qodo-db-admin.POSTGRES_PASSWORD target.
For more information, see Manage Qodo secrets with External Secrets Operator.
Verify the ready condition, refresh timestamp, target name, and key names.
After adding a new source version, confirm the target updates before rolling
out the affected consumer. Check that the provider accepts the credential
and the relevant Qodo flow still works.
Live validation exercised cloud source-version refresh, JSON property
extraction, missing-property failure/recovery, and target retention through
an existing store. A newly configured service account still needs its own
identity and application acceptance checks.
Troubleshoot Google Cloud access
Next steps
- Manage Qodo secrets with External Secrets Operator: Apply the shared ownership, rotation, and recovery procedure.
- Google Cloud Secret Manager provider: Review other authentication patterns and cross-project access.