Skip to main content

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