]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
Allow updating crush rule on existing pool
authorDimitri Savineau <dsavinea@redhat.com>
Mon, 17 Aug 2020 19:27:16 +0000 (15:27 -0400)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Fri, 11 Sep 2020 00:35:44 +0000 (20:35 -0400)
The crush rule value was only set once during the pool creation. It was
not possible to update the crush rule value by updating the value in the
configuration.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1847166
Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
roles/ceph-client/tasks/create_users_keys.yml
roles/ceph-mds/tasks/create_mds_filesystems.yml
roles/ceph-osd/tasks/openstack_config.yml

index b254b40738b8edb89c6ebc768405b81a0ee78a88..ddf84086fa2409d193423a5eed4752aec2ffac41 100644 (file)
         - item.type | default(1) | int != 3
         - item.type | default('replicated') != 'erasure'
 
+    - name: customize pool crush_rule
+      command: >
+        {{ ceph_admin_command | default('') }} --cluster {{ cluster }}
+        osd pool set {{ item.name }} crush_rule {{ item.rule_name | default(ceph_osd_pool_default_crush_rule_name) }}
+      with_items: "{{ pools | unique }}"
+      delegate_to: "{{ delegated_node }}"
+      changed_when: false
+      when:
+        - item.rule_name | default(ceph_osd_pool_default_crush_rule_name)
+        - item.type | default(1) | int != 3
+        - item.type | default('replicated') != 'erasure'
+
     - name: assign application to pool(s)
       command: "{{ ceph_admin_command | default('') }} --cluster {{ cluster }} osd pool application enable {{ item.name }} {{ item.application }}"
       with_items: "{{ pools | unique }}"
index 68d3f2f506f6c2dcf1d98156dbb2e576f4aafef1..0d60c3068b889fc35303f89d493ab7c94c2bf523 100644 (file)
             - item.type | default(1) | int != 3
             - item.type | default('replicated') != 'erasure'
 
+        - name: customize pool crush_rule
+          command: "{{ ceph_run_cmd }} --cluster {{ cluster }} osd pool set {{ item.name }} crush_rule {{ item.rule_name | default(ceph_osd_pool_default_crush_rule_name) }}"
+          with_items: "{{ cephfs_pools | unique }}"
+          changed_when: false
+          when:
+            - item.rule_name | default(ceph_osd_pool_default_crush_rule_name)
+            - item.type | default(1) | int != 3
+            - item.type | default('replicated') != 'erasure'
 
 - name: check and create ceph filesystem
   delegate_to: "{{ groups[mon_group_name][0] }}"
index 12005ae470848c7626689ea94dad078aa94ba59b..8279632511ba734653c339c593c3802bb354cc7c 100644 (file)
         - item.type | default(1) | int != 3
         - item.type | default('replicated') != 'erasure'
 
+    - name: customize pool crush_rule
+      command: >
+        {{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }}
+        osd pool set {{ item.name }} crush_rule {{ item.rule_name | default(ceph_osd_pool_default_crush_rule_name) }}
+      with_items: "{{ openstack_pools | unique }}"
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      changed_when: false
+      when:
+        - item.rule_name | default(ceph_osd_pool_default_crush_rule_name)
+        - item.type | default(1) | int != 3
+        - item.type | default('replicated') != 'erasure'
+
     - name: assign application to pool(s)
       command: "{{ hostvars[groups[mon_group_name][0]]['container_exec_cmd'] | default('') }} ceph --cluster {{ cluster }} osd pool application enable {{ item.name }} {{ item.application }}"
       with_items: "{{ openstack_pools | unique }}"