Kubernetes
Fluidify Regen ships with a production-ready Helm chart.
Prerequisites
- Kubernetes 1.24+
- Helm 3.x
- A PostgreSQL instance (RDS, Cloud SQL, or self-hosted)
- A Redis instance (ElastiCache, MemoryStore, or self-hosted)
Install
helm install fluidify-regen ./deploy/helm/fluidify-regen \
--namespace fluidify --create-namespace \
--set ingress.host=incidents.yourcompany.com \
--set secrets.databaseUrl="postgresql://regen:pass@your-db:5432/regen" \
--set secrets.redisUrl="redis://your-redis:6379"
Configuration
All configuration is in deploy/helm/fluidify-regen/values.yaml. Key sections:
Image
image:
repository: ghcr.io/fluidifyai/regen
tag: "0.10.0"
pullPolicy: IfNotPresent
Ingress
ingress:
enabled: true
host: incidents.yourcompany.com
tls: true
annotations:
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod
Resources
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
Autoscaling
autoscaling:
enabled: true
minReplicas: 2
maxReplicas: 10
targetCPUUtilizationPercentage: 70
Secrets
Pass secrets via Helm values (not recommended for production) or reference an existing Kubernetes Secret:
existingSecret: fluidify-regen-secrets
Create the secret manually:
kubectl create secret generic fluidify-regen-secrets \
--namespace fluidify \
--from-literal=DATABASE_URL="postgresql://..." \
--from-literal=REDIS_URL="redis://..." \
--from-literal=SLACK_BOT_TOKEN="xoxb-..." \
--from-literal=SLACK_SIGNING_SECRET="..." \
--from-literal=SLACK_APP_TOKEN="xapp-..."
Migrations
Migrations run as a Kubernetes Job before the Deployment starts. The Deployment has an initContainer that waits for the Job to complete.
To run migrations manually:
kubectl run regen-migrate \
--image=ghcr.io/fluidifyai/regen:0.10.0 \
--restart=Never \
--env="DATABASE_URL=..." \
-- /app/regen migrate
High availability
For HA, run at least 2 replicas. The application is stateless — all state is in PostgreSQL and Redis.
replicaCount: 2
For PostgreSQL HA, see the Operations Guide.
Helm chart reference
# Lint
make helm-lint
# Dry-run render
make helm-template
# Run all checks
make helm-test