Skip to main content
Version: 8.9 (unreleased)

Install Camunda with Helm for development

Use this guide to quickly install the Camunda 8 orchestration cluster for testing and development.

Need a Kubernetes cluster?

If you don't have a Kubernetes cluster yet, check out our setup guides:

  • Local development: Follow our kind tutorial to set up a local Kubernetes cluster.
  • Cloud providers: See our cloud provider guides for Amazon EKS, Google GKE, Azure AKS, and Red Hat OpenShift.
note

In this guide, you deploy the Orchestration Cluster with Basic authentication and RDBMS (embedded H2) as secondary storage. For a full deployment with all components (Optimize, Web Modeler, Console, Identity, and Keycloak), follow our kind tutorial. For production environments, see the production installation guide.

Prerequisites

  • Kubernetes cluster: A functioning Kubernetes cluster with kubectl access and block-storage persistent volumes for stateful components.
  • Helm: The Helm CLI installed. See Installing Helm.

Orchestration Cluster only

The Helm chart deploys the Camunda Orchestration Cluster with Basic authentication and RDBMS as secondary storage (using embedded H2 when no external database URL is provided), intended only for testing and development. No external database or identity provider is required.

In production, Camunda 8 is typically deployed together with additional components such as Optimize, Web Modeler, and Console, which require OIDC-based authentication and external databases. For a full local deployment with all components, follow our kind tutorial.

  1. Create a namespace to install the platform on Kubernetes:

    kubectl create namespace orchestration

    Output:

    namespace/orchestration created
  2. Add the Helm repository:

    To install the Camunda 8 Self-Managed Helm chart, add the Helm repository with the following command:

    helm repo add camunda https://helm.camunda.io
    helm repo update
  3. Install the Helm chart:

    helm install camunda camunda/camunda-platform \
    --set orchestration.exporters.rdbms.enabled=true \
    --set-string 'orchestration.env[0].name=CAMUNDA_PERSISTENT_SESSIONS_ENABLED' \
    --set-string 'orchestration.env[0].value=false' \
    -n orchestration

    This enables the RDBMS exporter with embedded H2 as secondary storage. Starting with Camunda 8.9, the chart no longer includes a default secondary storage; you must explicitly choose one (rdbms, elasticsearch, or opensearch).

  4. Access the components:

    Use the default credentials:

    username: demo
    password: demo

    Set up port-forwarding to access the services:

    # Zeebe Gateway (for gRPC and REST API)
    kubectl port-forward svc/camunda-zeebe-gateway 26500:26500 -n orchestration
    kubectl port-forward svc/camunda-zeebe-gateway 8080:8080 -n orchestration

    # Connectors
    kubectl port-forward svc/camunda-connectors 8088:8080 -n orchestration

    Verify the installation:

    Test the Zeebe Gateway connection:

    curl -u demo:demo http://localhost:8080/v2/topology

    You should see a JSON response with the cluster topology information.

    Available services:

    note

    In Camunda 8.8+, Operate, Tasklist, and Identity are integrated into the Orchestration component and share the same endpoint (port 8080).

Full Cluster

To deploy the full Camunda 8 platform with all components (Optimize, Web Modeler, Console, Management Identity, and Keycloak), follow our kind tutorial. The full deployment requires OIDC-based authentication and operator-based infrastructure (PostgreSQL, Elasticsearch, Keycloak).

Troubleshoot installation issues

Verify that each pod is running and ready. If a pod is pending, it cannot be scheduled onto a node. This usually happens when the cluster does not have enough resources. To check messages from the scheduler, run:

kubectl describe pods <POD_NAME>

If describe does not help, check the pod logs by running:

kubectl logs -f <POD_NAME>

Install a specific version

By default, the Camunda Helm chart installs the latest version of the Camunda 8 applications. Because Helm chart and application versions are released independently, their version numbers differ. For details, see the Camunda 8 Helm Chart Version Matrix.

To install the latest version of the chart and its application dependencies, run:

helm install camunda camunda/camunda-platform \
--values https://helm.camunda.io/camunda-platform/values/values-latest.yaml

To install a specific chart version, use the --version flag with the chart version number. For example, the chart version for Camunda 8.8 is 13:

helm install camunda camunda/camunda-platform --version 13 \
--values https://helm.camunda.io/camunda-platform/values/values-v8.8.yaml

Specifying only the major chart version (for example, 13) installs the latest available 13.x.y release. You can also specify a minor version (for example, 12.6) to install the latest 12.6.y release.

If you are unsure which chart version corresponds to your Camunda application version, run:

helm search repo -l camunda/camunda-platform

This command lists all available chart versions and their corresponding application versions.

Notes and requirements

  • Zeebe supports Kubernetes startup and liveness probes. See Gateway health probes.
  • Zeebe must be deployed as a StatefulSet to preserve cluster node identities. StatefulSets require persistent storage, which you must provision in advance. The type of storage depends on your cloud provider.
  • Docker pull limits apply when downloading Camunda 8 images from Docker Hub. To avoid disruptions, authenticate with Docker Hub or use a mirror registry.
  • Air-gapped environments require additional configuration. See Helm chart air-gapped environment installation.
  • Full deployment: To deploy all Camunda 8 components with OIDC authentication and Kubernetes operators, follow our kind tutorial or the cloud provider guides.

Next steps

Additional resources