Skip to content

Commit 05eee31

Browse files
committed
RabbitMQ: set ha-mode on all queues
Given that we use classic queues, by default the data for them is only stored on a single node which does not provide any increased availability in case of node failures. This PR sets ha-mode to `all` on some of the queues, which makes RabbitMQ write to multiple nodes. This is in line with OpenStack production setup recommendations: https://docs.openstack.org/large-scale/journey/configure/rabbitmq.html
1 parent 0e23a1c commit 05eee31

7 files changed

Lines changed: 122 additions & 0 deletions

File tree

components/cinder/cinder-rabbitmq-queue.yaml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,23 @@ spec:
5959
rabbitmqClusterReference:
6060
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
6161
namespace: openstack
62+
---
63+
apiVersion: rabbitmq.com/v1beta1
64+
kind: Policy
65+
metadata:
66+
name: cinder-ha-mode
67+
namespace: openstack
68+
spec:
69+
name: cinder-ha-mode
70+
vhost: "cinder" # default to '/' if not provided
71+
pattern: "^(?!(amq\\.)|(.*_fanout_)|(reply_)).*"
72+
applyTo: "queues" # set to 'queues', 'exchanges', or 'all'
73+
priority: 1 # defaults to 0
74+
definition: # policy definition
75+
ha-mode: all
76+
ha-promote-on-failure: always
77+
ha-promote-on-shutdown: always
78+
ha-sync-mode: manual
79+
rabbitmqClusterReference:
80+
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
81+
namespace: openstack

components/glance/glance-rabbitmq-queue.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,20 @@ spec:
5959
rabbitmqClusterReference:
6060
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
6161
namespace: openstack
62+
---
63+
apiVersion: rabbitmq.com/v1beta1
64+
kind: Policy
65+
metadata:
66+
name: glance-ha-mode
67+
namespace: openstack
68+
spec:
69+
name: glance-ha-mode
70+
vhost: "glance" # default to '/' if not provided
71+
pattern: "^(?!(amq\\.)|(.*_fanout_)|(reply_)).*"
72+
applyTo: "queues" # set to 'queues', 'exchanges', or 'all'
73+
priority: 1 # defaults to 0
74+
definition: # policy definition
75+
ha-mode: all
76+
rabbitmqClusterReference:
77+
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
78+
namespace: openstack

components/ironic/ironic-rabbitmq-queue.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,20 @@ spec:
5959
rabbitmqClusterReference:
6060
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
6161
namespace: openstack
62+
---
63+
apiVersion: rabbitmq.com/v1beta1
64+
kind: Policy
65+
metadata:
66+
name: ironic-ha-mode
67+
namespace: openstack
68+
spec:
69+
name: ironic-ha-mode
70+
vhost: "ironic" # default to '/' if not provided
71+
pattern: "^(?!(amq\\.)|(.*_fanout_)|(reply_)).*"
72+
applyTo: "queues" # set to 'queues', 'exchanges', or 'all'
73+
priority: 1 # defaults to 0
74+
definition: # policy definition
75+
message-ttl: 86400000
76+
rabbitmqClusterReference:
77+
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
78+
namespace: openstack

components/keystone/keystone-rabbitmq-queue.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,20 @@ spec:
5959
rabbitmqClusterReference:
6060
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
6161
namespace: openstack
62+
---
63+
apiVersion: rabbitmq.com/v1beta1
64+
kind: Policy
65+
metadata:
66+
name: keystone-ha-mode
67+
namespace: openstack
68+
spec:
69+
name: keystone-ha-mode
70+
vhost: "keystone" # default to '/' if not provided
71+
pattern: ".*"
72+
applyTo: "queues" # set to 'queues', 'exchanges', or 'all'
73+
priority: 1 # defaults to 0
74+
definition: # policy definition
75+
ha-mode: all
76+
rabbitmqClusterReference:
77+
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
78+
namespace: openstack

components/neutron/neutron-rabbitmq-queue.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,20 @@ spec:
5959
rabbitmqClusterReference:
6060
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
6161
namespace: openstack
62+
---
63+
apiVersion: rabbitmq.com/v1beta1
64+
kind: Policy
65+
metadata:
66+
name: neutron-ha-mode
67+
namespace: openstack
68+
spec:
69+
name: neutron-ha-mode
70+
vhost: "neutron" # default to '/' if not provided
71+
pattern: "^(?!(amq\\.)|(.*_fanout_)|(reply_)).*"
72+
applyTo: "queues" # set to 'queues', 'exchanges', or 'all'
73+
priority: 1 # defaults to 0
74+
definition: # policy definition
75+
ha-mode: all
76+
rabbitmqClusterReference:
77+
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
78+
namespace: openstack

components/nova/nova-rabbitmq-queue.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,20 @@ spec:
5959
rabbitmqClusterReference:
6060
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
6161
namespace: openstack
62+
---
63+
apiVersion: rabbitmq.com/v1beta1
64+
kind: Policy
65+
metadata:
66+
name: nova-ha-mode
67+
namespace: openstack
68+
spec:
69+
name: nova-ha-mode
70+
vhost: "nova" # default to '/' if not provided
71+
pattern: "^(?!(amq\\.)|(.*_fanout_)|(reply_)).*"
72+
applyTo: "queues" # set to 'queues', 'exchanges', or 'all'
73+
priority: 1 # defaults to 0
74+
definition: # policy definition
75+
ha-mode: all
76+
rabbitmqClusterReference:
77+
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
78+
namespace: openstack

components/octavia/octavia-rabbitmq-queue.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,20 @@ spec:
5959
rabbitmqClusterReference:
6060
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
6161
namespace: openstack
62+
---
63+
apiVersion: rabbitmq.com/v1beta1
64+
kind: Policy
65+
metadata:
66+
name: octavia-ha-mode
67+
namespace: openstack
68+
spec:
69+
name: octavia-ha-mode
70+
vhost: "octavia" # default to '/' if not provided
71+
pattern: "^(?!(amq\\.)|(.*_fanout_)|(reply_)).*"
72+
applyTo: "queues" # set to 'queues', 'exchanges', or 'all'
73+
priority: 1 # defaults to 0
74+
definition: # policy definition
75+
ha-mode: all
76+
rabbitmqClusterReference:
77+
name: rabbitmq # rabbitmqCluster must exist in the same namespace as this resource
78+
namespace: openstack

0 commit comments

Comments
 (0)