summaryrefslogtreecommitdiffstats
path: root/puppet
diff options
context:
space:
mode:
authorGiulio Fidente <gfidente@redhat.com>2016-07-25 15:11:40 +0200
committerGiulio Fidente <gfidente@redhat.com>2016-08-08 14:47:06 +0000
commitc21545a8d79f67fd59d57ed0163bc3e07a94f8f4 (patch)
tree5e1719b7cd6c83179d739950966aa74f589d6b48 /puppet
parenta45ea6107df25f1444142a1945717c90180e2700 (diff)
Support arbitrary attributes for the Ceph pools
This change adds a CephPools parameter which can be used to provide custom settings for any Ceph pool. It also removes our custom setting for the default pg_num, pgp_num and size so that these are used for the managed pools (and can be overridden) but aren't enforced globally. Change-Id: Idcf28bec46beabb1b590fc8e78b43e58d8e35717 Closes-Bug: 1517969 Depends-On: I38978f0f3119e4ab7dd45021e598253cb066cb5a
Diffstat (limited to 'puppet')
-rw-r--r--puppet/services/ceph-base.yaml3
-rw-r--r--puppet/services/ceph-mon.yaml35
2 files changed, 30 insertions, 8 deletions
diff --git a/puppet/services/ceph-base.yaml b/puppet/services/ceph-base.yaml
index bce52f36..47028610 100644
--- a/puppet/services/ceph-base.yaml
+++ b/puppet/services/ceph-base.yaml
@@ -58,9 +58,6 @@ outputs:
config_settings:
tripleo::profile::base::ceph::ceph_ipv6: {get_param: CephIPv6}
tripleo::profile::base::ceph::enable_ceph_storage: {get_param: ControllerEnableCephStorage}
- ceph::profile::params::osd_pool_default_pg_num: 32
- ceph::profile::params::osd_pool_default_pgp_num: 32
- ceph::profile::params::osd_pool_default_size: 3
ceph::profile::params::osd_pool_default_min_size: 1
ceph::profile::params::osds: {/srv/data: {}}
ceph::profile::params::manage_repo: false
diff --git a/puppet/services/ceph-mon.yaml b/puppet/services/ceph-mon.yaml
index f48515e5..074d941d 100644
--- a/puppet/services/ceph-mon.yaml
+++ b/puppet/services/ceph-mon.yaml
@@ -31,6 +31,19 @@ parameters:
NovaRbdPoolName:
default: vms
type: string
+ CephPools:
+ description: >
+ It can be used to override settings for one of the predefined pools, or to create
+ additional ones. Example:
+ {
+ "volumes": {
+ "size": 5,
+ "pg_num: 128,
+ "pgp_num": 128
+ }
+ }
+ default: {}
+ type: json
resources:
CephBase:
@@ -46,12 +59,24 @@ outputs:
- get_attr: [CephBase, role_data, config_settings]
- ceph::profile::params::ms_bind_ipv6: {get_param: CephIPv6}
ceph::profile::params::mon_key: {get_param: CephMonKey}
+ # repeat returns items in a list, so we need to map_merge twice
tripleo::profile::base::ceph::mon::ceph_pools:
- - {get_param: CinderRbdPoolName}
- - {get_param: CinderBackupRbdPoolName}
- - {get_param: NovaRbdPoolName}
- - {get_param: GlanceRbdPoolName}
- - {get_param: GnocchiRbdPoolName}
+ map_merge:
+ - map_merge:
+ repeat:
+ for_each:
+ <%pool%>:
+ - {get_param: CinderRbdPoolName}
+ - {get_param: CinderBackupRbdPoolName}
+ - {get_param: NovaRbdPoolName}
+ - {get_param: GlanceRbdPoolName}
+ - {get_param: GnocchiRbdPoolName}
+ template:
+ <%pool%>:
+ pg_num: 32
+ pgp_num: 32
+ size: 3
+ - {get_param: CephPools}
tripleo.ceph_mon.firewall_rules:
'110 ceph_mon':
dport: