]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
mon: pool creation and pgs
authorSébastien Han <seb@redhat.com>
Mon, 5 Dec 2016 13:21:54 +0000 (14:21 +0100)
committerSébastien Han <seb@redhat.com>
Thu, 19 Jan 2017 10:30:39 +0000 (11:30 +0100)
Since we introduced config_overrides we removed a lot of options from
the default template. In some cases, like mds pool, openstack pools etc
we need to know the amount of PGs required. The idea here is to skip the
task if ceph_conf_overrides.global.osd_pool_default_pg_num is not define
in your `group_vars/all.yml`.

Closes: #1145
Signed-off-by: Sébastien Han <seb@redhat.com>
Co-Authored-By: Guillaume Abrioux <gabrioux@redhat.com>
group_vars/clients.yml.sample
group_vars/mons.yml.sample
roles/ceph-client/defaults/main.yml
roles/ceph-client/tasks/main.yml
roles/ceph-mon/defaults/main.yml
roles/ceph-mon/tasks/ceph_keys.yml
roles/ceph-mon/tasks/create_mds_filesystems.yml

index 1bd4f600336fcea454a34adc1825cad7fbcf32e1..c2efad271f40a9cebf040cbfa3853f1ab23541cd 100644 (file)
@@ -15,8 +15,8 @@ dummy:
 
 #user_config: false
 #pools:
-#  - { name: test, pgs: "{{ pool_default_pg_num }}" }
-#  - { name: test2, pgs: "{{ pool_default_pg_num }}" }
+#  - { name: test, pgs: "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}" }
+#  - { name: test2, pgs: "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}" }
 
 #keys:
 #  - { name: client.test, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=test'" }
index 844c6dff05a983c00de19f4c754c884825cab92e..6470030f5b641ac74d0a2bd74ad2c97cbea2735b 100644 (file)
@@ -23,7 +23,6 @@ dummy:
 #cephx: true
 
 # CephFS
-#pool_default_pg_num: 128
 #cephfs_data: cephfs_data
 #cephfs_metadata: cephfs_metadata
 #cephfs: cephfs
@@ -50,16 +49,16 @@ dummy:
 #openstack_config: false
 #openstack_glance_pool:
 #  name: images
-#  pg_num: "{{ pool_default_pg_num }}"
+#  pg_num: "{{ osd_pool_default_pg_num }}"
 #openstack_cinder_pool:
 #  name: volumes
-#  pg_num: "{{ pool_default_pg_num }}"
+#  pg_num: "{{ osd_pool_default_pg_num }}"
 #openstack_nova_pool:
 #  name: vms
-#  pg_num: "{{ pool_default_pg_num }}"
+#  pg_num: "{{ osd_pool_default_pg_num }}"
 #openstack_cinder_backup_pool:
 #  name: backups
-#  pg_num: "{{ pool_default_pg_num }}"
+#  pg_num: "{{ osd_pool_default_pg_num }}"
 
 #openstack_pools:
 #  - "{{ openstack_glance_pool }}"
index 4cc10939bfaca923cda3d11c70a991f9f970fa80..7ccffebc3618704637ce92b2061abe9a4a84c766 100644 (file)
@@ -7,8 +7,8 @@ fetch_directory: fetch/
 
 user_config: false
 pools:
-  - { name: test, pgs: "{{ pool_default_pg_num }}" }
-  - { name: test2, pgs: "{{ pool_default_pg_num }}" }
+  - { name: test, pgs: "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}" }
+  - { name: test2, pgs: "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}" }
 
 keys:
   - { name: client.test, value: "mon 'allow r' osd 'allow class-read object_prefix rbd_children, allow rwx pool=test'" }
index c2b363f62b3a0e28be7dc2549c9b33fea6a87091..b0ad7283da517a98df01e51c365a5cca5db026af 100644 (file)
@@ -1,4 +1,6 @@
 ---
 - include: pre_requisite.yml
 - include: create_users_keys.yml
