What problem does it solve?
It solves the manual burden of configuring Celery task routing by moving queue, exchange, and binding creation to Kubernetes Custom Resources, ensuring deterministic topology and avoiding runtime declarations in code.
Core Features & Use Cases
- Declarative topology: define queues, exchanges, and bindings via CRs and have them materialize in RabbitMQ by the operator.
- Separation of concerns: Python Celery tasks focus on routing logic, while topology is managed by the Kubernetes layer.
- Built-in reliability: DLQ configuration, vhost and operator-managed RabbitMQ cluster support, and consistent deployment across environments.
- Use Case: Deploy a multi-tenant application where each service has dedicated queues with clean routing and dead-letter handling.
Quick Start
Prepare your cluster with the RabbitMQ operator, create Queue/Exchange/Binding CRs under workloads/rabbitmq/base/topology, configure Celery task_routes and task_queues in apps/<worker>/setup/celery.py, then deploy workers and verify queues exist in RabbitMQ.