diff --git a/ansible/roles/rabbitmq/tasks/deploy.yml b/ansible/roles/rabbitmq/tasks/deploy.yml index 6357f9a88c744fb414ad3363d994548cef582f17..e790621ad7c71fbc13d7eab17363ac665bd2df6a 100644 --- a/ansible/roles/rabbitmq/tasks/deploy.yml +++ b/ansible/roles/rabbitmq/tasks/deploy.yml @@ -1,4 +1,8 @@ --- +- include_tasks: remove-ha-all-policy.yml + when: + - not om_enable_rabbitmq_high_availability | bool + - import_tasks: config.yml - import_tasks: check-containers.yml diff --git a/ansible/roles/rabbitmq/tasks/remove-ha-all-policy.yml b/ansible/roles/rabbitmq/tasks/remove-ha-all-policy.yml new file mode 100644 index 0000000000000000000000000000000000000000..2ba02289e608157e98c2a9f3e4a2c7b7ff59c9c1 --- /dev/null +++ b/ansible/roles/rabbitmq/tasks/remove-ha-all-policy.yml @@ -0,0 +1,29 @@ +--- +- block: + - name: Get container facts + become: true + kolla_container_facts: + container_engine: "{{ kolla_container_engine }}" + name: + - "{{ service.container_name }}" + register: container_facts + + - block: + - name: List RabbitMQ policies + become: true + command: "docker exec {{ service.container_name }} rabbitmqctl list_policies --silent" + register: rabbitmq_policies + changed_when: false + + - name: Remove ha-all policy from RabbitMQ + become: true + command: "docker exec {{ service.container_name }} rabbitmqctl clear_policy ha-all" + when: + - "'ha-all' in rabbitmq_policies.stdout" + when: container_facts[service.container_name] is defined + + delegate_to: "{{ groups[role_rabbitmq_groups] | first }}" + run_once: true + vars: + service_name: "rabbitmq" + service: "{{ rabbitmq_services[service_name] }}" diff --git a/ansible/roles/rabbitmq/tasks/upgrade.yml b/ansible/roles/rabbitmq/tasks/upgrade.yml index 82632c5ace920a3f0f4c9f3de4a4eb36eaa9a1ad..ed672c6aa27ef02d29506be90a30d9b4781af6f5 100644 --- a/ansible/roles/rabbitmq/tasks/upgrade.yml +++ b/ansible/roles/rabbitmq/tasks/upgrade.yml @@ -1,4 +1,8 @@ --- +- include_tasks: remove-ha-all-policy.yml + when: + - not om_enable_rabbitmq_high_availability | bool + - import_tasks: config.yml - import_tasks: feature-flags.yml diff --git a/releasenotes/notes/rabbitmq-remove-ha-all-policy-when-not-required-81dcf64542c4805f.yaml b/releasenotes/notes/rabbitmq-remove-ha-all-policy-when-not-required-81dcf64542c4805f.yaml new file mode 100644 index 0000000000000000000000000000000000000000..fe8f6030ac75abb432eebda0f3564c566d5aa05b --- /dev/null +++ b/releasenotes/notes/rabbitmq-remove-ha-all-policy-when-not-required-81dcf64542c4805f.yaml @@ -0,0 +1,5 @@ +--- +fixes: + - | + When upgrading or deploying RabbitMQ, the policy `ha-all` is cleared if + `om_enable_rabbitmq_high_availability` is set to `false`.