> ## Documentation Index
> Fetch the complete documentation index at: https://docs.controlplane.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RabbitMQ

> Deploy RabbitMQ on Control Plane using the Template Catalog. Covers configuration, volumes, scaling, and single-replica message broker with built-in management UI.

## Overview

RabbitMQ is a widely-used open-source message broker supporting AMQP and other messaging protocols. This template deploys a single-replica RabbitMQ instance with persistent storage and a built-in management UI.

<Note>
  This template does not create a GVC. You must deploy it into an existing GVC.
</Note>

### What Gets Created

* **Stateful Workload** — A single-replica RabbitMQ container with the management plugin enabled.
* **Volume Set** — Persistent storage for RabbitMQ node data at `/var/lib/rabbitmq`.
* **Secret** — An opaque secret containing the `rabbitmq.conf` configuration file, mounted into the container at startup.
* **Identity & Policy** — An identity bound to the workload with `reveal` access to the config secret.

## Installation

To install, follow the instructions for your preferred method:

<CardGroup cols={2}>
  <Card title="UI" href="/template-catalog/install-manage/ui" icon="laptop">
    Browse, install, and manage templates visually
  </Card>

  <Card title="CLI" href="/template-catalog/install-manage/cli" icon="terminal">
    Manage templates from your terminal
  </Card>

  <Card title="Terraform" href="/template-catalog/install-manage/terraform" icon={<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><g fill-rule="evenodd"><path d="M77.941 44.5v36.836L46.324 62.918V26.082zm0 0" fill="#5c4ee5"/><path d="M81.41 81.336l31.633-18.418V26.082L81.41 44.5zm0 0" fill="#4040b2"/><path d="M11.242 42.36L42.86 60.776V23.941L11.242 5.523zm0 0M77.941 85.375L46.324 66.957v36.82l31.617 18.418zm0 0" fill="#5c4ee5"/></g></svg>}>
    Declare templates in your Terraform configurations
  </Card>

  <Card
    title="Pulumi"
    href="/template-catalog/install-manage/pulumi"
    icon={<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" id="Pulumi-Icon--Streamline-Svg-Logos" height="24" width="24">
    <desc>
        Pulumi Icon Streamline Icon: https://streamlinehq.com
    </desc>
    <path fill="#f26e7e" d="M4.683025 13.3318c0.869125 -0.5018 0.870575 -2.1264 0.003225 -3.62865s-2.27504 -2.313275 -3.1441725 -1.811475C0.672945 8.3935 0.6715 10.0181 1.53885 11.52035c0.86735 1.502275 2.27505 2.313275 3.144175 1.81145Zm0.0052 3.2167c0.86735 1.502275 0.865925 3.126875 -0.003225 3.628675 -0.86915 0.5018 -2.2768275 -0.309225 -3.144175 -1.81145 -0.8673525 -1.50225 -0.8659075 -3.126875 0.003225 -3.628675 0.8691325 -0.5018 2.276825 0.309225 3.144175 1.81145Zm5.922875 3.4243c0.86735 1.50225 0.8659 3.126775 -0.003225 3.62875 -0.869125 0.501775 -2.27685 -0.309325 -3.1442 -1.81155 -0.867325 -1.50225 -0.865875 -3.12685 0.00325 -3.628675 0.869125 -0.5018 2.276825 0.309225 3.144175 1.811475Zm-0.001925 -6.845275c0.86735 1.50225 0.8659 3.12685 -0.003225 3.628675 -0.869125 0.5018 -2.276825 -0.309225 -3.144175 -1.811475 -0.86735 -1.50225 -0.8659 -3.12685 0.003225 -3.62865 0.869125 -0.501825 2.276825 0.3092 3.144175 1.81145Z" stroke-width="0.25"></path>
    <path fill="#8a3391" d="M22.45775 11.524125c0.86725 -1.502225 0.865925 -3.12685 -0.003225 -3.62865 -0.869125 -0.501825 -2.276825 0.3092 -3.144175 1.811475 -0.86735 1.50225 -0.8659 3.126825 0.003225 3.62865 0.869125 0.501825 2.276825 -0.3092 3.144175 -1.811475Zm0.000175 3.2151c0.869075 0.5018 0.870625 2.1264 0.003225 3.62865 -0.86735 1.50225 -2.27505 2.313275 -3.144175 1.81145 -0.869125 -0.5018 -0.870575 -2.126425 -0.003225 -3.62865 0.86735 -1.50225 2.27505 -2.313275 3.144175 -1.81145ZM16.536225 18.157875c0.86915 0.501825 0.8706 2.126425 0.00325 3.628675 -0.86735 1.502125 -2.275075 2.313225 -3.1442 1.81145 -0.869125 -0.50175 -0.870575 -2.126425 -0.003225 -3.62865 0.867375 -1.502275 2.27505 -2.3133 3.144175 -1.811475Zm-0.003325 -6.843775c0.869125 0.5018 0.870575 2.126425 0.003225 3.628675s-2.27505 2.313275 -3.1442 1.811475c-0.869125 -0.501825 -0.870575 -2.126425 -0.003225 -3.628675 0.86735 -1.502275 2.27505 -2.313275 3.1442 -1.811475Z" stroke-width="0.25"></path>
    <path fill="#f7bf2a" d="M15.138225 2.06721c0 1.003615 -1.40625 1.817215 -3.14095 1.817215 -1.7347 0 -3.14095 -0.8136 -3.14095 -1.817215C8.856325 1.06359 10.262575 0.25 11.997275 0.25c1.7347 0 3.14095 0.81359 3.14095 1.81721ZM9.2166 5.482375c0 1.003625 -1.40625 1.8172 -3.14095 1.8172 -1.7347 0 -3.14095 -0.813575 -3.14095 -1.8172s1.40625 -1.817225 3.14095 -1.817225c1.7347 0 3.14095 0.8136 3.14095 1.817225Zm8.71005 1.8172c1.7347 0 3.14095 -0.813575 3.14095 -1.8172s-1.40625 -1.817225 -3.14095 -1.817225c-1.7347 0 -3.14095 0.8136 -3.14095 1.817225s1.40625 1.8172 3.14095 1.8172Zm-2.788425 1.605625c0 1.003625 -1.40625 1.8172 -3.14095 1.8172 -1.7347 0 -3.14095 -0.813575 -3.14095 -1.8172 0 -1.0036 1.40625 -1.8172 3.14095 -1.8172 1.7347 0 3.14095 0.8136 3.14095 1.8172Z" stroke-width="0.25"></path>
    </svg>}
  >
    Declare templates in your Pulumi programs
  </Card>
