- Deployment model: On-premises
- Configuration reference: The
external-secrets.io/v1API. - Validation scope: Manifest/schema checks; Azure identity execution requires validation in your environment.
qodo-secrets store consumed by the shared Qodo
Secret examples. Qodo application Pods do not need Azure permissions for this
integration. 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 an AKS cluster configured for OIDC federation and Microsoft Entra Workload ID, an approved Azure identity, its client and tenant IDs, your Key Vault URL, and network access from ESO to the vault and token endpoints. ESO must be able to request a token for the referenced Kubernetes service account. For more information, see Use Microsoft Entra Workload ID with AKS. Before creating the store, ensure the referenced identity has a matching federated credential and Key Vault data-plane Secret read permission, and the source Secret version is enabled. Verify vault firewall/private endpoint access from ESO. The required subject, audience, and role are listed below. This example uses a referenced service account so the store selects the identity. It does not require annotating Qodo application Pods or supplying a long-lived Azure client secret.1. Prepare the vault Secret and permissions
Using your approved secret-management process, create Key Vault Secretqodo-database. Its value must be JSON containing POSTGRES_PASSWORD with
the existing database password. Keep actual values out of Git, Helm values,
shell arguments, and chat.
Configure the identity through your Azure administration process:
For a vault using legacy access policies, grant the required Secret
Get
permission instead. These examples read secrets; they do not require
permission to write or delete vault contents. For more information, see Azure Key Vault authentication.
2. Configure the service account and store
Replace the client ID, tenant ID, and vault name before applying. These are identity and resource identifiers, not credential values.azure-secret-store.yaml
ClusterSecretStore, retain its name and scope and ensure its service
account reference identifies the correct namespace. For more information,
see Referenced service account.
3. Reconcile and verify
Select the target context explicitly. These examples use namespaceqodo:
ExternalSecret. For ordinary Key Vault secrets,
remoteRef.key: qodo-database selects the Secret; secret/qodo-database is
also an explicit Secret-type reference. Its property: POSTGRES_PASSWORD
extracts the JSON property and writes the fixed Kubernetes target. For more
information, see Manage Qodo secrets with External Secrets Operator.
Verify the ExternalSecret’s ready condition, refresh timestamp, target name,
and key names. After source rotation, confirm the target updates before
rolling out its consumer, then check that the relevant Qodo flow works.
A schema or dry-run success does not establish that Azure accepts the
federated identity or permits vault access.
Troubleshoot Azure access
Next steps
- Manage Qodo secrets with External Secrets Operator: Apply the shared ownership, rotation, and recovery procedure.
- Azure Key Vault provider: Review other authentication patterns and object types.