Skip to main content
Version: 8.2

Installing in an air-gapped environment

The Camunda Helm chart may assist in an air-gapped environment. By default, the Docker images are fetched via Docker Hub (except for Web Modeler). With the dependencies in third-party Docker images and Helm charts, additional steps are required to make all charts available as outlined in this resource.

Required Docker images

The following images must be available in your air-gapped environment:

Accessing Camunda images from Camunda Docker Registry

Please note that all the required Docker images, available on DockerHub's Camunda and Bitnami organizations, are also provided publicly via Camunda's Docker registry: registry.camunda.cloud/camunda/<image> and registry.camunda.cloud/bitnami/<image>

For example, the Docker image of Zeebe and PostgreSQL can be pulled via DockerHub or via the Camunda's Docker Registry:

docker pull camunda/zeebe:latest
docker pull registry.camunda.cloud/camunda/zeebe:latest

docker pull bitnami/keycloak:latest
docker pull registry.camunda.cloud/bitnami/keycloak:latest

Required Helm charts

The following charts must be available in your air-gapped environment:

Dependencies explained

Identity utilizes Keycloak and allows you to manage users, roles, and permissions for Camunda 8 components. This third-party dependency is reflected in the Helm chart as follows:

camunda-platform
|_ elasticsearch
|_ identity
|_ keycloak
|_ postgresql
|_ zeebe
|_ optimize
|_ operate
|_ tasklist
|_ connectors
|_ postgresql
  • Keycloak is a dependency for Camunda Identity and PostgreSQL is a dependency for Keycloak.
  • PostgreSQL is a dependency for Web Modeler.
    • This dependency is optional as you can either install PostgreSQL with Helm or use an existing external database.
  • Elasticsearch is a dependency for Zeebe, Operate, Tasklist, and Optimize.
  • Connectors can be stand-alone; however if there's an intention to use inbound capabilities, Operate becomes a dependency.

The values for the dependencies Keycloak and PostgreSQL can be set in the same hierarchy:

identity:
[identity values]
keycloak:
[keycloak values]
postgresql:
[postgresql values]
postgresql:
[postgresql values]

Push Docker images to your repository

All the required Docker images need to be pushed to your repository using the following steps:

  1. Tag your image using the following command (replace <IMAGE ID>, <DOCKER REPOSITORY>, and <DOCKER TAG> with the corresponding values.)
docker tag <IMAGE_ID> example.jfrog.io/camunda/<DOCKER_IMAGE>:<DOCKER_TAG>
  1. Push your image using the following command:
docker push example.jfrog.io/camunda/<DOCKER_IMAGE>:<DOCKER_TAG>

Deploy Helm charts to your repository

You must deploy the required Helm charts to your repository. For details about hosting options, visit the chart repository guide.

Add your Helm repositories

You must add your Helm chart repositories to use the charts:

helm repo add camunda https://example.jfrog.io/artifactory/api/helm/camunda-platform
helm repo add elastic https://example.jfrog.io/artifactory/api/helm/elastic
helm repo add bitnami https://example.jfrog.io/artifactory/api/helm/bitnami
helm repo update

Helm chart values

In a custom values file, it is possible to override the image repository and the image tag.

zeebe:
image:
repository: example.jfrog.io/camunda/zeebe
# e.g. work with the latest versions in development
tag: latest
zeebe-gateway:
image:
repository: example.jfrog.io/camunda/zeebe
tag: latest
elasticsearch:
image: example.jfrog.io/elastic/elasticsearch
imageTag: 7.16.3
identity:
image:
repository: example.jfrog.io/camunda/identity
...
keycloak:
image:
repository: example.jfrog.io/bitnami/keycloak
...
postgresql:
image:
repository: example.jfrog.io/bitnami/postgres
...
operate:
image:
repository: example.jfrog.io/camunda/operate
...
tasklist:
image:
repository: example.jfrog.io/camunda/tasklist
...
optimize:
image:
repository: example.jfrog.io/camunda/optimize
...
connectors:
image:
repository: example.jfrog.io/camunda/connectors-bundle
...
webModeler:
image:
# registry and tag will be used for all three Web Modeler images
registry: example.jfrog.io
tag: latest
restapi:
image:
repository: camunda/modeler-restapi
webapp:
image:
repository: camunda/modeler-webapp
websockets:
image:
repository: camunda/modeler-websockets
...
# only necessary if the PostgreSQL chart dependency is used for Web Modeler
postgresql:
image:
repository: example.jfrog.io/bitnami/postgres

Afterwards, you can deploy Camunda using Helm and the custom values file.

helm install my-camunda-platform camunda/camunda-platform -f values.yaml