Using Kubernetes Secrets
To securely store sensitive configuration like passwords, tokens, and admin secrets, we recommend using Kubernetes Secrets.
By default, the RepoFlow Helm chart uses values defined in values.yaml
, but you can optionally override specific environment variables using Secrets by configuring the secretEnv
field.
Example: Server Secrets
server:
secretEnv:
HASURA_ADMIN_SECRET:
secretName: repoflow-server-secret
key: hasuraAdminSecret
To securely inject sensitive values, create the Kubernetes secret manually before installing the chart:
kubectl create secret generic repoflow-server-secret \
--from-literal=hasuraAdminSecret=supersecretvalue
Environment Variable Precedence
- If a key exists in both
environment
andsecretEnv
, the value fromsecretEnv
is used. - If a key exists only in
environment
, the inline value is used. - Secrets are resolved using
valueFrom.secretKeyRef
at runtime, never hardcoded in the Helm release.
PostgreSQL Setup
If you're using an external PostgreSQL database (which is recommended for production), store the connection string in a Kubernetes Secret and reference it in your values:
kubectl create secret generic repoflow-postgres-secret \
--from-literal=databaseUrl=postgres://user:password@your-db-host:5432/db-name
Then reference it in your Helm values:
hasura:
secretEnv:
HASURA_GRAPHQL_DATABASE_URL:
secretName: repoflow-postgres-secret
key: databaseUrl
HASURA_GRAPHQL_METADATA_DATABASE_URL:
secretName: repoflow-postgres-secret
key: databaseUrl