Available in:  Ultimate/EE

Included in extensions:  Managed Services

The module lifecycle stage: Preview

The module has requirements for installation

The managed-rabbit module lets cluster users deploy RabbitMQ message brokers in their namespaces without operating RabbitMQ themselves. Cluster administrators define which instance sizes and settings are allowed, and the module deploys, configures and monitors the state of each instance.

A user describes an instance with a Rabbit object. Each Rabbit object references a RabbitClass: a cluster-wide set of rules created by the administrator. The module checks the Rabbit object against its class, deploys RabbitMQ and reports the result in the object status.

Main features

  • Deploy a RabbitMQ instance from a single manifest with the CPU, memory and disk size you need.
  • Get a ready Service and a Secret with generated credentials for connecting applications.
  • Enable TLS for client connections with a certificate from cert-manager or with your own certificate.
  • Limit instance sizes and RabbitMQ settings available to users with RabbitClass rules and CEL expressions.
  • Place RabbitMQ pods on dedicated nodes with node selectors, node affinity and tolerations set in the class.
  • Track the deployment and configuration state through conditions in the Rabbit object status.

How the module works

The module processes a Rabbit object in the following order:

  1. A user creates a Rabbit object in a namespace.
  2. The module checks the requested resources and settings against the RabbitClass that the object references. An object that does not pass the check is rejected with an error message.
  3. The module creates a Secret with credentials, a persistent volume, the RabbitMQ configuration and a TLS certificate if TLS is enabled.
  4. The module starts RabbitMQ and creates a Service for client connections.
  5. The module updates the conditions in the Rabbit object status. When all conditions are True, the instance is ready for connections.

The instructions for users are in the user guide, the instructions for administrators are in the administrator guide.

Limitations

The module has the following limitations:

Limitation Value
RabbitMQ version 4.3.5
RabbitMQ servers per Rabbit object 1, without clustering and replication
Ports available through the Service AMQP 5672 without TLS or AMQPS 5671 with TLS. The management interface and metrics are not available through the Service
RabbitMQ settings available to users maxMessageSize