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.This template does not create a GVC. You must deploy it into an existing GVC.
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.confconfiguration file, mounted into the container at startup. - Identity & Policy — An identity bound to the workload with
revealaccess to the config secret.
Installation
To install, follow the instructions for your preferred method:UI
Browse, install, and manage templates visually
CLI
Manage templates from your terminal
Terraform
Declare templates in your Terraform configurations
Pulumi
Declare templates in your Pulumi programs
Configuration
The defaultvalues.yaml for this template:
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.
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).Resources
cpu— CPU allocated to the RabbitMQ workload.memory— Memory allocated to the RabbitMQ workload.
Storage
volumeset.volume.initialCapacity— Initial volume size in GiB. Forhigh-throughput-ssd, the minimum is 1000 GiB.volumeset.volume.fileSystemType—ext4orxfs.volumeset.volume.performanceClass—general-purpose-ssdorhigh-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: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 |