diff --git a/charts/zeebe-benchmark/Chart.yaml b/charts/zeebe-benchmark/Chart.yaml index e69320f..7066e56 100644 --- a/charts/zeebe-benchmark/Chart.yaml +++ b/charts/zeebe-benchmark/Chart.yaml @@ -10,7 +10,7 @@ sources: dependencies: - name: camunda-platform repository: "oci://ghcr.io/camunda/helm" - version: "0.0.0-8.7.0-alpha1" + version: "0.0.0-snapshot-alpha" condition: "camunda.enabled" - name: prometheus-elasticsearch-exporter repository: "https://prometheus-community.github.io/helm-charts" diff --git a/charts/zeebe-benchmark/templates/NOTES.txt b/charts/zeebe-benchmark/templates/NOTES.txt index 21e3e7a..e9c5b62 100644 --- a/charts/zeebe-benchmark/templates/NOTES.txt +++ b/charts/zeebe-benchmark/templates/NOTES.txt @@ -2,11 +2,10 @@ Installed Zeebe cluster with: - * {{ index .Values "camunda-platform" "zeebe" "clusterSize" }} Brokers ({{ index .Values "camunda-platform" "zeebe" "image" "repository" }}:{{ index .Values "camunda-platform" "zeebe" "image" "tag" }}) - * {{ index .Values "camunda-platform" "zeebeGateway" "replicas" }} Gateways ({{ index .Values "camunda-platform" "zeebeGateway" "image" "repository" }}:{{ index .Values "camunda-platform" "zeebeGateway" "image" "tag" }}) -{{- if index .Values "camunda-platform" "operate" "enabled" }} - * Operate ({{ index .Values "camunda-platform" "operate" "image" "repository" }}:{{ index .Values "camunda-platform" "operate" "image" "tag" }}) -{{ end }} + * {{ index .Values "camunda-platform" "core" "clusterSize" }} Brokers ({{ index .Values "camunda-platform" "core" "image" "repository" }}:{{ index .Values "camunda-platform" "core" "image" "tag" }}) +{{/*{{- if index .Values "camunda-platform" "operate" "enabled" }}*/}} +{{/* * Operate ({{ index .Values "camunda-platform" "operate" "image" "repository" }}:{{ index .Values "camunda-platform" "operate" "image" "tag" }})*/}} +{{/*{{ end }}*/}} The benchmark is running with: diff --git a/charts/zeebe-benchmark/templates/publisher.yaml b/charts/zeebe-benchmark/templates/publisher.yaml index 224b98b..1c0eda5 100644 --- a/charts/zeebe-benchmark/templates/publisher.yaml +++ b/charts/zeebe-benchmark/templates/publisher.yaml @@ -23,7 +23,7 @@ spec: - name: JDK_JAVA_OPTIONS value: >- -Dconfig.override_with_env_vars=true - -Dapp.brokerUrl={{ .Release.Name }}-zeebe-gateway:26500 + -Dapp.brokerUrl={{ .Release.Name }}-core:26500 -Dapp.starter.rate={{ .Values.publisher.rate }} -Dzeebe.client.requestTimeout=62000 -XX:+HeapDumpOnOutOfMemoryError diff --git a/charts/zeebe-benchmark/templates/starter.yaml b/charts/zeebe-benchmark/templates/starter.yaml index 57b0d56..52aa10e 100644 --- a/charts/zeebe-benchmark/templates/starter.yaml +++ b/charts/zeebe-benchmark/templates/starter.yaml @@ -26,7 +26,7 @@ spec: {{- if $.Values.saas.enabled }} -Dapp.tls=true {{- else }} - -Dapp.brokerUrl={{ $.Release.Name }}-zeebe-gateway:26500 + -Dapp.brokerUrl={{ $.Release.Name }}-core:26500 {{- end }} -Dapp.starter.rate={{ .Values.starter.rate }} -Dapp.starter.durationLimit=0 diff --git a/charts/zeebe-benchmark/templates/timer.yaml b/charts/zeebe-benchmark/templates/timer.yaml index 0ac4f02..f24f47a 100644 --- a/charts/zeebe-benchmark/templates/timer.yaml +++ b/charts/zeebe-benchmark/templates/timer.yaml @@ -23,7 +23,7 @@ spec: - name: JDK_JAVA_OPTIONS value: >- -Dconfig.override_with_env_vars=true - -Dapp.brokerUrl={{ .Release.Name }}-zeebe-gateway:26500 + -Dapp.brokerUrl={{ .Release.Name }}-core:26500 -Dapp.starter.rate={{ .Values.timer.rate }} -Dzeebe.client.requestTimeout=62000 -XX:+HeapDumpOnOutOfMemoryError diff --git a/charts/zeebe-benchmark/templates/workers.yaml b/charts/zeebe-benchmark/templates/workers.yaml index 077159b..26ef378 100644 --- a/charts/zeebe-benchmark/templates/workers.yaml +++ b/charts/zeebe-benchmark/templates/workers.yaml @@ -27,7 +27,7 @@ spec: {{- if $.Values.saas.enabled }} -Dapp.tls=true {{- else }} - -Dapp.brokerUrl={{ $.Release.Name }}-zeebe-gateway:26500 + -Dapp.brokerUrl={{ $.Release.Name }}-core:26500 {{- end }} -Dzeebe.client.requestTimeout=62000 {{- if $worker.capacity }} diff --git a/charts/zeebe-benchmark/values-realistic-benchmark.yaml b/charts/zeebe-benchmark/values-realistic-benchmark.yaml index 9a3d2b3..42c56a0 100644 --- a/charts/zeebe-benchmark/values-realistic-benchmark.yaml +++ b/charts/zeebe-benchmark/values-realistic-benchmark.yaml @@ -11,10 +11,6 @@ global: tag: SNAPSHOT # Image.pullPolicy defines the image pull policy which should be used https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy pullPolicy: Always - # Disable Identity completely; both this flag and `camunda-platform.identity.enabled` are required. - identity: - auth: - enabled: false # DEPRECATED worker configuration for the to be deployed worker application worker: @@ -217,69 +213,9 @@ starter: # each created process instance businessKey: "customerId" +## @section Orchestration Core Parameters +## @extra core configuration for the Orchestration Core. camunda-platform: - enabled: true - - zeebe: - # Image configuration to configure the zeebe image specifics - image: - # Image.repository defines which image repository to use - repository: camunda/zeebe - tag: SNAPSHOT - - # Retention can be used to define the data in Elasticsearch (ILM). - retention: - ## @param zeebe.retention.enabled if true, the ILM Policy is created and applied to the index templates. - enabled: true - ## @param zeebe.retention.minimumAge defines how old the data must be, before the data is deleted as a duration. - minimumAge: 1d # set it to a higher value if we run with operate, so operate has enough time to consume the data - - # Resources configuration to set request and limit configuration for the container https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limitsS - resources: - limits: - cpu: 1700m - memory: 4Gi - requests: - cpu: 1350m - memory: 4Gi - - zeebeGateway: - # Replicas defines how many standalone gateways are deployed - replicas: 2 - - # Image configuration to configure the zeebe-gateway image specifics - image: - # Image.repository defines which image repository to use - repository: camunda/zeebe - tag: SNAPSHOT - - # Resources configuration to set request and limit configuration for the container https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits - resources: - limits: - cpu: 450m - memory: 1Gi - requests: - cpu: 450m - memory: 1Gi - - operate: - enabled: true - image: - repository: camunda/operate - tag: SNAPSHOT - # Resources configuration to set request and limit configuration for the container https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits - resources: - requests: - cpu: 600m - memory: 400Mi - limits: - cpu: 2000m - memory: 2Gi - env: - - name: CAMUNDA_OPERATE_IMPORTERENABLED - value: "false" - - # ELASTIC elasticsearch: enabled: true imageTag: 8.9.2 @@ -309,3 +245,43 @@ camunda-platform: size: 128Gi # Persistent Volume Access Modes accessModes: [ "ReadWriteOnce" ] + + core: + ## @param core.enabled if true, all related resources are deployed via the helm release + enabled: true + + ## @param core.debug if true, extra info is printed. + debug: false + + ## @extra core.image configuration to configure the image specifics + image: + ## @param core.image.repository defines which image repository to use + repository: camunda/camunda + ## @param core.image.tag can be set to overwrite the global tag, which should be used in that chart + tag: SNAPSHOT + + + ## @param core.logLevel defines the log level which is used + logLevel: info + + ingress: + grpc: + ## @param core.ingress.grpc.enabled if true, an ingress resource is deployed with the Zeebe gateway deployment. Only useful if an ingress controller is available, like nginx. + enabled: true + http: + ## @param core.ingress.http.enabled if true, an ingress resource is deployed with the Zeebe gateway deployment. Only useful if an ingress controller is available, like nginx. + enabled: true + + ## @extra core.resources configuration to set request and limit configuration for the container https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits + ## @extra core.resources.requests + ## @param core.resources.requests.cpu + ## @param core.resources.requests.memory + ## @param core.resources.limits.cpu + ## @param core.resources.limits.memory + resources: + requests: + cpu: 1350m + memory: 4Gi + limits: + cpu: 1700m + memory: 4Gi \ No newline at end of file diff --git a/charts/zeebe-benchmark/values.yaml b/charts/zeebe-benchmark/values.yaml index d7d076c..8f5ed8b 100644 --- a/charts/zeebe-benchmark/values.yaml +++ b/charts/zeebe-benchmark/values.yaml @@ -35,11 +35,12 @@ global: tag: SNAPSHOT # Image.pullPolicy defines the image pull policy which should be used https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy pullPolicy: Always - # Disable Identity completely; both this flag and `camunda-platform.identity.enabled` are required. + # Disable Identity identity: auth: enabled: false + # Saas configuration to run benchmarks against Camunda SaaS environment saas: # Saas.enabled if true enables the benchmark to run against Camunda SaaS @@ -193,18 +194,9 @@ zeebe: enabled: false camunda-platform: - enabled: true - global: - image: - tag: SNAPSHOT - pullPolicy: Always - - zeebe: - # Image configuration to configure the zeebe image specifics - image: - # Image.repository defines which image repository to use - repository: camunda/zeebe - tag: SNAPSHOT + core: + enabled: true + # ClusterSize defines the amount of brokers (=replicas), which are deployed via helm clusterSize: "3" # PartitionCount defines how many zeebe partitions are set up in the cluster @@ -235,9 +227,9 @@ camunda-platform: -XX:MaxRAMPercentage=25.0 -XX:+ExitOnOutOfMemoryError -XX:+HeapDumpOnOutOfMemoryError - -XX:HeapDumpPath=/usr/local/zeebe/data - -XX:ErrorFile=/usr/local/zeebe/data/zeebe_error%p.log - -Xlog:gc*:file=/usr/local/zeebe/data/gc.log:time:filecount=7,filesize=8M + -XX:HeapDumpPath=/usr/local/camunda/data + -XX:ErrorFile=/usr/local/camunda/data/zeebe_error%p.log + -Xlog:gc*:file=/usr/local/camunda/data/gc.log:time:filecount=7,filesize=8M # Zeebe config extraVolumes: @@ -250,7 +242,7 @@ camunda-platform: extraVolumeMounts: - name: benchmark-config - mountPath: /usr/local/zeebe/config/benchmark-config.yaml + mountPath: /usr/local/camunda/config/benchmark-config.yaml subPath: benchmark-config.yaml - name: pyroscope mountPath: /pyroscope @@ -322,13 +314,16 @@ camunda-platform: # To be able to load a separate/additional configuration # See https://github.com/camunda/camunda-platform-helm/issues/2197 - name: SPRING_CONFIG_ADDITIONALLOCATION - value: "/usr/local/zeebe/config/benchmark-config.yaml" + value: "/usr/local/camunda/config/benchmark-config.yaml" - name: JAVA_OPTS valueFrom: configMapKeyRef: name: zeebe-config key: java-opts optional: true + # To run Operate and Tasklist add these to the value of this variable + - name: SPRING_PROFILES_ACTIVE + value: "auth,broker" # Resources configuration to set request and limit configuration for the container https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limitsS resources: @@ -343,142 +338,12 @@ camunda-platform: cloud.google.com/gke-nodepool: n2-standard-2 # PvcAccessModes can be used to configure the persistent volume claim access mode https://kubernetes.io/docs/concepts/storage/persistent-volumes/#access-modes - pvcAccessMode: [ "ReadWriteOnce" ] - # PvcSize defines the persistent volume claim size, which is used by each broker pod https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims - pvcSize: 48Gi + pvc: + accessModes: [ "ReadWriteOnce" ] + # PvcSize defines the persistent volume claim size, which is used by each broker pod https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims + size: 48Gi # PvcStorageClassName can be used to set the storage class name which should be used by the persistent volume claim. It is recommended to use a storage class, which is backed with a SSD. - pvcStorageClassName: ssd - - zeebeGateway: - # Replicas defines how many standalone gateways are deployed - replicas: 2 - - # Image configuration to configure the zeebe-gateway image specifics - image: - # Image.repository defines which image repository to use - repository: camunda/zeebe - tag: SNAPSHOT - # LogLevel defines the log level which is used by the gateway - logLevel: debug - - extraVolumes: - - name: benchmark-config - configMap: - name: benchmark-config - defaultMode: 0754 - - name: pyroscope - emptyDir: {} - - extraVolumeMounts: - - name: pyroscope - mountPath: /pyroscope - - name: benchmark-config - mountPath: /usr/local/zeebe/config/benchmark-config.yaml - subPath: benchmark-config.yaml - - extraInitContainers: - - name: pyroscope - image: alpine - command: ['wget', 'https://github.com/pyroscope-io/pyroscope-java/releases/latest/download/pyroscope.jar', '-O', '/pyroscope/pyroscope.jar'] - volumeMounts: - - name: pyroscope - mountPath: /pyroscope - securityContext: - ## @param zeebe.containerSecurityContext.allowPrivilegeEscalation - allowPrivilegeEscalation: false - ## @param zeebe.containerSecurityContext.privileged - privileged: false - ## @param zeebe.containerSecurityContext.readOnlyRootFilesystem - readOnlyRootFilesystem: true - ## @param zeebe.containerSecurityContext.runAsUser - runAsUser: 1000 - - # Env can be used to set extra environment variables in each gateway container - env: - - name: ZEEBE_LOG_APPENDER - value: Stackdriver - - name: ZEEBE_LOG_STACKDRIVER_SERVICENAME - value: zeebe - - name: ZEEBE_LOG_STACKDRIVER_SERVICEVERSION - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: ATOMIX_LOG_LEVEL - value: INFO - - name: ZEEBE_LOG_LEVEL - value: DEBUG - - name: PYROSCOPE_SERVER_ADDRESS - value: "http://pyroscope.pyroscope.svc.cluster.local:4040" - - name: PYROSCOPE_APPLICATION_NAME - value: "io.camunda.zeebe.gateway" - - name: PYROSCOPE_LOG_LEVEL - value: "debug" - - name: PYROSCOPE_FORMAT - value: "jfr" - - name: PYROSCOPE_PROFILER_EVENT - value: "cpu" - - name: PYROSCOPE_PROFILER_ALLOC - value: "0" - - name: PYROSCOPE_PROFILER_LOCK - value: "0" - - name: PYROSCOPE_LABELS - value: "namespace=$(K8S_NAMESPACE), pod=$(K8S_NAME)" - # To be able to load a separate/additional configuration - # See https://github.com/camunda/camunda-platform-helm/issues/2197 - - name: SPRING_CONFIG_ADDITIONALLOCATION - value: "/usr/local/zeebe/config/benchmark-config.yaml" - - name: JAVA_OPTS - valueFrom: - configMapKeyRef: - name: zeebe-config - key: java-opts - optional: true - - # Resources configuration to set request and limit configuration for the container https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits - resources: - limits: - cpu: 450m - memory: 1Gi - requests: - cpu: 450m - memory: 1Gi - - operate: - enabled: false - image: - tag: SNAPSHOT - # Resources configuration to set request and limit configuration for the container https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#requests-and-limits - resources: - requests: - cpu: 600m - memory: 400Mi - limits: - cpu: 2000m - memory: 2Gi - - # Retention can be used to define the data in Elasticsearch (ILM). - retention: - ## @param operate.retention.enabled if true, the ILM Policy is created and applied to the index templates. - enabled: true - ## @param operate.retention.minimumAge defines how old the data must be, before the data is deleted as a duration. - minimumAge: 30m # there is no need to keep data longer for our benchmarks, otherwise we will fill up ES pretty quick - - env: - - name: OPERATE_LOG_APPENDER - value: Stackdriver - - name: OPERATE_LOG_STACKDRIVER_SERVICENAME - value: operate - - name: OPERATE_LOG_STACKDRIVER_SERVICEVERSION - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - logging: - level: - io.camunda.operate: INFO - - tasklist: - enabled: false + storageClassName: ssd identity: enabled: false