For production RabbitMQ on Kubernetes, use the RabbitMQ Cluster Kubernetes Operator, with the Messaging Topology Operator alongside it. The operator keeps managing the cluster after install, including rolling restarts that wait for quorum queues, while a Helm chart renders manifests once and leaves every later change to you. The most widely used chart, Bitnami's, has also stopped tracking RabbitMQ: since Bitnami's 2025 catalog change its default image exists only in an archive that receives no updates. Helm and the operator are not mutually exclusive, and the sections below cover when each fits. Versions and dates were checked on 9 October 2026.
What the RabbitMQ Cluster Operator manages
The Cluster Operator is maintained by the RabbitMQ team under the Mozilla Public License 2.0. Version 2.23.0 shipped on 9 September 2026 and deploys RabbitMQ 4.3.4 by default. You declare one RabbitmqCluster resource and the operator creates and reconciles the StatefulSet, services, secrets and configuration behind it. The RabbitMQ documentation lists three ways to install it: the release manifest applied with kubectl apply, the kubectl rabbitmq plugin from krew, and Bitnami's packaged chart from an OCI registry.
Defaults worth knowing before the first production cluster:
- Graceful termination. A preStop hook checks the quorum status of quorum queues before a pod stops, and
terminationGracePeriodSecondsdefaults to 604800, one week, so the hook has time to finish. - No PodDisruptionBudget. The operator does not create one. Add it yourself, or a node drain can take two members at once.
- One replica by default. Set three, and keep to odd numbers.
- Storage. Each pod gets a 10Gi persistent volume unless you size it, and if the cluster has no default storage class you must name one or the pods never schedule.
- Scaling. From operator 2.16.0 a cluster can scale to zero and back to its original size. Scaling down to a smaller size is not supported.
The PodDisruptionBudget is short enough to keep next to the cluster definition:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: orders-rabbitmq
spec:
maxUnavailable: 1
selector:
matchLabels:
app.kubernetes.io/name: ordersThe operator labels every pod with app.kubernetes.io/name set to the RabbitmqCluster name, here orders.
The Messaging Topology Operator
The Messaging Topology Operator manages what lives inside a cluster created by the Cluster Operator. Its custom resources cover queues, exchanges, bindings, users, vhosts, permissions, topic permissions, policies, operator policies, federation upstreams, shovels, super streams and schema replication. Topology then sits in Git and goes through the same review as the cluster itself, instead of living in a definitions file someone imported once.
Three behaviors catch teams out. Deleting a custom resource deletes the object in RabbitMQ unless deletionPolicy is set to retain, which matters for a queue holding messages. The name, vhost and cluster reference of a resource cannot be changed after creation. And the Topology Operator does not work with a cluster that imports definitions at startup, so pick one method for each cluster.
The Bitnami RabbitMQ Helm chart after the 2025 catalog change
In July 2025 Bitnami, now part of Broadcom, announced changes to its free catalog. After brownouts from 28 August, the public docker.io/bitnami catalog was removed on 29 September 2025. Existing versioned images moved to docker.io/bitnamilegacy, where they receive no updates. The free tier now offers a smaller set of hardened images on the latest tag only, intended for development, and the full versioned catalog with patches is the paid Bitnami Secure Images product.
The chart source on GitHub stays under Apache 2.0, and packaged charts remain at docker.io/bitnamicharts, but Bitnami said they would no longer receive updates. For RabbitMQ the effect is visible in the repository: on 9 October 2026 the RabbitMQ chart's default image is bitnami/rabbitmq:4.1.3-debian-12-r1, a tag that now exists only in bitnamilegacy/rabbitmq, last updated on 13 August 2025. Bitnami's chart for the Cluster Operator still references operator 2.16.1, against 2.23.0 upstream.
If you run the Bitnami chart today, there are three routes: point it at the legacy images and accept that nobody patches them, buy Bitnami Secure Images, or move to the operator with the official RabbitMQ image. The chart was written around Bitnami's image, so swapping in another image is a test project rather than a values change. The wider supply-chain question is covered in Bitnami image security and the enterprise alternatives.
Cluster Operator vs Helm chart, side by side
The comparison most teams actually face in 2026:
| Cluster Operator | Helm chart (Bitnami) | |
|---|---|---|
| Maintained by | The RabbitMQ team, MPL 2.0 | Bitnami; chart source Apache 2.0, packaged charts no longer updated |
| After install | Reconciles the cluster continuously | Nothing until the next helm upgrade |
| Rolling restarts | preStop hook checks quorum before each pod stops | Whatever the StatefulSet update strategy does |
| Topology | Messaging Topology Operator custom resources | Definitions file or manual setup |
| Image | Official RabbitMQ image, current release by default | Bitnami image, now legacy or paid |
| Needs | Permission to install CRDs and a cluster-scoped operator | No CRDs or cluster-scoped operator |
Helm still has a place. Teams that standardize every deployment on Helm can template the RabbitmqCluster and topology resources in their own chart and let the operator do the work, which keeps one deployment tool without giving up reconciliation.
Upgrades: the operator and RabbitMQ are separate changes
There are two kinds of upgrade, and they should never share a change window.
- Upgrading the operator. Existing clusters keep the defaults written into their manifests by the previous operator version. Some operator releases do restart RabbitMQ pods, and the documentation says any release that triggers a rolling restart notes it in its release notes. Read them before every operator upgrade, and upgrade the operator on its own.
- Upgrading RabbitMQ. Change the image in the
RabbitmqClusterspec and apply it, and the operator rolls the cluster pod by pod. The version path is the same as anywhere else: supported upgrade hops, feature flags enabled before the next major, and Erlang compatibility. Upgrading RabbitMQ 3.x to 4.x without downtime covers the sequence.
With a plain Helm chart, helm upgrade re-renders the StatefulSet and Kubernetes restarts pods in its own order. The quorum checks, the pacing and the rollback plan are yours to build.
Quorum queues, storage and peer discovery on Kubernetes
Quorum queues replicate across a majority of members, which is why three replicas is the practical minimum. One pod can be lost to a drain or a node failure while queues keep a majority. The operator's preStop hook and a PodDisruptionBudget of one together stop Kubernetes from taking the second.
Storage decides how fast a lost pod comes back. Each member needs its own persistent volume, and zone-bound block storage can only reattach in its own zone, so a node failure can leave a pod waiting on its volume. Spread pods across nodes and zones with anti-affinity, and use a storage class with WaitForFirstConsumer binding so each volume lands where its pod is scheduled.
Peer discovery changed in RabbitMQ 4.1. Since then only the pod with the lowest ordinal, almost always the one ending in -0, may form a new cluster, and the other pods keep trying to join it. If that pod cannot schedule on a fresh install, the others wait. The operator and the common charts configure discovery for you, which is one more reason not to hand-write the StatefulSet.
The incidents we are called for most, drains that take the quorum leader, volumes that will not reattach, OOM kills before the memory alarm and liveness probes that restart a recovering node, are covered with fixes in RabbitMQ on Kubernetes and OpenShift.
When to choose which
- Use the Cluster Operator for any production cluster where you can install CRDs. Add the Topology Operator if more than one team declares queues or users.
- Use Helm to drive the operator if Helm is your standard: template the custom resources, not a StatefulSet.
- Keep a standalone Helm chart only for short-lived test environments, or where cluster-scoped operators are forbidden, and own the images and upgrade sequencing yourself.
- Plan a move off the Bitnami chart if you run it in production, because its default images no longer receive fixes.
The full sequence of decisions, from storage classes to network policy, is in the RabbitMQ on Kubernetes guide. AceMQ provides RabbitMQ support on Kubernetes, including migrations from Helm charts to the operator, and Kubernetes and container support for the platform underneath.
Sources
- RabbitMQ — Kubernetes Operators overview
- RabbitMQ — Installing the Cluster Operator
- RabbitMQ — Using the Cluster Operator
- RabbitMQ — Upgrading the Cluster Operator
- RabbitMQ — Using the Messaging Topology Operator
- RabbitMQ — Cluster formation and peer discovery
- GitHub — rabbitmq/cluster-operator releases
- GitHub — rabbitmq/messaging-topology-operator
- Bitnami — Upcoming changes to the Bitnami catalog (announcement)
- GitHub — bitnami/charts RabbitMQ chart
- Docker Hub — bitnamilegacy/rabbitmq
Frequently Asked Questions
What is the RabbitMQ Cluster Operator?
It is the Kubernetes operator maintained by the RabbitMQ team under the Mozilla Public License 2.0. You declare a RabbitmqCluster resource and it creates and keeps reconciling the StatefulSet, services, secrets and configuration, including rolling restarts that check quorum queue status before each pod stops.
Is there an official RabbitMQ Helm chart?
The RabbitMQ documentation lists three ways to install the Cluster Operator: the release manifest, the kubectl rabbitmq plugin, and Bitnami's packaged chart from an OCI registry. It does not list a Helm chart for RabbitMQ itself from the RabbitMQ team; the widely used chart is Bitnami's.
Is the Bitnami RabbitMQ Helm chart still maintained?
The chart source remains on GitHub under Apache 2.0, but after Bitnami's 2025 catalog change the packaged charts no longer receive updates and versioned images moved to bitnamilegacy. On 9 October 2026 the chart's default image was RabbitMQ 4.1.3, a tag last updated on 13 August 2025.
Can I use Helm with the RabbitMQ Cluster Operator?
Yes. Install the operator, then template the RabbitmqCluster and Messaging Topology Operator resources in your own Helm chart. Helm handles packaging and the operator handles the cluster lifecycle.
Does the RabbitMQ Cluster Operator create a PodDisruptionBudget?
No. Create one yourself with maxUnavailable set to 1 so a node drain cannot remove two cluster members at the same time.
Can I scale a RabbitMQ cluster down with the operator?
Not to a smaller size. From operator 2.16.0 you can scale a cluster to zero and back to its original replica count, but reducing, for example, from five replicas to three is not supported.
What does the Messaging Topology Operator manage?
Queues, exchanges, bindings, users, vhosts, permissions, topic permissions, policies, operator policies, federation upstreams, shovels, super streams and schema replication, declared as Kubernetes custom resources against a cluster created by the Cluster Operator.
Go deeper on RabbitMQ
- GuideThe RabbitMQ Performance Tuning GuideRead the guide
- GuideThe RabbitMQ Streams GuideRead the guide
- GuideThe RabbitMQ Reliability Guide: Ten Failure Patterns and Their FixesRead the guide
- GuideThe RabbitMQ Disaster Recovery GuideRead the guide
- GuideThe RabbitMQ Clustering and Sizing GuideRead the guide
- GuideThe RabbitMQ on Kubernetes GuideRead the guide
- GuideThe RabbitMQ Migration GuideRead the guide
- GuideThe RabbitMQ Security and Hardening GuideRead the guide
- GuideThe RabbitMQ Monitoring and Alerting GuideRead the guide
- GuideRabbitMQ for AI Agents: Patterns, Setup and PitfallsRead the guide
- GuideCelery and RabbitMQ for LLM Task QueuesRead the guide
- GuideAgent-to-Agent Messaging over AMQP and RabbitMQRead the guide
- ComparisonRabbitMQ vs Amazon SQS ComparedSee the comparison
- ComparisonRabbitMQ vs Redis ComparedSee the comparison
- ComparisonManaged RabbitMQ Options ComparedSee the comparison
- ComparisonMessage Broker Support Options ComparedSee the comparison
- ComparisonRabbitMQ vs Kafka vs NATS for AI AgentsSee the comparison
- ResearchWhat Breaks in Production RabbitMQ: 145 Support Tickets, 2023 to 2026Read the research
- ResearchRabbitMQ in Production 2026: What 22 Assessed Estates Actually RunRead the research
- ResearchThe RabbitMQ CVE Register, 2026 EditionRead the research