Redis sentinel sentinels k8s-service#441
Conversation
|
@klml CI seems to have issues with this change, can you check please? |
|
@klml For some reason this CI job times out when testing the "full" scenarios with sentinel enabled. I'm not sure why. Here's a comparison job that works ok: https://github.com/zammad/zammad-helm/actions/runs/28149865051/job/83365177413 Installing it locally seems to work well. |
|
Here's an AI analysis of the problem. Can you please rebase and go over your fix? You need to revert the dropping of internal sentinel handling, and instead only correct the name that gets used. Root causeThis is a release-name mismatch introduced by the What the PR changed (_helpers.tpl): the Now it always uses the static list, which defaults to the hardcoded Why that breaks only in CI: So in CI the hostname Why it works for you locally: you install with the release name Note all the other subchart hosts in the same file (postgres FixWhen the bundled Redis subchart is enabled, the sentinel host must be derived from (The What the PR changed (_helpers.tpl): the REDIS_SENTINELS env var used to be release-name-aware when the bundled Redis subchart was enabled:
Why that breaks only in CI: ct install does not install the release as zammad. It generates a release name of the form zammad- (the namespace is pinned to zammad via ct.yaml, but the release name is randomized). I rendered the full scenario with a ct-style name to demonstrate: Thing Value Why it works for you locally: you install with the release name zammad, so zammad-redis-sentinel resolves to the real zammad-redis-sentinel service. The mismatch is invisible at release name zammad — it only surfaces under any other release name, which is exactly what ct uses. Note all the other subchart hosts in the same file (postgres {{ .Release.Name }}-postgresql, memcached {{ .Release.Name }}-memcached, and the standalone REDIS_URL at line 224 which still uses {{ .Release.Name }}-redis) remain release-name-aware — which is why everything except sentinel passes in CI. Fix
|
| {{- if .Values.zammadConfig.redis.sentinel.enabled }} | ||
| - name: REDIS_SENTINELS | ||
| {{- if .Values.zammadConfig.redis.enabled }} | ||
| value: "{{ .Release.Name }}-redis" |
There was a problem hiding this comment.
This cannot get dropped, instead you can just change the name that is used here to point to another service.
There was a problem hiding this comment.
Probably value: "{{ .Release.Name }}-redis-sentinel"
What this PR does / why we need it
Removes the switch to use the vanilla k8s-service as "sentinels" when sentinel is activated.
Checklist