Skip to main content
Version: 8.5

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.

To find out the necessary Docker images for your Helm release, note that the required images depend on the values you specify for your deployment. You can get an overview of all required images by running the following command:

helm repo add camunda https://helm.camunda.io
helm repo update
helm template camunda/camunda-platform -f values.yaml | grep 'image:'

Required Docker images

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

We currently have a script in the camunda-helm-respository that will assist in pulling and saving Docker images.

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

For example, the Docker image of Zeebe 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

Required Helm charts

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

Install the Helm charts by either making it available on a private registry that can be accessed by the air-gapped environment or downloading the artifacts locally. For supported versions, refer to our supported environments page.

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
|_ identityKeycloak
|_ postgresql
|_ zeebe
|_ zeebeGateway
|_ optimize
|_ operate
|_ tasklist
|_ connectors
|_ webModeler
|_ 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]
identityKeycloak:
[keycloak 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
zeebeGateway:
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
...
identityKeycloak:
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
...
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