-  when: user_config
+  when:
+    - user_config
+    - ceph_conf_overrides.global.osd_pool_default_pg_num is defined
index d431e43107733a3fd8cad20cb267b237bf545e32..cbe61432b3fa493e3bfa80100d44f60af82011ae 100644 (file)
@@ -15,7 +15,6 @@ monitor_secret: "{{ monitor_keyring.stdout }}"
 cephx: true
 
 # CephFS
-pool_default_pg_num: 128
 cephfs_data: cephfs_data
 cephfs_metadata: cephfs_metadata
 cephfs: cephfs
@@ -42,16 +41,16 @@ calamari: false
 openstack_config: false
 openstack_glance_pool:
   name: images
-  pg_num: "{{ pool_default_pg_num }}"
+  pg_num: "{{ osd_pool_default_pg_num }}"
 openstack_cinder_pool:
   name: volumes
-  pg_num: "{{ pool_default_pg_num }}"
+  pg_num: "{{ osd_pool_default_pg_num }}"
 openstack_nova_pool:
   name: vms
-  pg_num: "{{ pool_default_pg_num }}"
+  pg_num: "{{ osd_pool_default_pg_num }}"
 openstack_cinder_backup_pool:
   name: backups
-  pg_num: "{{ pool_default_pg_num }}"
+  pg_num: "{{ osd_pool_default_pg_num }}"
 
 openstack_pools:
   - "{{ openstack_glance_pool }}"
index 7710669ed068d21fca128fb0f508d37c32672107..42ce56b0d3fef4a8cd337b9c6640f6643e51b35d 100644 (file)
     - cephx
     - groups[restapi_group_name] is defined
 
+# NOTE(leseb): we add a conditional for backward compatibility
+# so people that had 'pool_default_pg_num' declared will get
+# the same behaviour
+#
+- name: check if does global key exist in ceph_conf_overrides
+  set_fact:
+    global_in_ceph_conf_overrides: "{{ 'global' in ceph_conf_overrides }}"
+
+- name: check if ceph_conf_overrides.global.osd_pool_default_pg_num is set
+  set_fact:
+    osd_pool_default_pg_num_in_overrides: "{{ 'osd_pool_default_pg_num' in ceph_conf_overrides.global }}"
+  when: global_in_ceph_conf_overrides
+
+- name: get default value for osd_pool_default_pg_num
+  shell: |
+    ceph --cluster {{ cluster }} daemon mon.{{ monitor_name }} config get osd_pool_default_pg_num | grep -Po '(?<="osd_pool_default_pg_num": ")[^"]*'
+  failed_when: false
+  changed_when: false
+  run_once: true
+  register: default_pool_default_pg_num
+  when: (pool_default_pg_num is not defined or not global_in_ceph_conf_overrides)
+
+- set_fact:
+    osd_pool_default_pg_num: "{{ pool_default_pg_num }}"
+  when: pool_default_pg_num is defined
+
+- set_fact:
+    osd_pool_default_pg_num: "{{ default_pool_default_pg_num.stdout }}"
+  when:
+    - pool_default_pg_num is not defined
+    - default_pool_default_pg_num.rc == 0
+    - ceph_conf_overrides.global.osd_pool_default_pg_num is not defined
+
+- set_fact:
+    osd_pool_default_pg_num: "{{ ceph_conf_overrides.global.osd_pool_default_pg_num }}"
+  when: ceph_conf_overrides.global.osd_pool_default_pg_num is defined
+
 - include: rbd_pool.yml
   when: ceph_conf_overrides.global.osd_pool_default_pg_num is defined
 
index e114b1511a3ef8fc709d6afb7191be7d47f78f6e..f5103cbb9020f53c1d7433064f79fcb6cc9a7c25 100644 (file)
@@ -4,7 +4,7 @@
 # the role 'ceph-common' doesn't get inherited so the condition can not be evaluate
 # since those check are performed by the ceph-common role
 - name: create filesystem pools
-  command: ceph --cluster {{ cluster }} osd pool create {{ item }} {{ pool_default_pg_num }}
+  command: ceph --cluster {{ cluster }} osd pool create {{ item }} {{ osd_pool_default_pg_num }}
   with_items:
     - cephfs_data
     - cephfs_metadata