From 4b3106f97c3bf91abc29ea581fcc11715b2acf87 Mon Sep 17 00:00:00 2001 From: Martin Gruner Date: Mon, 29 Jun 2026 14:26:20 +0200 Subject: [PATCH 1/5] Closes: #399 - Migrate away from bitnami/elasticsearch --- .github/ct.yaml | 1 + .github/kubeconform.sh | 7 +- .github/workflows/ci.yaml | 8 +++ zammad/Chart.yaml | 13 ++-- zammad/README.md | 58 ++++++++++++---- zammad/ci/full-values.yaml | 7 +- zammad/templates/_helpers.tpl | 37 ++++++++++- zammad/templates/configmap-init.yaml | 4 +- zammad/templates/job-init.yaml | 4 +- zammad/values.yaml | 99 +++++++++++++++------------- 10 files changed, 170 insertions(+), 68 deletions(-) diff --git a/.github/ct.yaml b/.github/ct.yaml index 17ab77f2..b0f3cd5d 100644 --- a/.github/ct.yaml +++ b/.github/ct.yaml @@ -2,6 +2,7 @@ chart-dirs: . chart-repos: - bitnami=https://charts.bitnami.com/bitnami + - elastic=https://helm.elastic.co check-version-increment: true debug: true # upgrade: true # Causes issues because of low performance on default GitHub actions servers. diff --git a/.github/kubeconform.sh b/.github/kubeconform.sh index 86bfbd60..ed1c401a 100755 --- a/.github/kubeconform.sh +++ b/.github/kubeconform.sh @@ -18,5 +18,10 @@ for CHART_DIR in ${CHART_DIRS};do helm dependency build "${CHART_DIR}" echo "kubeconform(ing) ${CHART_DIR##charts/} chart…" - helm template "${CHART_DIR}" | kubeconform --strict --verbose --kubernetes-version "${KUBERNETES_VERSION#v}" + # The second schema location resolves CRD-based kinds (e.g. the ECK-managed + # Elasticsearch resource) from the datree CRDs catalog. + helm template "${CHART_DIR}" | kubeconform --strict --verbose \ + --schema-location default \ + --schema-location 'https://raw.githubusercontent.com/datreeio/CRDs-catalog/main/{{.Group}}/{{.ResourceKind}}_{{.ResourceAPIVersion}}.json' \ + --kubernetes-version "${KUBERNETES_VERSION#v}" done diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index b2fece65..48989cb4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -123,6 +123,14 @@ jobs: config: .github/kind-config.yaml node_image: kindest/node:${{ matrix.k8s }} + - name: Install ECK operator (CRDs + operator) + if: steps.list-changed.outputs.changed == 'true' + run: | + helm repo add elastic https://helm.elastic.co + helm repo update + helm install elastic-operator elastic/eck-operator \ + --namespace elastic-system --create-namespace --wait + - name: Create Namespace 'zammad' run: kubectl create namespace zammad diff --git a/zammad/Chart.yaml b/zammad/Chart.yaml index f45d2963..71a633ea 100755 --- a/zammad/Chart.yaml +++ b/zammad/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: zammad -version: 16.4.3 +version: 17.0.0 appVersion: 7.1.1-0000 description: Zammad is a web based open source helpdesk/customer support system with many features to manage customer communication via several channels like telephone, facebook, twitter, chat and e-mails. home: https://zammad.org @@ -14,9 +14,14 @@ maintainers: - name: mgruner email: enjoy@zammad.com dependencies: - - name: elasticsearch - repository: https://charts.bitnami.com/bitnami - version: 21.6.3 + # Official Elastic way to run Elasticsearch: the eck-elasticsearch chart deploys + # an Elasticsearch custom resource that is reconciled by the ECK operator. + # The ECK operator (+ CRDs) must be installed cluster-wide as a prerequisite, + # see README. Aliased to "elasticsearch" to keep the values key stable. + - name: eck-elasticsearch + alias: elasticsearch + repository: https://helm.elastic.co + version: 0.19.1 condition: zammadConfig.elasticsearch.enabled - name: minio version: 14.10.5 diff --git a/zammad/README.md b/zammad/README.md index f47e3ad9..49a49fef 100644 --- a/zammad/README.md +++ b/zammad/README.md @@ -41,9 +41,24 @@ Be aware that the Zammad Helm chart version is different from the actual Zammad ## Prerequisites -- Kubernetes 1.19+ +- Kubernetes 1.21+ - Helm 3.2.0+ - Cluster with at least 4GB of free RAM +- The [ECK operator](https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-install-helm.html) + must be installed in the cluster when using the bundled Elasticsearch + (`zammadConfig.elasticsearch.enabled: true`, the default). The bundled + Elasticsearch is deployed via the official `eck-elasticsearch` chart, which + creates an `Elasticsearch` custom resource that is reconciled by the operator. + This is **not** required when connecting to an external Elasticsearch service. + + Install the operator once per cluster: + + ```console + helm repo add elastic https://helm.elastic.co + helm repo update + helm install elastic-operator elastic/eck-operator \ + --namespace elastic-system --create-namespace + ``` ## Installing the Chart @@ -114,7 +129,11 @@ To deploy on OpenShift unprivileged and with [arbitrary UIDs and GIDs](https://c - [Delete the default key](https://helm.sh/docs/chart_template_guide/values_files/#deleting-a-default-key) `securityContext` and `zammadConfig.initContainers.zammad.securityContext.runAsUser` with `null`. - Disable if used: - also `podSecurityContext` in all subcharts. - - the privileged [sysctlImage](https://github.com/bitnami/charts/tree/main/bitnami/elasticsearch#default-kernel-settings) in elasticsearch subchart. + +The bundled Elasticsearch uses `node.store.allow_mmap: false` by default (see +`elasticsearch.nodeSets[].config`), so no privileged sysctl init container is +required. If you raise `vm.max_map_count` for production instead, do so on the +node level rather than via a privileged init container. ```yaml securityContext: null @@ -130,15 +149,6 @@ zammadConfig: emptyDir: medium: memory -elasticsearch: - sysctlImage: - enabled: false - master: - podSecurityContext: - enabled: false - containerSecurityContext: - enabled: false - memcached: podSecurityContext: enabled: false @@ -198,6 +208,32 @@ and `zammadConfig.cronJob.reindex.schedule` if you want to run it periodically. ## Upgrading +### From Chart Version 16.x to 17.0.0 + +- The bundled Elasticsearch was migrated from the `bitnami/elasticsearch` subchart to the + official [`eck-elasticsearch`](https://artifacthub.io/packages/helm/elastic/eck-elasticsearch) + chart, which is managed by the [ECK operator](https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-overview.html). + This is the deployment method officially supported by Elastic. +- **The ECK operator (and its CRDs) must now be installed in the cluster** before upgrading + when `zammadConfig.elasticsearch.enabled` is `true` (the default). See [Prerequisites](#prerequisites). +- The `elasticsearch.*` values changed completely. The previous bitnami values (`master`, `data`, + `ingest`, `coordinating`, `sysctlImage`, `image`, `global.security.allowInsecureImages`, …) no + longer apply. Review the new `elasticsearch.*` block in `values.yaml` (`version`, `nodeSets`, + `http`, …). +- Authentication is now mandatory: ECK creates a superuser `elastic` and stores its password in + the auto-generated secret `{{ .Release.Name }}-elasticsearch-es-elastic-user`. The chart wires + this up automatically, so `secrets.elasticsearch.*` is only relevant for an **external** + Elasticsearch now. +- The in-cluster service name changed from `{{ .Release.Name }}-elasticsearch` to + `{{ .Release.Name }}-elasticsearch-es-http`. +- TLS on the HTTP layer is disabled by default (`elasticsearch.http.tls.selfSignedCertificate.disabled: true`) + to keep the plain-`http` connection behaviour. Set it to `false` and `zammadConfig.elasticsearch.schema: https` + to use the operator-managed self-signed certificate. +- The StatefulSet and its `PersistentVolumeClaim`s are recreated under new names. As the search + index can be rebuilt from PostgreSQL, the recommended path is to delete the old bitnami + Elasticsearch PVCs and let the index be recreated. To force a full rebuild after the upgrade, + set `zammadConfig.elasticsearch.reindex: true` for the upgrade run. + ### From Chart Version 15.x to 16.0.0 - The bitnami memcached subchart was replaced with [cloudpirates-memcached/memcached](https://artifacthub.io/packages/helm/cloudpirates-memcached/memcached). diff --git a/zammad/ci/full-values.yaml b/zammad/ci/full-values.yaml index cd1669e6..5df0a1c4 100755 --- a/zammad/ci/full-values.yaml +++ b/zammad/ci/full-values.yaml @@ -23,9 +23,10 @@ secrets: autoWizard: enabled: true -elasticsearch: - security: - existingSecret: elasticsearch-existing-secret +# The bundled Elasticsearch is managed by the ECK operator and uses its own +# auto-generated credentials secret, so no existingSecret config is needed here. +# (The secrets.elasticsearch.* existing-secret path only applies to an external +# Elasticsearch, i.e. when zammadConfig.elasticsearch.enabled is false.) ingress: enabled: true diff --git a/zammad/templates/_helpers.tpl b/zammad/templates/_helpers.tpl index 2e3ed353..f631ba08 100755 --- a/zammad/templates/_helpers.tpl +++ b/zammad/templates/_helpers.tpl @@ -105,17 +105,52 @@ autowizard secret name {{- end -}} {{- end -}} +{{/* +elasticsearch service host (in-cluster ECK service or external host) +*/}} +{{- define "zammad.elasticsearchHost" -}} +{{- if .Values.zammadConfig.elasticsearch.enabled -}} +{{ .Release.Name }}-elasticsearch-es-http +{{- else -}} +{{ .Values.zammadConfig.elasticsearch.host }} +{{- end -}} +{{- end -}} + +{{/* +elasticsearch user (ECK creates the "elastic" superuser for the in-cluster service) +*/}} +{{- define "zammad.elasticsearchUser" -}} +{{- if .Values.zammadConfig.elasticsearch.enabled -}} +elastic +{{- else -}} +{{ .Values.zammadConfig.elasticsearch.user }} +{{- end -}} +{{- end -}} + {{/* elasticsearch secret name */}} {{- define "zammad.elasticsearchSecretName" -}} -{{- if .Values.secrets.elasticsearch.useExisting -}} +{{- if .Values.zammadConfig.elasticsearch.enabled -}} +{{ .Release.Name }}-elasticsearch-es-elastic-user +{{- else if .Values.secrets.elasticsearch.useExisting -}} {{ .Values.secrets.elasticsearch.secretName }} {{- else -}} {{ include "zammad.fullname" . }}-{{ .Values.secrets.elasticsearch.secretName }} {{- end -}} {{- end -}} +{{/* +elasticsearch secret key (ECK stores the password under the user name "elastic") +*/}} +{{- define "zammad.elasticsearchSecretKey" -}} +{{- if .Values.zammadConfig.elasticsearch.enabled -}} +elastic +{{- else -}} +{{ .Values.secrets.elasticsearch.secretKey }} +{{- end -}} +{{- end -}} + {{/* postgresql secret name */}} diff --git a/zammad/templates/configmap-init.yaml b/zammad/templates/configmap-init.yaml index a8ec91c3..286ed3c2 100644 --- a/zammad/templates/configmap-init.yaml +++ b/zammad/templates/configmap-init.yaml @@ -45,10 +45,10 @@ data: #!/bin/bash set -e - ELASTICSEARCH_URL={{ .Values.zammadConfig.elasticsearch.schema }}://{{ if .Values.zammadConfig.elasticsearch.enabled }}{{ .Release.Name }}-elasticsearch{{ else }}{{ .Values.zammadConfig.elasticsearch.host }}{{ end }}:{{ .Values.zammadConfig.elasticsearch.port }} + ELASTICSEARCH_URL={{ .Values.zammadConfig.elasticsearch.schema }}://{{ include "zammad.elasticsearchHost" . }}:{{ .Values.zammadConfig.elasticsearch.port }} bundle exec rails r "Setting.set('es_url', '${ELASTICSEARCH_URL}')" - ELASTICSEARCH_USER=${ELASTICSEARCH_USER:-{{ .Values.zammadConfig.elasticsearch.user }}} + ELASTICSEARCH_USER=${ELASTICSEARCH_USER:-{{ include "zammad.elasticsearchUser" . }}} if [ -n "${ELASTICSEARCH_USER}" ] && [ -n "${ELASTICSEARCH_PASSWORD}" ]; then bundle exec rails r "Setting.set('es_user', '${ELASTICSEARCH_USER}'); Setting.set('es_password', '${ELASTICSEARCH_PASSWORD}')" fi diff --git a/zammad/templates/job-init.yaml b/zammad/templates/job-init.yaml index 56ed1e71..3bed3bb4 100755 --- a/zammad/templates/job-init.yaml +++ b/zammad/templates/job-init.yaml @@ -90,12 +90,12 @@ spec: env: {{- include "zammad.env" . | nindent 12 }} {{- include "zammad.env.failOnPendingMigrations" . | nindent 12 }} - {{- if or .Values.zammadConfig.elasticsearch.pass .Values.secrets.elasticsearch.useExisting }} + {{- if or .Values.zammadConfig.elasticsearch.enabled .Values.zammadConfig.elasticsearch.pass .Values.secrets.elasticsearch.useExisting }} - name: ELASTICSEARCH_PASSWORD valueFrom: secretKeyRef: name: {{ include "zammad.elasticsearchSecretName" . }} - key: {{ .Values.secrets.elasticsearch.secretKey }} + key: {{ include "zammad.elasticsearchSecretKey" . }} {{- end }} volumeMounts: {{- include "zammad.volumeMounts" . | nindent 12 }} diff --git a/zammad/values.yaml b/zammad/values.yaml index 50248501..a20b4884 100644 --- a/zammad/values.yaml +++ b/zammad/values.yaml @@ -85,10 +85,11 @@ podDisruptionBudget: zammadConfig: elasticsearch: - # enable/disable elasticsearch chart dependency + # enable/disable the bundled elasticsearch (ECK) chart dependency enabled: true - # host env var is only used when zammadConfig.elasticsearch.enabled is false - host: zammad-elasticsearch-master + # host is only used when zammadConfig.elasticsearch.enabled is false + # (i.e. when connecting to an external Elasticsearch service) + host: external-elasticsearch-host initialisation: true pass: "" port: 9200 @@ -693,48 +694,58 @@ initContainers: [] # dependency charts config -# Settings for the elasticsearch subchart +# Settings for the elasticsearch subchart (eck-elasticsearch). +# +# This deploys an Elasticsearch custom resource that is managed by the ECK operator. +# The ECK operator (and its CRDs) MUST already be installed in the cluster, see README. +# +# ECK names the resource "-elasticsearch" (nameOverride below), which +# results in the in-cluster service "-elasticsearch-es-http" and the +# auto-generated superuser secret "-elasticsearch-es-elastic-user" +# (user "elastic"). The Zammad templates pick these up automatically. elasticsearch: - # Workaround: switch to bitnami legacy image repository (https://github.com/bitnami/containers/issues/83267) - image: - repository: bitnamilegacy/elasticsearch - sysctlImage: - repository: bitnamilegacy/os-shell - volumePermissions: - image: - repository: bitnamilegacy/os-shell - metrics: - image: - repository: bitnamilegacy/elasticsearch-exporter - global: - security: - allowInsecureImages: true - - clusterName: zammad - coordinating: - replicaCount: 0 - data: - replicaCount: 0 - ingest: - replicaCount: 0 - master: - heapSize: 512m - masterOnly: false - replicaCount: 1 - resourcesPreset: medium - resources: {} - # requests: - # cpu: 50m - # memory: 512Mi - # limits: - # cpu: 100m - # memory: 1024Mi - - # To use an existing Kubernetes secret containing the credentials, - # remove the comments on the lines below and adjust them accordingly - # - # security: - # existingSecret: elastic-credentials + nameOverride: elasticsearch + # Elasticsearch version. Kept in sync with the version Zammad is tested against. + version: 8.18.0 + http: + tls: + selfSignedCertificate: + # Disable TLS on the HTTP layer (Variant A): Zammad talks plain http to ES. + # Native authentication (user "elastic" + generated password) stays enabled. + # Set to false and adjust zammadConfig.elasticsearch.schema to "https" to + # use the operator-managed self-signed certificate instead. + disabled: true + nodeSets: + - name: default + count: 1 + config: + # Single-node default deployment without raising vm.max_map_count. + # For production, raise the kernel setting vm.max_map_count to 1048576 via + # an initContainer and remove this line instead. See: + # https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-virtual-memory.html + node.store.allow_mmap: false + volumeClaimTemplates: + - metadata: + name: elasticsearch-data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 5Gi + # storageClassName: "" + podTemplate: + spec: + containers: + - name: elasticsearch + env: + - name: ES_JAVA_OPTS + value: "-Xms512m -Xmx512m" + resources: + requests: + memory: 1Gi + limits: + memory: 1Gi # settings for the memcached subchart memcached: From 26ec0777bd02ce92cd5cbc432100b5c842112318 Mon Sep 17 00:00:00 2001 From: Martin Gruner Date: Mon, 29 Jun 2026 14:38:15 +0200 Subject: [PATCH 2/5] Fix for super linter --- .editorconfig | 5 +++++ .github/kubeconform.sh | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..e38f1d3a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,5 @@ +root = true + +[*.sh] +indent_style = space +indent_size = 2 diff --git a/.github/kubeconform.sh b/.github/kubeconform.sh index ed1c401a..564ec5cd 100755 --- a/.github/kubeconform.sh +++ b/.github/kubeconform.sh @@ -13,7 +13,7 @@ curl --silent --show-error --fail --location --output /tmp/kubeconform.tar.gz ht sudo tar -C /usr/local/bin -xf /tmp/kubeconform.tar.gz kubeconform # validate charts -for CHART_DIR in ${CHART_DIRS};do +for CHART_DIR in ${CHART_DIRS}; do echo "helm dependency build…" helm dependency build "${CHART_DIR}" From f9aa062f995851efa4a7784d56a4c8afeaa5cbc5 Mon Sep 17 00:00:00 2001 From: Martin Gruner Date: Tue, 30 Jun 2026 10:24:48 +0200 Subject: [PATCH 3/5] Solve copilot comments --- zammad/templates/_helpers.tpl | 23 +++++++++++++++++++++-- zammad/templates/secrets.yaml | 2 +- zammad/values.yaml | 10 ++++++---- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/zammad/templates/_helpers.tpl b/zammad/templates/_helpers.tpl index f631ba08..6ddde8cd 100755 --- a/zammad/templates/_helpers.tpl +++ b/zammad/templates/_helpers.tpl @@ -105,12 +105,31 @@ autowizard secret name {{- end -}} {{- end -}} +{{/* +Name of the ECK Elasticsearch resource. Mirrors the eck-elasticsearch chart's +"elasticsearch.fullname" logic so that ECK-derived names (services, secrets) +stay correct even if elasticsearch.nameOverride/fullnameOverride are changed. +*/}} +{{- define "zammad.elasticsearchName" -}} +{{- $es := .Values.elasticsearch | default dict -}} +{{- if $es.fullnameOverride -}} +{{- $es.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- $name := default "eck-elasticsearch" $es.nameOverride -}} +{{- if contains $name .Release.Name -}} +{{- .Release.Name | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} +{{- end -}} + {{/* elasticsearch service host (in-cluster ECK service or external host) */}} {{- define "zammad.elasticsearchHost" -}} {{- if .Values.zammadConfig.elasticsearch.enabled -}} -{{ .Release.Name }}-elasticsearch-es-http +{{ include "zammad.elasticsearchName" . }}-es-http {{- else -}} {{ .Values.zammadConfig.elasticsearch.host }} {{- end -}} @@ -132,7 +151,7 @@ elasticsearch secret name */}} {{- define "zammad.elasticsearchSecretName" -}} {{- if .Values.zammadConfig.elasticsearch.enabled -}} -{{ .Release.Name }}-elasticsearch-es-elastic-user +{{ include "zammad.elasticsearchName" . }}-es-elastic-user {{- else if .Values.secrets.elasticsearch.useExisting -}} {{ .Values.secrets.elasticsearch.secretName }} {{- else -}} diff --git a/zammad/templates/secrets.yaml b/zammad/templates/secrets.yaml index 16430602..237de7ed 100644 --- a/zammad/templates/secrets.yaml +++ b/zammad/templates/secrets.yaml @@ -12,7 +12,7 @@ type: Opaque data: {{ .Values.secrets.autowizard.secretKey }}: {{ .Values.autoWizard.config | b64enc | quote }} {{ end }} -{{ if and .Values.zammadConfig.elasticsearch.pass (not .Values.secrets.elasticsearch.useExisting) }} +{{ if and (not .Values.zammadConfig.elasticsearch.enabled) .Values.zammadConfig.elasticsearch.pass (not .Values.secrets.elasticsearch.useExisting) }} --- apiVersion: v1 kind: Secret diff --git a/zammad/values.yaml b/zammad/values.yaml index a20b4884..46322fe7 100644 --- a/zammad/values.yaml +++ b/zammad/values.yaml @@ -87,8 +87,10 @@ zammadConfig: elasticsearch: # enable/disable the bundled elasticsearch (ECK) chart dependency enabled: true - # host is only used when zammadConfig.elasticsearch.enabled is false - # (i.e. when connecting to an external Elasticsearch service) + # host, user and pass are only used when zammadConfig.elasticsearch.enabled is + # false (i.e. when connecting to an external Elasticsearch service). For the + # bundled ECK Elasticsearch, the host, the "elastic" user and the operator- + # generated password are resolved automatically and these values are ignored. host: external-elasticsearch-host initialisation: true pass: "" @@ -720,8 +722,8 @@ elasticsearch: count: 1 config: # Single-node default deployment without raising vm.max_map_count. - # For production, raise the kernel setting vm.max_map_count to 1048576 via - # an initContainer and remove this line instead. See: + # For production, raise the kernel setting vm.max_map_count to 1048576 at + # the node level and remove this line instead. See: # https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-virtual-memory.html node.store.allow_mmap: false volumeClaimTemplates: From a72bd18df0705c38bf7afa5335243b20f8b6fb91 Mon Sep 17 00:00:00 2001 From: Martin Gruner Date: Tue, 30 Jun 2026 10:52:47 +0200 Subject: [PATCH 4/5] Switch to ES 9 and add test case to CI --- zammad/ci/full-values.yaml | 6 ++---- zammad/values.yaml | 3 +-- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/zammad/ci/full-values.yaml b/zammad/ci/full-values.yaml index 5df0a1c4..f4bba191 100755 --- a/zammad/ci/full-values.yaml +++ b/zammad/ci/full-values.yaml @@ -23,10 +23,8 @@ secrets: autoWizard: enabled: true -# The bundled Elasticsearch is managed by the ECK operator and uses its own -# auto-generated credentials secret, so no existingSecret config is needed here. -# (The secrets.elasticsearch.* existing-secret path only applies to an external -# Elasticsearch, i.e. when zammadConfig.elasticsearch.enabled is false.) +elasticsearch: + nameOverride: my-local-elasticsearch ingress: enabled: true diff --git a/zammad/values.yaml b/zammad/values.yaml index 46322fe7..bacd08dd 100644 --- a/zammad/values.yaml +++ b/zammad/values.yaml @@ -707,8 +707,7 @@ initContainers: [] # (user "elastic"). The Zammad templates pick these up automatically. elasticsearch: nameOverride: elasticsearch - # Elasticsearch version. Kept in sync with the version Zammad is tested against. - version: 8.18.0 + version: 9.4.2 http: tls: selfSignedCertificate: From 34fde4ef7e9abee82a099673469bd49833df4fbf Mon Sep 17 00:00:00 2001 From: Martin Gruner Date: Tue, 30 Jun 2026 11:10:05 +0200 Subject: [PATCH 5/5] Fix test case --- zammad/ci/full-values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zammad/ci/full-values.yaml b/zammad/ci/full-values.yaml index f4bba191..7914c339 100755 --- a/zammad/ci/full-values.yaml +++ b/zammad/ci/full-values.yaml @@ -24,7 +24,7 @@ autoWizard: enabled: true elasticsearch: - nameOverride: my-local-elasticsearch + nameOverride: my-local-es ingress: enabled: true