Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6edd4e8
PAC-3765 - Upgrade crossplane pack to 2.2.0
edwin-villa Feb 24, 2026
7286b29
Merge pull request #1 from edwin-villa/PAC-3765
edwin-villa Feb 24, 2026
0ce7b5c
PAC-3779 - Upgrade trivy pack to 0.21.1
edwin-villa Feb 25, 2026
6093546
Merge branch 'spectrocloud:main' into main
edwin-villa Feb 25, 2026
ccfb6c3
PAC-3765 - Upgrade crossplane pack to 2.2.0
edwin-villa Feb 25, 2026
773d2ee
Merge branch 'main' into main
vishwanaths Feb 27, 2026
b0fb97a
PAC-3779 - Upgrade trivy pack to 0.21.1
edwin-villa Feb 27, 2026
b6960dd
PAC-3779 - Upgrade trivy pack to 0.21.1
edwin-villa Feb 27, 2026
8e37461
Merge pull request #2 from edwin-villa/PAC-3779
edwin-villa Mar 2, 2026
8111137
Merge branch 'spectrocloud:main' into main
edwin-villa Mar 2, 2026
be17e23
Merge branch 'spectrocloud:main' into main
edwin-villa Apr 27, 2026
7aa4e14
PAC-4030 - Upgrade fluentbit pack to 5.0.3
edwin-villa Apr 29, 2026
edc3df9
PAC-4030 - Upgrade fluentbit pack to 5.0.3
edwin-villa Apr 29, 2026
d7e12f8
Remove cks-trivy folder, not part of this PR
edwin-villa Apr 29, 2026
cf9b046
Merge branch 'spectrocloud:main' into main
edwin-villa May 21, 2026
b47e842
Merge branch 'spectrocloud:main' into main
edwin-villa May 27, 2026
10429a7
PAC-4131 - Upgrade crossplane pack to 2.3.0
edwin-villa May 27, 2026
d72aa59
Merge pull request #4 from edwin-villa/crossplane-2.3.0
edwin-villa May 28, 2026
f4064ba
Upgrade kubevious pack to 1.2.2
edwin-villa Jun 10, 2026
136c4a0
Merge branch 'spectrocloud:main' into main
edwin-villa Jun 12, 2026
ee3b8dd
Merge pull request #5 from edwin-villa/kubevious-1.2.2
edwin-villa Jun 12, 2026
cc69223
Merge branch 'spectrocloud:main' into main
edwin-villa Jun 16, 2026
2eb15a5
Upgrade fluentbit pack to 5.0.7
edwin-villa Jun 16, 2026
ded153a
Merge pull request #6 from edwin-villa/fluentbit-5.0.7
edwin-villa Jun 18, 2026
87b5f6b
Update values.yaml
edwin-villa Jun 19, 2026
5de1fb9
Upgrade stormforge-agent pack to 2.28.2
edwin-villa Jun 25, 2026
14947c2
Merge pull request #7 from edwin-villa/stormforge-agent-2.28.2
edwin-villa Jun 25, 2026
29b889d
Merge branch 'spectrocloud:main' into main
edwin-villa Jun 25, 2026
66c20cd
Merge branch 'spectrocloud:main' into main
edwin-villa Jul 2, 2026
0d48516
fix PR
edwin-villa Jul 17, 2026
b44b22c
Upgrade rabbitmq pack to 4.3.2
edwin-villa Jul 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 121 additions & 0 deletions packs/rabbitmq-4.3.2/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# RabbitMQ

