--- - name: remove ec profile command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd erasure-code-profile rm {{ item.value.ec_profile }}" loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false when: - item.value.type is defined - item.value.type == 'ec' failed_when: false - name: set ec profile command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd erasure-code-profile set {{ item.value.ec_profile }} k={{ item.value.ec_k }} m={{ item.value.ec_m }}" loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false when: - item.value.type is defined - item.value.type == 'ec' - name: set crush rule command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd crush rule create-erasure {{ item.key }} {{ item.value.ec_profile }}" loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false when: - item.value.type is defined - item.value.type == 'ec' - name: create ec pools for rgw command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool create {{ item.key }} {{ item.value.pg_num | default(osd_pool_default_pg_num) }} erasure {{ item.value.ec_profile }}" loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false when: - item.value.type is defined - item.value.type == 'ec' - name: create replicated pools for rgw command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool create {{ item.key }} {{ item.value.pg_num | default(osd_pool_default_pg_num) }} replicated {{ item.value.rule_name | default(ceph_osd_pool_default_crush_rule_name) }}" changed_when: false register: result retries: 60 delay: 3 until: result is succeeded loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" when: item.value.type is not defined or item.value.type == 'replicated' - name: customize replicated pool size command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool set {{ item.key }} size {{ item.value.size | default(osd_pool_default_size) }}" register: result retries: 60 delay: 3 until: result is succeeded loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false when: - item.value.type is not defined or item.value.type == 'replicated' - item.value.size | default(osd_pool_default_size) != ceph_osd_pool_default_size - name: customize replicated pool crush_rule command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool set {{ item.key }} crush_rule {{ item.value.rule_name | default(ceph_osd_pool_default_crush_rule_name) }}" register: result retries: 60 delay: 3 until: result is succeeded loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false when: - item.value.type is not defined or item.value.type == 'replicated' - item.value.rule_name | default(ceph_osd_pool_default_crush_rule_name) - name: get pool details command: "{{ container_exec_cmd }} ceph --connect-timeout=10 --cluster={{ cluster }} --format=json osd pool ls detail" register: result retries: 60 delay: 3 until: result is succeeded delegate_to: "{{ groups[mon_group_name][0] }}" changed_when: false check_mode: false - name: set rgw_osd_pool_ls_detail fact set_fact: rgw_osd_pool_ls_detail: "{{ result.stdout | from_json }}" - name: set the rgw_create_pools pools application to rgw command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool application enable {{ item.key }} rgw" register: result retries: 60 delay: 3 until: result is succeeded loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" when: > 'rgw' not in (rgw_osd_pool_ls_detail | selectattr('pool_name', 'match', '^'+item.key+'$') | first).application_metadata - name: set pool pg_num command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool set {{ item.key }} pg_num {{ item.value.pg_num }}" register: result retries: 60 delay: 3 until: result is succeeded loop: "{{ rgw_create_pools | dict2items }}" delegate_to: "{{ groups[mon_group_name][0] }}" when: - item.value.pg_num is defined - (rgw_osd_pool_ls_detail | selectattr('pool_name', 'match', '^'+item.key+'$') | first).pg_num != item.value.pg_num