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:
- camunda/zeebe
- camunda/operate
- camunda/tasklist
- camunda/optimize
- camunda/connectors-bundle
- camunda/identity
- postgres
- bitnami/keycloak
- elasticsearch
- Web Modeler images (only available from Camunda's private registry):
web-modeler-ee/modeler-restapi
web-modeler-ee/modeler-webapp
web-modeler-ee/modeler-websockets
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:
- Camunda Helm chart
- Elasticsearch Helm chart
- Keycloak Helm chart
- Postgres Helm chart
- Bitnami Common Helm chart
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:
- 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>
- 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