Deploys a production-ready RabbitMQ cluster, run by the official RabbitMQ operators.
Declare the users, vhosts, queues, exchanges, bindings, and policies below; every deploy reconciles the broker to match. Services connect over AMQP using the connection outputs.
This blueprint accepts 18 configurable inputs to customize the installation for your environment.
exposeManagementUIbooleanPublish the management UI at a public HTTPS URL, protected only by the RabbitMQ credentials. Leave off to keep it in-cluster on port 15672.
adminUsernamestringUsername for the RabbitMQ administrator account.
adminPasswordstringPassword for the administrator account. Applied on first boot; changing it later has no effect.
createAppUserbooleanCreate a non-admin user for your applications, with full permissions on the vhost below and every vhost under Topology.
appUsernamestringUsername your applications authenticate with.
appPasswordstringPassword for the application user. Can be rotated after install.
appVhoststringVhost the application user connects to. Created if it does not exist; only list it under Vhosts to set its default queue type.
sizestringCPU and memory requested by each replica. A replica that does not fit your nodes stays Pending.
replicasstringHow many RabbitMQ nodes to run. Three survives losing one; a single node has no redundancy.
storageSizeGinumberVolume size per replica, in GiB. Can be grown later, never shrunk.
storageClassNamestringStorage class for the replica volumes, which sets disk type and IOPS. Empty uses the cluster default.
topologyAllowedNamespacesarrayOther namespaces allowed to declare topology against this cluster.
vhostDefinitionsstringVirtual hosts to create, as a YAML list. Each is an isolated namespace for queues and exchanges, and the application user gets access to all of them. ```yaml - name: orders defaultQueueType: quorum ```
queueDefinitionsstringQueues to create, as a YAML list. Quorum queues replicate across nodes; classic queues live on one. Omit `vhost` to use `/`. ```yaml - name: order.events vhost: / type: quorum durable: true ```
exchangeDefinitionsstringExchanges to create, as a YAML list. `type` is `direct`, `topic`, `fanout`, or `headers`, and cannot be changed later. ```yaml - name: events type: topic durable: true ```
bindingDefinitionsstringRoutes from an exchange to a queue or another exchange, as a YAML list. Source and destination must exist in the same vhost. ```yaml - source: events destination: order.events destinationType: queue routingKey: "order.#" ```
policyDefinitionsstringPolicies applied to queues or exchanges matching a name pattern, as a YAML list. Sets message TTLs, length limits, and dead-lettering; highest-priority match wins. ```yaml - name: order-events-ttl pattern: "^order\\." applyTo: queues definition: message-ttl: 86400000 max-length: 1000000 ```
enableMetricsbooleanScrape queue depth, message rates, and node health into dashboards and alerts.
This blueprint exposes 8 outputs that other services can reference.
adminUsernamestringUsername for the RabbitMQ admin account.
adminCredentialsSecretNamestringKubernetes Secret containing the admin username and password.
appUsernamestringUsername for the initial RabbitMQ user.
appCredentialsSecretNamestringKubernetes Secret containing the initial RabbitMQ user credentials.
appVhoststringPrimary virtual host for the initial RabbitMQ user.
hoststringInternal hostname for AMQP connections.
amqpPortstringAMQP protocol port.
managementPortstringRabbitMQ management UI port.