RabbitMQ (bundled subchart)
For demo and development installs, the chart can bring up its own RabbitMQ. For production, use the RabbitMQ Cluster Operator.
The subchart is CloudPirates rabbitmq,
which runs the official docker.io/rabbitmq image.
Enabling it
1 2 3 4 5 | |
The chart's default values already declare the plugins and ports Waldur needs.
Plugins and ports
Waldur needs four ports on the broker Service:
| port | purpose | required by |
|---|---|---|
| 5672 | AMQP | Celery broker URL |
| 15672 | management API | RABBITMQ["MANAGEMENT_PORT"] |
| 61613 | STOMP | RABBITMQ["STOMP_PORT"], set when waldur.rabbitmqEvents.stompEnabled |
| 15674 | web-STOMP | backend of templates/ingress-rmq-ws.yaml |
5672 and 15672 are always present. The other two come from the plugins, and this
chart does not derive Service ports from plugin names — so extraPorts has
to declare them explicitly alongside additionalPlugins:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | |
Drop an entry from either list and the STOMP event stream stops working without
helm install failing.
Credentials
rabbitmq.auth.username and rabbitmq.auth.password are copied into the
waldur-secret Secret by templates/secrets.yaml, and the application reads them
from there. When pointing at a broker deployed outside the chart, set
rabbitmq.enabled: false plus rabbitmq.host and rabbitmq.secret.* instead.
Installing RabbitMQ separately
1 2 | |
That produces a Service named rmq-rabbitmq, the default of rabbitmq.host.
Migrating from the Bitnami subchart
An existing Bitnami volume cannot be reused, even though the PVC name is the
same. Bitnami stored mnesia at /bitnami/rabbitmq/mnesia; the official image
uses /var/lib/rabbitmq. Reattaching the old claim gives RabbitMQ an empty
mnesia directory — it starts clean, with no queues, users or vhosts.
For a dev/test broker that is usually fine: delete the old PVC and let the new one initialise. For anything with durable state, drain the queues first or export definitions from the management API and re-import them after the switch.
Values that changed shape: extraPlugins (a space-separated string) became
additionalPlugins (a list); extraContainerPorts and service.extraPorts
merged into a single extraPorts list; clustering.forceBoot has no equivalent.