Skip to main content

RabbitMQ Broker

BigHammer workers and APIs use RabbitMQ for Celery task queues. The broker is not part of the bighammer umbrella chart — deploy it as a separate Helm release (or point apps at an existing broker).

Prerequisites
  • External Secrets Operator installed
  • Workload Identity for ESO → Key Vault
  • Key Vault secret bh-rabbitmq-password (same password used by the broker and app pods)
  • SecretStore in bh-control-plane (created by bighammer platform chart or your bootstrap)

Choose an installation path​

OptionWhen to use
A — BigHammer bhrabbitmq chart (recommended)Standard BigHammer on AKS; chart published to ECR OCI
B — Upstream Bitnami chartYou manage Bitnami RabbitMQ yourself; align service name and secrets with bighammer
C — Existing brokerCorporate or shared RabbitMQ already running; configure bighammer workers only

All paths must expose AMQP on port 5672 and use a password synced from bh-rabbitmq-password in Key Vault (unless you override global.remoteSecrets.rabbitmq).


Option A — BigHammer bhrabbitmq chart (OCI)​

BigHammer publishes the bhrabbitmq chart to AWS ECR. Mirror to your ACR per Release Manifest & Distribution.

ItemValue
Release namebhrabbitmq (fixed — matches fullnameOverride)
Namespacebh-control-plane
Service DNSbhrabbitmq.bh-control-plane.svc.cluster.local:5672
OCI chart (BH source)oci://<bh-aws-account-id>.dkr.ecr.<bh-catalog-aws-region>.amazonaws.com/azure/bh-helm-release/bhrabbitmq
Your ACR OCIoci://<registry>.azurecr.io/bh-helm-release/bhrabbitmq
Chart versionPin to published tag from your release manifest

1. Create the password in Key Vault​

az keyvault secret set --vault-name <VAULT> \
--name bh-rabbitmq-password \
--value 'your-secure-password'

See Key Vault Secrets for the full global.remoteSecrets mapping.

2. Authenticate to ACR (after mirror)​

az acr login --name <registry>
export ACR_OCI_CHART=oci://<registry>.azurecr.io/bh-helm-release/bhrabbitmq
export CHART_VERSION=<chart-version>

3. Prepare AKS values overlay​

Create values-azure-rabbitmq.yaml:

global:
cloudProvider: azure
secretStore:
kind: SecretStore
name: azure-secret-store

externalSecrets:
enabled: true
passwordRemoteKey: bh-rabbitmq-password

auth:
existingPasswordSecret: bhrabbitmq-credentials
existingSecretPasswordKey: rabbitmq-password

storageClass:
enabled: true
name: bh-rabbitmq-sc
provisioner: disk.csi.azure.com
parameters:
skuName: Standard_LRS

persistence:
storageClass: bh-rabbitmq-sc

replicaCount: 1
ingress:
enabled: false

4. Install​

helm pull "${ACR_OCI_CHART}" --version "${CHART_VERSION}"
tar -xzf "bhrabbitmq-${CHART_VERSION}.tgz"

helm upgrade --install bhrabbitmq ./bhrabbitmq \
-f bhrabbitmq/values.yaml \
-f values-azure-rabbitmq.yaml \
-n bh-control-plane \
--create-namespace

5. Verify​

kubectl get pods -n bh-control-plane -l app.kubernetes.io/name=rabbitmq
kubectl get externalsecret -n bh-control-plane | grep rabbitmq

Option B — Upstream Bitnami RabbitMQ chart​

If you install Bitnami RabbitMQ directly:

SettingAlign with BigHammer
Service namebhrabbitmq or update worker RABBITMQ_HOST in values
Password secretExternalSecret from Key Vault bh-rabbitmq-password
Namespacebh-control-plane (recommended)

Workers expect AMQP URL pattern:

amqp://user:<password>@bhrabbitmq.bh-control-plane.svc.cluster.local:5672//

Option C — Existing RabbitMQ broker​

Configure bighammer worker values only:

global:
remoteSecrets:
rabbitmq:
password: bh-rabbitmq-password # must match broker password in Key Vault

bhcatalogworker:
env:
RABBITMQ_HOST: <your-broker-host>
RABBITMQ_PORT: "5672"

Ensure network policy and firewall allow AKS nodes → broker on TCP 5672.


Install order​

  1. Key Vault secret bh-rabbitmq-password
  2. Workload Identity + ESO (cluster preparation steps 1–2)
  3. helm upgrade --install bhrabbitmq ...
  4. Verify ExternalSecret synced before platform Helm install

Troubleshooting​

SymptomFix
ExternalSecret errorKey Vault name bh-rabbitmq-password; ESO identity has Secrets User
Connection refused from workersService DNS bhrabbitmq.bh-control-plane.svc.cluster.local:5672
Auth failureSame password in Key Vault and broker auth.existingPasswordSecret

Platform chart coupling​

The bighammer chart does not install RabbitMQ. Deploy the broker before platform workers start, or workers will crash-loop on AMQP connection errors.

Order: Cluster preparation step 5 → Platform Deployment.


TopicLink
Secrets referenceKey Vault Secrets
Mirror workflowRelease Manifest & Distribution
GCP equivalentGCP RabbitMQ Broker