You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Redis and RabbitMQ run single-replica. A node failure means losing the cache and the
message broker until rescheduling; a drain means a full outage of both. Redis persistence is
intentionally disabled (appendonly no, save "") but that decision is undocumented.
Proposal (investigation, decision record as output)
Primary direction: adopt existing, maintained charts/operators instead of extending our own
templates. The helmfile composition makes this natural — a third-party chart is just another
release in helmfile.yaml.gotmpl (like shopsys-infra today), values stay in our
environments layering, and we stop maintaining Redis/RabbitMQ manifests ourselves.
Candidates to evaluate:
RabbitMQ
RabbitMQ Cluster Operator
(official, free) — cluster CRD, quorum queues, rolling upgrades; needs the operator as a
cluster-wide prerequisite
Bitnami rabbitmq chart — ⚠️ see the Bitnami caveat below
keep our StatefulSet only if the decision is "single replica is fine"
keep our Deployment if the decision is "ephemeral single-replica cache is fine"
(then just document it — cheapest correct outcome)
⚠️ Bitnami caveat (2025): Bitnami moved its free public images to the unmaintained bitnamilegacy registry; the charts default to images that now require a Bitnami Secure
Images subscription. Evaluating Bitnami charts must include the image-source question
(subscription, legacy tags, or overriding with upstream redis/rabbitmq images — which the
charts support but which loses part of their value).
Evaluation criteria
migration path from today's installs: resource names/labels differ (redis, rabbitmq, PVC rabbitmq-data-rabbitmq-0) → RabbitMQ data migration or blue/green
switchover needed; Service names/DSNs consumed by the app must stay stable
(redis:6379, rabbitmq:5672) or be remapped via values
parity constraints: management ingress + IP whitelist, prometheus-exporter labels,
the deploy-order guarantee (infra release ready before migration hook) must hold for
whatever replaces shopsys-infra
does the shop actually need HA here? (failure-mode analysis first — the outcome may be
"document and accept single replica", which keeps our small templates and costs nothing)
Deliverable: decision record in docs/ + follow-up implementation issues per outcome.
Tasks
Failure-mode analysis (what breaks for the shop when redis/rabbitmq are down N minutes)
Evaluate RabbitMQ Cluster Operator and a Redis chart/operator against the criteria above
(incl. the Bitnami image-source question)
Migration/switchover plan sketch for existing installs
Context
Redis and RabbitMQ run single-replica. A node failure means losing the cache and the
message broker until rescheduling; a drain means a full outage of both. Redis persistence is
intentionally disabled (
appendonly no,save "") but that decision is undocumented.Proposal (investigation, decision record as output)
Primary direction: adopt existing, maintained charts/operators instead of extending our own
templates. The helmfile composition makes this natural — a third-party chart is just another
release in
helmfile.yaml.gotmpl(likeshopsys-infratoday), values stay in ourenvironments layering, and we stop maintaining Redis/RabbitMQ manifests ourselves.
Candidates to evaluate:
RabbitMQ
(official, free) — cluster CRD, quorum queues, rolling upgrades; needs the operator as a
cluster-wide prerequisite
rabbitmqchart —Redis
redischart (master-replica + Sentinel) —Spotahome redis-operator
(then just document it — cheapest correct outcome)
bitnamilegacyregistry; the charts default to images that now require a Bitnami SecureImages subscription. Evaluating Bitnami charts must include the image-source question
(subscription, legacy tags, or overriding with upstream
redis/rabbitmqimages — which thecharts support but which loses part of their value).
Evaluation criteria
redis,rabbitmq, PVCrabbitmq-data-rabbitmq-0) → RabbitMQ data migration or blue/greenswitchover needed; Service names/DSNs consumed by the app must stay stable
(
redis:6379,rabbitmq:5672) or be remapped via values(we already scrape exporters — [observability] ServiceMonitors, logging annotations and deploy metadata #39)
prometheus-exporterlabels,the deploy-order guarantee (infra release ready before migration hook) must hold for
whatever replaces
shopsys-infra"document and accept single replica", which keeps our small templates and costs nothing)
Deliverable: decision record in
docs/+ follow-up implementation issues per outcome.Tasks
(incl. the Bitnami image-source question)