RabbitMQ¶
Atmosphere deploys a dedicated RabbitMQ cluster for each OpenStack service that requires message queuing. This provides isolation between services and enables per-service resource tuning.
Per-service overrides¶
To customize the RabbitMQ cluster for a specific service, define a variable
named <chart>_rabbitmq_spec in your inventory, where <chart> matches the
chart name under charts/ (for example: nova, neutron, glance,
keystone).
Example (increase Nova RabbitMQ resources):
nova_rabbitmq_spec:
resources:
requests:
cpu: 500m
memory: 4Gi
limits:
cpu: "1"
memory: 4Gi
Common tuning options¶
Atmosphere merges overrides into the default RabbitmqCluster spec recursively.
You can set any valid RabbitmqCluster.spec field. Common options include
resources, replicas, persistence, and additional configuration.
nova_rabbitmq_spec:
# Resource requests and limits
resources:
requests:
cpu: 500m
memory: 4Gi
limits:
cpu: "1"
memory: 4Gi
# Number of RabbitMQ replicas (optional)
replicas: 3
# Persistent volume storage size (optional)
persistence:
storage: 20Gi
# Additional RabbitMQ configuration (optional)
rabbitmq:
additionalConfig: |
deprecated_features.permit.management_metrics_collection = true
vm_memory_high_watermark.relative = 0.9
Note
Setting rabbitmq.additionalConfig replaces the default value (it’s not
appended). If you override it, include any defaults you still want applied.
Skipping spec diff approval¶
By default, Atmosphere will prompt for approval when the RabbitMQ cluster specification changes. To skip this approval step when using per-service overrides, set:
rabbitmq_skip_spec_diff: true
Verifying changes¶
Atmosphere deploys RabbitMQ clusters as RabbitmqCluster resources in the
openstack namespace with names following the pattern rabbitmq-<chart>.
kubectl -n openstack get rabbitmqclusters
kubectl -n openstack get rabbitmqcluster rabbitmq-nova -o yaml