Both ceph-ansible (default in pike) and puppet-ceph (default before pike) support defining a data structure mapping Ceph pools to be created and their respective PG sizes. For example, ceph-ansible can be passed the following and it will deploy ceph pools of differing PG values: CephPools: - name: mypool pg_nume: 256 - name: anotherpool pg_num: 64 For TripleO to take advantage of this feature the following needs to be refactored: https://github.com/openstack/tripleo-heat-templates/blob/master/docker/services/ceph-ansible/ceph-base.yaml#L72-L84