Deploying EscapeCloud Platform via Helm is intended to be simple. This folder contains the chart metadata, chart templates, a sample values file, and this README.
Project structure:
.
├── Chart.yaml
├── values.sample.yaml
├── templates/
└── README.md
The Helm chart deploys the main Escape components:
escape_webappescape_schedulerescape_apiescape_engine_stage1toescape_engine_stage9escape-engine-initescape-masterdata-init
The chart expects external infrastructure for:
- PostgreSQL
- RabbitMQ
If you are using customer-managed infrastructure for PostgreSQL or RabbitMQ, provide the connection details in your values.yaml.
The Helm chart is responsible for:
- Deploying application workloads
- Creating internal Kubernetes
Serviceresources - Running one-time bootstrap jobs
- Running scheduled CronJobs
The customer or platform team is responsible for:
- Kubernetes cluster lifecycle
- PostgreSQL
- RabbitMQ
- Registry access credentials
- DNS
- Gateway / Ingress
- TLS certificates and renewal
Before deployment, make sure you have:
- Kubernetes cluster access
- Helm installed
- Access to
registry.onstackit.cloud - External PostgreSQL ready
- External RabbitMQ ready
- A Kubernetes namespace for the deployment
If you plan to expose the application publicly, you also need:
- DNS pointing your hostname to your Gateway / Ingress
- Gateway / Ingress configured separately
- TLS configured separately if required
Copy values.sample.yaml to your own values.yaml:
cp values.sample.yaml values.yamlThen fill in the required values.
Important values:
global.hostNamePublic hostname, for exampledomain.tldglobal.imagePullSecretsImage pull secret forregistry.onstackit.cloudescapeWeb.image.repositoryWeb image repositoryescapeWeb.image.tagWeb image tag to deployescapeWeb.env.WEB_DB_*Web database connection settingsescapeWeb.secretEnv.*Web application secretsescapeEngine.image.repositoryEngine image repositoryescapeEngine.image.tagEngine image tag to deployescapeEngine.env.ENGINE_DB_*Engine database connection settingsescapeEngine.env.RABBITMQ_*RabbitMQ connection settingsescapeEngine.secretEnv.*Engine application secrets
Create the namespace if needed:
kubectl create namespace escapeInstall or upgrade the chart:
helm upgrade --install escape . -n escape -f values.yamlIf you want Helm to create the namespace automatically:
helm upgrade --install escape . -n escape --create-namespace -f values.yamlCheck that workloads are created:
kubectl get all -n escape
kubectl get jobs,cronjobs -n escapeImportant checks:
escape-engine-initcompleted successfullyescape-masterdata-initcompleted successfullyescape-webappis readyescape-apiis readyescape_engine_stage1toescape_engine_stage9are running
Useful commands:
kubectl logs job/escape-engine-init -n escape
kubectl logs job/escape-masterdata-init -n escape
kubectl logs deploy/escape-webapp -n escape
kubectl logs deploy/escape-api -n escapeThe chart creates only internal Kubernetes Service resources.
External exposure is handled separately through your Gateway or Ingress layer.
Update the image tags in values.yaml, then run:
helm upgrade --install escape . -n escape -f values.yamlFor example:
- update
escapeWeb.image.tagfor a web-only release - update
escapeEngine.image.tagfor an engine-only release - update both for a coordinated release
If image pulls fail:
- verify
imagePullSecrets - verify registry credentials
If bootstrap jobs fail:
- inspect
escape-engine-initlogs - inspect
escape-masterdata-initlogs - verify PostgreSQL and RabbitMQ connectivity
If web or API pods are not ready:
- inspect deployment logs
- verify database connectivity
- verify required secrets are present