Skip to main content

Helm Configuration

The em-runtime Helm chart packages all platform services and their dependencies into a single deployable unit. This guide covers the chart architecture, deployment modes, secret management, and production configuration.

Chart Overview

The chart deploys and manages the following components:

Deployment Modes

All dependencies (PostgreSQL, Redis) are deployed as part of the Helm release within the cluster.
Best for development, testing, and quick setup.

Secret Management

All platform credentials are consolidated into a single chart-managed Secret named em-runtime-secrets. In external mode, you provide base connection details, and the chart auto-computes derived values.

External Credentials Secret

Create this before installing the chart when using external databases:
Set redis-scheme to rediss (double s) for TLS connections (e.g., GCP Memorystore with in-transit encryption).

S3 Storage Credentials

Skip this step if using IRSA (AWS) or GCP Workload Identity.

External Object Storage

For production, use S3-compatible object storage instead of the default PVC:

Provider-Specific Notes

Enabling HTTPS

EM-Runtime uses Gateway API for routing. TLS termination is configured on the Gateway resource using cert-manager.
1

Install cert-manager

Install cert-manager with Gateway API support enabled (config.enableGatewayAPI=true).
2

Create ClusterIssuer

Create a ClusterIssuer for your ACME provider (e.g., Let’s Encrypt).
3

Annotate Gateway

Add cert-manager.io/cluster-issuer annotation and configure an HTTPS listener on your Gateway resource.

Service URL Environment Variables

Service-to-service communication uses canonical URL environment variables. These names were standardized as part of PE-200; legacy aliases are retained as temporary hotfixes for older application versions. Application versions still on the legacy names continue to work because both are set during the rollout. Once all consumer applications upgrade past the migration point, the legacy aliases will be removed. The Runtime UI surfaces compliance links (Terms of Service, Privacy Policy, DPA) and an embedded analytics script. Configure them via env vars on the em-runtime-ui deployment: These are configured via the em-runtime-ui.env block in values.yaml, the same way as service URLs above.

Environment Variable Override System

Each runtime service has three layers for environment variables:

Override Precedence

Example — override defaults across services:

Bootstrap Configuration

On first startup, the platform bootstraps a default organization:
The bootstrap is idempotent — it checks for existing resources before creating.
The organizationId must contain only alphanumeric characters, hyphens, or underscores.

Production Values File

Below is a sample production-values.yaml:

Install with Production Values

Testing

The chart includes a Helm test hook that runs end-to-end tests:
The test job creates a temporary organization, validates role-based access across all permission groups, and cleans up.

Backups

Back up these components together for a consistent restore:
If using Infisical, the em-runtime-secrets secret contains the ENCRYPTION_KEY and AUTH_SECRET. Without these, encrypted data stored by Infisical cannot be decrypted. If using ESO + GCP Secret Manager, secrets are sourced from GCP SM directly, back up the GCP Secret Manager secrets instead.

Next Steps

Values Reference

Complete reference for all Helm chart values.

Upgrades

Version upgrades, migration steps, and rollback procedures.

OpenTelemetry

Configure telemetry for all runtime services.