To deploy a new RedisEnterpriseDatabase:
- Create a new overlay directory under
charts/redis-database/overlays/<name>and add avalues.yamlfile. Set the secret reference usingdatabaseSecretName: <name>-secret. - Update
argocd/redis-db-appset.yamlby adding a new element undergenerators.list.elementswith the databasenameand path to the overlay'svalues.yaml. - Apply the modified ApplicationSet manifest to Argo CD.
The referenced secret must exist. Use the redis-secret-appset to create it per database.
Secrets are also managed through an ApplicationSet. Each secret is templated as
an ExternalSecret that pulls the credentials from Vault. To add credentials
for a new database:
- Edit
argocd/redis-secret-appset.yamland append the database name undergenerators.list.elements. - Apply the updated ApplicationSet manifest to Argo CD.
The ApplicationSet will create one secret per database named <db>-secret
which references the Vault path configured in the chart values.
Deploy HashiCorp Vault using the provided Argo CD Application:
kubectl apply -f argocd/vault-app.yamlThis installs the official Helm chart into the vault namespace in development
mode with TLS disabled.
Create a ClusterSecretStore named vault so the charts can read secrets from
Vault:
kubectl apply -f argocd/vault-secret-store.yamlCreate the Vault token secret that the ClusterSecretStore references:
kubectl -n redis create secret generic vault-token --from-literal=token=<VAULT_TOKEN>Deploy the External Secrets Operator so ExternalSecret resources are reconciled:
kubectl apply -f argocd/external-secrets-operator.yamlStore the Redis credentials under secret/data/redis-creds in Vault with keys
username and password. The redis-secret-appset creates an ExternalSecret
for each database that reads these values via a ClusterSecretStore named
vault.
Example Vault policy:
path "secret/data/redis-creds" {
capabilities = ["read"]
}Grant this policy to the service account used by the External Secrets Operator
in the redis namespace. To add a new database secret, update
argocd/redis-secret-appset.yaml as described above and apply the manifest.