celery-rabbitmq

Create RabbitMQ queues, exchanges, and bindings from Kubernetes Custom Resources.

3|Updated Oct 27, 2025
One-click install
npx skills add https://github.com/eco2-team/backend --skill celery-rabbitmq
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: celery-rabbitmq
Source: https://github.com/eco2-team/backend/tree/main/.claude/skills/celery-rabbitmq
Command: npx skills add https://github.com/eco2-team/backend --skill celery-rabbitmq

SYSTEM DOCUMENTATION & REQUIREMENTS

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.

Frequently Asked Questions about celery-rabbitmq

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I declare Celery RabbitMQ queues and exchanges using Kubernetes CR topology?

You can declare Celery RabbitMQ queues and exchanges by defining Kubernetes Custom Resources for topology, letting the RabbitMQ operator materialize them automatically. This removes manual runtime declarations and ensures deterministic queue and exchange creation across deployments.

Why does my Celery task routing break when manually configuring RabbitMQ queues?

Celery task routing breaks from manual RabbitMQ queue configuration due to runtime declaration inconsistencies. Moving queue, exchange, and binding creation to Kubernetes Custom Resources enforces deterministic topology, preventing routing mismatches and ensuring predictable deployments.

Can I manage dead-letter queues for Celery tasks through Kubernetes Custom Resources?

Yes, you can manage dead-letter queues for Celery tasks through Kubernetes Custom Resources. The topology configuration includes built-in DLQ support, allowing the operator to handle dead-letter routing automatically without manual RabbitMQ intervention.

Does configuring Celery queue topology via Kubernetes CRDs separate routing logic from infrastructure?

Configuring Celery queue topology via Kubernetes CRDs separates routing logic from infrastructure by keeping task_routes in Python code while moving queue, exchange, and binding definitions to the Kubernetes layer. This ensures clean separation of concerns across environments.

How do I deploy a multi-tenant Celery application with dedicated RabbitMQ queues and dead-letter handling?

Deploy a multi-tenant Celery application with dedicated RabbitMQ queues by creating Queue, Exchange, and Binding Custom Resources per service. Configure task_routes in your worker setup, then deploy workers to let the operator materialize topology with dead-letter handling.

Do I need the RabbitMQ operator to use declarative queue topology for Celery workers?

Yes, you need the RabbitMQ operator installed in your Kubernetes cluster to use declarative queue topology for Celery workers. The operator reads your Queue, Exchange, and Binding Custom Resources and materializes them in the RabbitMQ cluster.