- Requirements
- Dependencies
- Installation
- Uninstalling Charts
- Configuration
- Development
- Releasing the Charts
- Helm >= 3.11.x
- Kubernetes >= 1.20+
- Minimum cluster requirements include the following to run this chart with default settings.
All of these settings are configurable.
- Three Kubernetes nodes to respect the default "hard" affinity settings
- 2GB of RAM for the JVM heap
Zeebe Benchmark Helm chart depends on the Camunda Platform 8 Helm chart, which has its own dependencies.
The dependency management is fully automated and managed by Helm itself; however, it's good to understand the dependency structure. This third-party dependency is reflected in the Helm chart as follows:
zeebe-benchmark
|_camunda-platform
|_ elasticsearch
|_ identity
|_ keycloak
|_ postgresql
|_ optimize
|_ operate
|_ tasklist
|_ web-modeler
|_ postgresql
|_ zeebe
In the Zeebe Benchmark Helm chart, every sub-component from Camunda Platform 8 is disabled except Zeebe. This can be changed via setting the right values.
The first command adds the Zeebe Benchmark Helm charts repo, and the second installs the chart to your current Kubernetes context.
helm repo add zeebe-benchmark https://zeebe-io.github.io/benchmark-helm/
helm install this-is-a-benchmark zeebe-benchmark/zeebe-benchmark
We recommend using Helm on KIND for local environments, as the Helm configurations are battle-tested and much closer to production systems.
For more details, follow the Camunda Platform 8 local Kubernetes cluster guide.
You can remove these charts by running:
helm uninstall YOUR_RELEASE_NAME
Note
Notice that all the Services and Pods will be deleted, but not the PersistentVolumeClaims (PVC) which are used to hold the storage for the data generated by the cluster and Elasticsearch.
To free up the storage, you need to delete all the PVCs manually.
First, view the PVCs:
kubectl get pvc -l app.kubernetes.io/instance=YOUR_RELEASE_NAME
kubectl get pvc -l release=YOUR_RELEASE_NAME
Then delete the ones that you don't want to keep:
kubectl delete pvc -l app.kubernetes.io/instance=YOUR_RELEASE_NAME
kubectl delete pvc -l release=YOUR_RELEASE_NAME
Or you can delete the related Kubernetes namespace, which contains all PVCs.
The following sections contain the configuration values for the chart and each sub-chart. All of them can be overwritten
via a separate values.yaml
file.
Check out the default values.yaml file, which contains the same content and documentation.
Note For more details about deploying Camunda Platform 8 on Kubernetes, please visit the Helm/Kubernetes installation instructions docs.
Section | Parameter | Description | Default |
---|---|---|---|
global |
Global variables which can be accessed by all sub charts | ||
image.repository |
Defines the repository from which to fetch the images. | "gcr.io/zeebe-io" | |
image.tag |
Defines the tag / version which should be used in the chart. | "SNAPSHOT" | |
image.pullPolicy |
Defines the image pull policy which should be used. | Always |
Zeebe Benchmark Helm chart has a dependency on the Camunda 8 Platform Helm chart. All variables related to Camunda Platform can be found in camunda-platform/values.yaml and can be set under camunda-platform
.
Section | Parameter | Description | Default |
---|---|---|---|
camunda-platform |
enabled |
If true, enables Camunda Platform 8 deployment as part of the Helm chart | true |
Example:
camunda-platform:
enabled: true
Per default Zeebe and Zeebe-Gateway are enabled and all other components are disabled.
Allows to configure the elasticsearch index retention policies, which are much more fine granular in contrast to the ones provided by the parent helm chart (camunda-platform).
Section | Parameter | Description | Default |
---|---|---|---|
retentionPolicy |
Configuration to configure the elasticsearch index retention policies | ||
enabled |
If true, elasticsearch curator cronjob and configuration will be deployed. | false |
|
schedule |
Defines how often/when the curator should run. | "0 * * * *" |
|
policies |
Defines a list of policies, which allows to specify policies for specific indexes or globally (based on the pattern specified). | "0 * * * *" |
|
image |
Configuration for the elasticsearch curator cronjob. |
Allows to configure the workers which can be deployed along the Zeebe Cluster. The worker code can be found here.
Section | Parameter | Description | Default |
---|---|---|---|
worker |
Configuration for the to be deployed worker application | ||
replicas |
Defines how many replicas of the application should be deployed. | 3 |
|
capacity |
Defines how many jobs the worker should activate and work on. | 60 |
Allows to configure the starter which can be deployed along the Zeebe Cluster. The start code can be found here.
Section | Parameter | Description | Default |
---|---|---|---|
starter |
Configuration for the to be deployed starter application | ||
replicas |
Defines how many replicas of the application should be deployed. | 1 |
|
rate |
Defines with which rate process instances should be created by the starter. | 150 |
Allows to configure the publisher which can be deployed along the Zeebe Cluster. The start code can be found here.
Section | Parameter | Description | Default |
---|---|---|---|
publisher |
Configuration for the to be deployed publisher application | ||
replicas |
Defines how many replicas of the application should be deployed. | 0 |
|
rate |
Defines with which rate message should be published. | 25 |
Allows to configure the timer which can be deployed along the Zeebe Cluster. The start code can be found here.
Section | Parameter | Description | Default |
---|---|---|---|
timer |
Configuration for the to be deployed starter application | ||
replicas |
Defines how many replicas of the application should be deployed. | 0 |
|
rate |
Defines with which rate process instances with timers should be created. | 25 |
Allows to configure the auto leader balancing. For more details see Rebalancing docs.
Section | Parameter | Description | Default |
---|---|---|---|
leaderBalancing |
Configuration for auto rebalancing feature | ||
enabled |
If true, enables the auto leader rebalancing. | true |
|
schedule |
Defines the schedule of the auto leader rebalancing feature. | "*/15 * * * *" |
For more information about Zeebe, visit Zeebe Overview.
Section | Parameter | Description | Default |
---|---|---|---|
zeebe |
Configuration to configure Zeebe and Gateway | ||
config |
Can be used to configure Zeebe Broker and Gateway additional without the need of overwriting all environment variables from the dependency chart. | {} |
|
profiling |
Configuration for pyroscope profiling. | ||
profiling.enabled |
If true, enables the pyroscope profiling. | false |
For development purposes, you might want to deploy and test the charts without creating a new helm chart release. To do this you can run the following:
helm install YOUR_RELEASE_NAME --atomic --debug ./charts/camunda-platform
-
--atomic if set, the installation process deletes the installation on failure. The --wait flag will be set automatically if --atomic is used
-
--debug enable verbose output
To generate the resources/manifests without really installing them, you can use:
--dry-run simulate an install
If you see errors like:
Error: found in Chart.yaml, but missing in charts/ directory: elasticsearch
Then you need to download the dependencies first.
Run the following to add resolve the dependencies:
make helm.repos-add
After this, you can run: make helm.dependency-update
, which will update and download the dependencies for all charts.
The execution should look like this:
$ make helm.dependency-update
helm dependency update charts/camunda-platform
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "camunda-platform" chart repository
...Successfully got an update from the "elastic" chart repository
...Successfully got an update from the "bitnami" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 6 charts
Dependency zeebe did not declare a repository. Assuming it exists in the charts directory
Dependency zeebe-gateway did not declare a repository. Assuming it exists in the charts directory
Dependency operate did not declare a repository. Assuming it exists in the charts directory
Dependency tasklist did not declare a repository. Assuming it exists in the charts directory
Dependency identity did not declare a repository. Assuming it exists in the charts directory
Downloading elasticsearch from repo https://helm.elastic.co
Deleting outdated charts
helm dependency update charts/camunda-platform/charts/identity
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "camunda-platform" chart repository
...Successfully got an update from the "elastic" chart repository
...Successfully got an update from the "bitnami" chart repository
Update Complete. ⎈Happy Helming!⎈
Saving 2 charts
Downloading keycloak from repo https://charts.bitnami.com/bitnami
Downloading common from repo https://charts.bitnami.com/bitnami
Please see the corresponding release guide to find out how to release the chart.