diff --git a/infrastructure-playbooks/rolling_update.yml b/infrastructure-playbooks/rolling_update.yml index a46d659a5..f8900aefd 100644 --- a/infrastructure-playbooks/rolling_update.yml +++ b/infrastructure-playbooks/rolling_update.yml @@ -1081,6 +1081,43 @@ - import_role: name: ceph-dashboard +- name: switch any existing crush buckets to straw2 + hosts: "{{ mon_group_name | default('mons') }}[0]" + become: true + any_errors_fatal: true + gather_facts: false + tasks: + - import_role: + name: ceph-defaults + + - import_role: + name: ceph-facts + tasks_from: container_binary.yml + + - name: set_fact ceph_cmd + set_fact: + ceph_cmd: "{{ container_binary + ' run --rm --net=host -v /etc/ceph:/etc/ceph:z --entrypoint=ceph ' + ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else 'ceph' }}" + + - name: backup the crushmap + command: "{{ ceph_cmd }} --cluster {{ cluster }} osd getcrushmap -o /etc/ceph/{{ cluster }}-crushmap" + changed_when: false + + - block: + - name: switch crush buckets to straw2 + command: "{{ ceph_cmd }} --cluster {{ cluster }} crush set-all-straw-buckets-to-straw2" + changed_when: false + rescue: + - name: restore the crushmap + command: "{{ ceph_cmd }} --cluster {{ cluster }} osd setcrushmap -i /etc/ceph/{{ cluster }}-crushmap" + changed_when: false + + - name: switching to straw2 buckets failed + debug: + msg: > + "An attempt to switch to straw2 bucket was made but failed. + Check the cluster status." + + - name: show ceph status hosts: "{{ mon_group_name|default('mons') }}" become: True