Helm Install
Cordum ships with a Helm chart under cordum-helm/.
Prerequisites
- Kubernetes cluster
- Helm 3
- kubectl
Install (local chart)
helm install cordum ./cordum-helm -n cordum --create-namespace
Install (published chart)
helm repo add cordum https://charts.cordum.io
helm repo update
helm install cordum cordum/cordum -n cordum --create-namespace
Note: the chart defaults to the image tags in values.yaml (currently v0.9.7)
and pulls from GHCR. If those tags are not published in your registry, override
global.image.tag and dashboard.image.tag (or point to your own registry).
Local dev (kind + local images)
The chart expects images like ghcr.io/cordum-io/cordum/api-gateway:<tag>.
If you are installing from a local clone without published images, build and
load images into your cluster and override tags:
docker compose build
for svc in api-gateway scheduler safety-kernel workflow-engine context-engine dashboard; do
docker tag "cordum-cordum-${svc}:latest" "ghcr.io/cordum-io/cordum/${svc}:dev"
done
kind load docker-image --name cordum \
ghcr.io/cordum-io/cordum/api-gateway:dev \
ghcr.io/cordum-io/cordum/scheduler:dev \
ghcr.io/cordum-io/cordum/safety-kernel:dev \
ghcr.io/cordum-io/cordum/workflow-engine:dev \
ghcr.io/cordum-io/cordum/context-engine:dev \
ghcr.io/cordum-io/cordum/dashboard:dev
helm upgrade --install cordum ./cordum-helm -n cordum --create-namespace \
--set global.image.tag=dev \
--set dashboard.image.tag=dev
For non-kind clusters, push to a registry you control and set
global.image.repository, global.image.tag, and dashboard.image.*
accordingly (plus imagePullSecrets if needed).
Access (port-forward)
The chart exposes services as ClusterIP by default. For local access:
kubectl -n cordum port-forward svc/cordum-api-gateway 8081:8081
kubectl -n cordum port-forward svc/cordum-dashboard 8082:8080
Dashboard: http://localhost:8082
HTTP requests must include X-API-Key and X-Tenant-ID (use gateway.env.tenantId as the default tenant).
The API key is required. Set it with:
helm upgrade --install cordum ./cordum-helm \
-n cordum --create-namespace \
--set secrets.apiKey=<your-api-key> \
--set gateway.env.tenantId=default \
--set dashboard.env.tenantId=default
To embed the API key in the dashboard config (not recommended for shared environments):
helm upgrade --install cordum ./cordum-helm \
-n cordum --create-namespace \
--set secrets.apiKey=<your-api-key> \
--set dashboard.env.embedApiKey=true \
--set dashboard.env.tenantId=default
Common overrides
helm install cordum ./cordum-helm \
-n cordum --create-namespace \
--set global.image.tag=v0.9.7 \
--set secrets.apiKey=<your-api-key> \
--set gateway.env.tenantId=default \
--set dashboard.env.tenantId=default
Use external Redis/NATS:
helm install cordum ./cordum-helm \
-n cordum --create-namespace \
--set nats.enabled=false \
--set redis.enabled=false \
--set external.natsUrl=nats://nats.example.com:4222 \
--set external.redisUrl=redis://redis.example.com:6379
Use an external safety kernel:
helm install cordum ./cordum-helm \
-n cordum --create-namespace \
--set safetyKernel.enabled=false \
--set external.safetyKernelAddr=safety-kernel.example.com:50051
Tune JetStream durability (fsync cadence):
helm install cordum ./cordum-helm \
-n cordum --create-namespace \
--set nats.jetstream.syncInterval=1s