Skip to main content

Kubernetes & Helm

A Helm chart lives at infra/helm/entityflow. It deploys the single EntityFlow server image against a control PostgreSQL plus a diagram plane, with optional Redis fan-out for multi-node deployments.

Migrations​

A pre-install/upgrade hook runs database migrations exactly once per release, before the application pods start. You don't need to run migrations by hand.

Validate the chart offline​

Before installing, you can render and validate the chart without a cluster:

node infra/helm/validate.mjs

Single-node install​

helm install entityflow infra/helm/entityflow \
--set controlDb.url="postgres://user:pass@pg:5432/ef_control" \
--set diagramDb.url="postgres://user:pass@pg:5432/entityflow" \
--set auth.secret="$(openssl rand -base64 48)"

Multi-node install​

To run multiple replicas you must enable Redis so awareness and document updates fan out across pods:

helm install entityflow infra/helm/entityflow \
--set controlDb.url="postgres://user:pass@pg:5432/ef_control" \
--set diagramDb.url="postgres://user:pass@pg:5432/entityflow" \
--set auth.secret="$(openssl rand -base64 48)" \
--set replicaCount=3 \
--set redis.enabled=true \
--set redis.url="redis://redis:6379"
warning

replicaCount > 1 requires redis.enabled=true. Without shared awareness, pods diverge — editors connected to different replicas would see inconsistent presence and updates. The chart enforces this: it fails to render if you set more than one replica without Redis. See Scaling & performance.

Configuration​

All chart values map to the same environment variables documented in the Configuration reference. Use --set for individual values or supply a values.yaml for repeatable deployments.