rolling_update: check quorum state before upgrade

If one a the monitor is out of the quorum then nothing prevents the upgrade
playbook to run.
We only check if we have at least three monitor nodes but we should also
check if those monitor nodes are correctly present in the quorum.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1952571

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit 97148dd58c)
pull/6749/head
Dimitri Savineau 2021-07-09 16:09:49 -04:00 committed by Guillaume Abrioux
parent ddc3df9f9a
commit f433d06a93
1 changed files with 10 additions and 0 deletions

View File

@ -162,6 +162,16 @@
fail: fail:
msg: "cluster is not in an acceptable state!" msg: "cluster is not in an acceptable state!"
when: (check_cluster_health.stdout | from_json).status == 'HEALTH_ERR' when: (check_cluster_health.stdout | from_json).status == 'HEALTH_ERR'
- name: get the ceph quorum status
command: "{{ container_exec_cmd }} ceph --cluster {{ cluster }} quorum_status -f json"
register: check_quorum_status
delegate_to: "{{ mon_host }}"
- name: fail if the cluster quorum isn't in an acceptable state
fail:
msg: "cluster quorum is not in an acceptable state!"
when: (check_quorum_status.stdout | from_json).quorum | length != groups[mon_group_name] | length
when: inventory_hostname == groups[mon_group_name] | first when: inventory_hostname == groups[mon_group_name] | first
- name: ensure /var/lib/ceph/bootstrap-rbd-mirror is present - name: ensure /var/lib/ceph/bootstrap-rbd-mirror is present