This pack installs the [RabbitMQ Cluster Kubernetes Operator](https://www.rabbitmq.com/kubernetes/operator/operator-overview)
(and, by default, the companion RabbitMQ Messaging Topology Operator) via Helm, and
prepares the cluster to run RabbitMQ `4.3.2`.

Team RabbitMQ maintains the Cluster Operator as the officially recommended way to run
RabbitMQ on Kubernetes. It extends the Kubernetes API with a `RabbitmqCluster` custom
resource and embeds RabbitMQ-specific operational knowledge (clustering, quorum
queues, safe rolling upgrades, TLS, plugin management, feature flags) directly into
the control plane, instead of relying on a generic StatefulSet template. Generic
community/vendor charts that deploy RabbitMQ as a plain StatefulSet — most notably the
Bitnami `rabbitmq` chart — are explicitly discouraged by Team RabbitMQ for production
use, and since Bitnami moved most of its free catalog behind "Bitnami Secure Images"
in August 2025, previously-packaged Bitnami charts (including
`bitnami/rabbitmq-cluster-operator`) are frozen and may not deploy correctly without a
paid subscription.

The official `rabbitmq/cluster-operator` repository does not publish a Helm chart
itself — Team RabbitMQ's documented installation method is
`kubectl apply -f cluster-operator.yml`. Since this pack packages the Operator as a
Helm chart, it uses the
[CloudPirates-io/helm-charts](https://github.com/CloudPirates-io/helm-charts/tree/main/charts/rabbitmq-cluster-operator)
chart, which faithfully re-packages the same upstream operator images
(`ghcr.io/rabbitmq/cluster-operator`, `ghcr.io/rabbitmq/messaging-topology-operator`)
as a signed, actively-maintained Helm chart.

This pack installs only the operators. It does **not** deploy a RabbitMQ cluster
instance — see [Usage](#usage) for how to create one pinned to `4.3.2`.

## Prerequisites

- Kubernetes 1.29+
- Helm 3.8+

## Parameters

| **Parameter** | **Description** | **Type** | **Default Value** | **Required** |
|---|---|---|---|---|
| `clusterOperator.watchAllNamespaces` | Watch `RabbitmqCluster` resources in all namespaces | Bool | `true` | No |
| `clusterOperator.replicaCount` | Cluster Operator replica count | Int | `1` | No |
| `clusterOperator.webhook.enabled` | Enable the `RabbitmqCluster` admission webhook (requires TLS serving certificates) | Bool | `false` | No |
| `msgTopologyOperator.enabled` | Deploy the RabbitMQ Messaging Topology Operator alongside the Cluster Operator | Bool | `true` | No |
| `msgTopologyOperator.replicaCount` | Messaging Topology Operator replica count | Int | `1` | No |
| `useCertManager` | Use cert-manager to issue webhook TLS certs instead of chart-generated ones | Bool | `false` | No |

Refer to the vendored chart's own README at
[`charts/rabbitmq-cluster-operator/README.md`](charts/rabbitmq-cluster-operator/README.md)
for the complete parameter reference.

## Upgrade

This is the initial version of this pack, so there is no prior version to upgrade
from.

> [!CAUTION]
> When upgrading this pack to a future version with a newer Cluster Operator release,
> be aware that the Operator never upgrades the RabbitMQ server version of existing
> `RabbitmqCluster` instances on your behalf. The RabbitMQ version running in a
> cluster is controlled exclusively by that cluster's `spec.image` field, independent
> of the Operator's own version. A newer Operator release only changes the *default*
> image used for newly-created `RabbitmqCluster` resources that don't set `spec.image`
> explicitly.

## Usage

Add the **RabbitMQ** pack to a cluster profile as an add-on layer. The default
configuration deploys the Cluster Operator and Messaging Topology Operator with no
required overrides.

Once the pack's operator pods are `Running`, create a RabbitMQ cluster by adding a new
manifest layer with a `RabbitmqCluster` custom resource, pinning `spec.image` to
`4.3.2`:

```yaml
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
name: my-rabbitmq
namespace: rabbitmq-system
spec:
replicas: 3
image: rabbitmq:4.3.2-management-alpine
resources:
requests:
cpu: 1
memory: 2Gi
limits:
cpu: 1
memory: 2Gi
persistence:
storage: 20Gi
```

> [!CAUTION]
> Do not set `persistence.storageClassName: ""` (empty string). In Kubernetes an
> explicit empty string means "do not dynamically provision — bind only to a
> pre-existing static PersistentVolume", not "use the cluster's default
> StorageClass". Omit the field entirely to use the cluster's default StorageClass,
> or set it to an explicit StorageClass name (check available classes with
> `kubectl get storageclass`). Setting it to `""` leaves the `RabbitmqCluster`
> stuck with `ALLREPLICASREADY: False` and its PVCs permanently `Pending` with
> `no persistent volumes available for this claim and no storage class is set`.

The image tag above (`4.3.2-management-alpine`) is also declared in
[`values.yaml`](values.yaml) under `pack.content.images`, so it is available to
airgapped/private-registry environments even though the chart itself never applies
the `RabbitmqCluster` resource.

See [Using the RabbitMQ Cluster Kubernetes Operator](https://www.rabbitmq.com/kubernetes/operator/using-operator)
for the full list of `RabbitmqCluster` spec fields (TLS, persistence, resource
limits, affinity, plugins, and more).

## References

- [RabbitMQ Cluster Kubernetes Operator overview](https://www.rabbitmq.com/kubernetes/operator/operator-overview)
- [Installing the RabbitMQ Cluster Operator](https://www.rabbitmq.com/kubernetes/operator/install-operator)
- [Using the RabbitMQ Cluster Kubernetes Operator](https://www.rabbitmq.com/kubernetes/operator/using-operator)
- [rabbitmq/cluster-operator on GitHub](https://github.com/rabbitmq/cluster-operator)
- [rabbitmq/messaging-topology-operator on GitHub](https://github.com/rabbitmq/messaging-topology-operator)
- [Helm chart source — CloudPirates-io/helm-charts](https://github.com/CloudPirates-io/helm-charts/tree/main/charts/rabbitmq-cluster-operator)
Binary file not shown.
74 changes: 74 additions & 0 deletions packs/rabbitmq-4.3.2/charts/rabbitmq-cluster-operator/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Changelog

All notable changes to this chart will be documented in this file.

## [0.4.0] - 2026-07-06

- [rabbitmq-cluster-operator] Bump cluster-operator to v2.22.1 and messaging-topology-operator to v1.19.3
- [rabbitmq-cluster-operator] Bump default RabbitMQ image to 4.3.2-management-alpine and default-user-credential-updater to v1.0.15
- [rabbitmq-cluster-operator] Align cluster-operator RBAC with upstream v2.22.x: add the `patch` verb on `rabbitmqclusters/status`, and add the `configmaps` rule plus the `patch` verb on `events` to the namespaced leader-election Role
- [rabbitmq-cluster-operator] Add an optional RabbitmqCluster admission webhook (mutating + validating) for the cluster operator, introduced upstream in v2.22.0. It is **disabled by default** (`clusterOperator.webhook.enabled=false`); when disabled the operator is started with `ENABLE_WEBHOOKS=false`, preserving the chart's pre-v2.22.0 behavior. See the "RabbitmqCluster admission webhook" section of the README for enablement instructions
- [rabbitmq-cluster-operator] Refresh CRDs from upstream cluster-operator v2.22.1 (new `status.deprecatedFeaturesUsed` field) and messaging-topology-operator v1.19.3

> [!IMPORTANT]
> Upgrading the cluster operator to v2.22.1 causes a **rolling restart of the underlying StatefulSets** of every managed RabbitmqCluster. To control the timing, pause reconciliation before upgrading and resume it once the operator is ready.
>
> v2.22.0 also switched the RabbitMQ startup probe from an exec check to an HTTP check, which requires RabbitMQ `4.2.4+` or `4.3.0+`. The chart default (`4.3.2-management-alpine`) satisfies this; clusters pinned to older RabbitMQ versions must set the `rabbitmq.com/legacy-startup-probe: "true"` annotation.

## [0.3.0] - 2026-05-16

- [rabbitmq-cluster-operator] Move operator images to ghcr.io (rabbitmqoperator/* on Docker Hub is no longer published)
- [rabbitmq-cluster-operator] Bump cluster-operator to v2.21.0 and messaging-topology-operator to v1.19.2
- [rabbitmq-cluster-operator] Bump default-user-credential-updater to v1.0.14 and default RabbitMQ image to 4.2.6-management-alpine (matches cluster-operator v2.21.0 defaults)
- [rabbitmq-cluster-operator] Switch operator probes to upstream /healthz and /readyz on a dedicated health port (containerPorts.health, default 8081); required by messaging-topology-operator v1.19.0+
- [rabbitmq-cluster-operator] Messaging-topology-operator metrics now served over HTTPS on port 8443; PodMonitor / ServiceMonitor configured with scheme: https and insecureSkipVerify
- [rabbitmq-cluster-operator] Rename ValidatingWebhookConfiguration webhook entries to upstream v1.19 names (e.g. vbinding-v1beta1.kb.io)
- [rabbitmq-cluster-operator] Align messaging-topology-operator RBAC with upstream v1.19.1's events fix ([rabbitmq/messaging-topology-operator#1145](https://github.com/rabbitmq/messaging-topology-operator/pull/1145)): replace the legacy core API events rule on the ClusterRole with the `events.k8s.io` group, and add the `patch` verb on the namespaced Role's events rule
- [rabbitmq-cluster-operator] Refresh CRDs from upstream cluster-operator v2.21.0 and messaging-topology-operator v1.19.2

## [0.2.2] - 2026-03-27

- Update CRDs and remove ALPHA tag (#1191) ([3aa66d70](https://github.com/CloudPirates-io/helm-charts/commit/3aa66d70))

## [0.2.1] - 2026-02-24

- rabbitmq-cluster-operator: Fix template error when namespaced watch is defined. (#1052) ([7d12ccb6](https://github.com/CloudPirates-io/helm-charts/commit/7d12ccb6))

## [0.2.0] - 2026-02-16

- [universal]: Bump all charts to common 2.2.0 (#1020) ([cbeb5b19](https://github.com/CloudPirates-io/helm-charts/commit/cbeb5b19))

## [0.1.7] - 2026-02-12

- [rabbitmqoperator/messaging-topology-operator] Update image to v1.18.3 (#981) ([60ee56c7](https://github.com/CloudPirates-io/helm-charts/commit/60ee56c7))

## [0.1.6] - 2026-02-12

- [rabbitmqoperator/cluster-operator] Update image to v2.19.1 (#982) ([6cca1d5e](https://github.com/CloudPirates-io/helm-charts/commit/6cca1d5e))
- [all]: Update documentation to include proper cosign public key ([e42365dc](https://github.com/CloudPirates-io/helm-charts/commit/e42365dc))

## [0.1.5] - 2026-01-28

- [all]: Update every chart to newest common (#920) ([f8d134d5](https://github.com/CloudPirates-io/helm-charts/commit/f8d134d5))

## [0.1.4] - 2026-01-19

- update to latest version (#852) ([373255fc](https://github.com/CloudPirates-io/helm-charts/commit/373255fc))

## [0.1.3] - 2026-01-09

- Add issuer and extra-list templates that were missing (#825) ([219ab178](https://github.com/CloudPirates-io/helm-charts/commit/219ab178))

## [0.1.2] - 2026-01-05

- Fix securityContext rendering for operators (#793) ([c513db8a](https://github.com/CloudPirates-io/helm-charts/commit/c513db8a))

## [0.1.1] - 2025-12-16

- update to latest version and fix schema issues (#752) ([7f9f9d72](https://github.com/CloudPirates-io/helm-charts/commit/7f9f9d72))
- change file-ending of artifacthub-repo.yaml to .yml (#679) ([1d59052c](https://github.com/CloudPirates-io/helm-charts/commit/1d59052c))

## [0.1.0] - 2025-12-01

- Initial release

Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
dependencies:
- name: common
repository: oci://registry-1.docker.io/cloudpirates
version: 2.2.0
digest: sha256:a38dfdc974869f987d4e07c1a33c03db67fe20a37aba7d0f06c81f3adc220531
generated: "2026-02-16T16:49:38.912908+01:00"
48 changes: 48 additions & 0 deletions packs/rabbitmq-4.3.2/charts/rabbitmq-cluster-operator/Chart.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
annotations:
artifacthub.io/category: streaming-messaging
artifacthub.io/changes: |-
- kind: changed
description: Add missing helper function
artifacthub.io/containsSecurityUpdates: "false"
artifacthub.io/links: |
- name: RabbitMQ
url: https://www.rabbitmq.com
- name: Helm Chart
url: https://github.com/CloudPirates-io/helm-charts/tree/main/charts/rabbitmq-cluster-operator
- name: RabbitMQ Cluster Operator
url: https://github.com/rabbitmq/cluster-operator
- name: Maintainer CloudPirates
url: https://www.cloudpirates.io
artifacthub.io/signKey: |
fingerprint: 6917f1a88c122cbb1de5aa55457752135bdcf95a
url: https://raw.githubusercontent.com/CloudPirates-io/helm-charts/refs/heads/main/cosign.pub
license: Apache-2.0
apiVersion: v2
appVersion: 2.22.1
dependencies:
- name: common
repository: oci://registry-1.docker.io/cloudpirates
version: 2.2.0
description: Kubernetes operator to deploy and manage RabbitMQ clusters.
home: https://www.rabbitmq.com
icon: https://a.storyblok.com/f/143071/512x512/aa1bd68288/rabbitmq-logo.svg
keywords:
- rabbitmq-cluster-operator
- rabbitmq
- operator
- message broker
- amqp
- messaging
- queue
maintainers:
- email: hello@cloudpirates.io
name: CloudPirates GmbH & Co. KG
url: https://www.cloudpirates.io
- name: Gasper Oblak
url: https://about.bl4ko.com
name: rabbitmq-cluster-operator
sources:
- https://github.com/CloudPirates-io/helm-charts/tree/main/charts/rabbitmq-cluster-operator
- https://github.com/rabbitmq/cluster-operator
type: application
version: 0.4.2
Loading
Loading