Merge "Align node_ips hiera keys with the service name."
[apex-tripleo-heat-templates.git] / puppet / services / ceph-mon.yaml
index f48515e..074d941 100644 (file)
@@ -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: