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>
(cherry picked from commit
ddac3a1fb5e319d6f778256504c2787746454c79)
#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'" }
#cephx: true
# CephFS
-#pool_default_pg_num: 128
#cephfs_data: cephfs_data
#cephfs_metadata: cephfs_metadata
#cephfs: cephfs
#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 }}"
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'" }
---
- 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
cephx: true
# CephFS
-pool_default_pg_num: 128
cephfs_data: cephfs_data
cephfs_metadata: cephfs_metadata
cephfs: cephfs
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 }}"
- 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
# 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