Skip to main content
The Helm chart targets Kubernetes 1.26+ and Helm 3.12+. It installs the proxy, API, safety worker, and web dashboard as separate Deployments, with optional sub-charts for PostgreSQL (via Bitnami) and Redis.

Prerequisites

The proxy listens on port 8080, the API on 8000, and the web dashboard on 3000. Your ingress controller must be able to route to all three if you expose them externally.

Add the Helm Repository

Inspect available chart versions:

Inspect Default Values

Key sections explained:

Full values.yaml Example

Create the K8s Secret Before Installing

Install

Quick-start with --set overrides (non-production):

Helm Hooks: Database Migration

The chart ships a pre-install / pre-upgrade Job that runs alembic upgrade head before any Deployment rollout. It uses the same API image and the same POSTGRES_URL secret.
If the migration job fails, Helm will abort the install/upgrade and roll back automatically.

Upgrade

To upgrade only the image tag without changing values:

Uninstall and PVC Cleanup

Helm does not delete PersistentVolumeClaims by default (to protect data). Delete them explicitly after confirming the database is no longer needed:
Deleting PVCs is irreversible. Take a final database snapshot before running this command in production.

Multi-Namespace / Multi-Tenant Pattern

Each tenant gets their own Helm release in an isolated namespace. A shared PostgreSQL cluster is recommended; use a separate database per tenant rather than separate clusters.
Use Kubernetes NetworkPolicy to prevent cross-namespace traffic:

Air-Gapped / Private Registry Deployment

Mirror the three images to your internal registry, then override the image references:
For fully air-gapped clusters, package the chart as a tarball and carry it in: helm package cognisafe/cognisafe && helm install cognisafe ./cognisafe-1.4.2.tgz --namespace cognisafe --values values.yaml