Crovel is not Shovel but does almost the same, namely to forward messages from one RabbitMQ exchange to another. Only, it does this with a crovel instead of a shovel.
Set the following environment variables to wire things up
Environment | Description | Required | Default |
---|---|---|---|
CROVEL_SRC_EXCHANGE | Name of source exchange | yes | |
CROVEL_SRC_ROUTING_KEY | Source routing key | no | # |
CROVEL_SRC_EXCHANGE_TYPE | Source exchange type | no | topic |
CROVEL_DEST_EXCHANGE | Destination exchange | yes | |
CROVEL_DEST_EXCHANGE_TYPE | Destination exchange type | no | topic |
Deploy to Cloud Foundry and bind the RabbitMQ
service to the app
---
applications:
- name: crovel
docker:
image: loafoe/crovel:latest
instances: 1
memory: 32M
disk_quota: 128M
health-check-type: process
env:
CROVEL_SRC_EXCHANGE: foo
CROVEL_DEST_EXCHANGE: bar
services:
- rabbitmq
resource "cloudfoundry_app" "crovel" {
name = "crovel"
space = data.cloudfoundry_space.space.id
memory = 32
disk_quota = 128
docker_image = "loafoe/crovel:latest"
health_check_type = "process"
environment = {
CROVEL_SRC_EXCHANGE = "foo"
CROVEL_DEST_EXCHANGE = "bar"
}
service_binding {
service_instance = cloudfoundry_service_instance.rabbitmq.id
}
}
- Support forwarding to different RabbitMQ cluster
- Support mulitple exchange forwards per instance
- Configurable durability
License is MIT