</CardGroup>

## Configuration

The default `values.yaml` for this template:

```yaml theme={null}
image:
  repository: rabbitmq:3-management

memory: 250Mi
cpu: 200m

firewall:
  internal_inboundAllowType: same-gvc # Options: same-gvc, same-org
  # external_inboundAllowCIDR: 0.0.0.0/0
  # external_outboundAllowCIDR: 0.0.0.0/0

rabbitmq_conf:
  listeners_tcp_default: 5672
  default_user: user
  default_pass: changeMe

env:
  RABBITMQ_CONFIG_FILE: /etc/rabbitmq/rabbitmq.conf

volumeset:
  volume:
    initialCapacity: 10 # In GiB. For high-throughput-ssd minimum is 1000
    fileSystemType: ext4 # ext4 / xfs
    performanceClass: general-purpose-ssd # general-purpose-ssd / high-throughput-ssd
```

### Credentials

* `rabbitmq_conf.default_user` — RabbitMQ admin username. **Change before deploying to production.**
* `rabbitmq_conf.default_pass` — RabbitMQ admin password. **Change before deploying to production.**

<Note>
  These values are only applied on first startup when there is no existing node data. Updating them after the initial deployment will have no effect on the running instance. To change credentials on an existing instance, use RabbitMQ's management commands (e.g. `rabbitmqctl change_password`).
</Note>

### Resources

* `cpu` — CPU allocated to the RabbitMQ workload.
* `memory` — Memory allocated to the RabbitMQ workload.

### Storage

* `volumeset.volume.initialCapacity` — Initial volume size in GiB. For `high-throughput-ssd`, the minimum is 1000 GiB.
* `volumeset.volume.fileSystemType` — `ext4` or `xfs`.
* `volumeset.volume.performanceClass` — `general-purpose-ssd` or `high-throughput-ssd`.

### Firewall

* `firewall.internal_inboundAllowType` — Controls which workloads can connect to RabbitMQ internally:

| Value      | Description                                                   |
| ---------- | ------------------------------------------------------------- |
| `same-gvc` | Allow access from all workloads in the same GVC (recommended) |
| `same-org` | Allow access from all workloads in the same organization      |

* `firewall.external_inboundAllowCIDR` — Optional. Comma-separated list of CIDR ranges allowed to reach RabbitMQ from the internet (e.g. `0.0.0.0/0`).
* `firewall.external_outboundAllowCIDR` — Optional. Comma-separated list of CIDR ranges RabbitMQ is allowed to reach externally.

### Connecting to RabbitMQ

Once deployed, connect to RabbitMQ from within the same GVC using:

```text theme={null}
RELEASE_NAME-rabbitmq.GVC_NAME.cpln.local:5672
```

The management UI is available on port `15672` via the workload's external endpoint (requires `firewall.external_inboundAllowCIDR` to be set).

### Ports

| Port    | Protocol | Description                                                                     |
| ------- | -------- | ------------------------------------------------------------------------------- |
| `5672`  | AMQP     | Primary messaging port (configurable via `rabbitmq_conf.listeners_tcp_default`) |
| `15672` | HTTP     | Management UI                                                                   |
| `15692` | HTTP     | Prometheus metrics                                                              |

## External References

<CardGroup cols={2}>
  <Card title="RabbitMQ Documentation" icon="book" href="https://www.rabbitmq.com/docs">
    Official RabbitMQ documentation
  </Card>

  <Card title="RabbitMQ Template" icon="github" href="https://github.com/controlplane-com/templates/tree/main/rabbitmq">
    View the source files, default values, and chart definition
  </Card>
</CardGroup>
