Move ceph cluster config out of allNodesConfig
[apex-tripleo-heat-templates.git] / puppet / services / ceph-mon.yaml
index 8df7683..f634ce8 100644 (file)
@@ -4,6 +4,15 @@ description: >
   Ceph Monitor service.
 
 parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
   EndpointMap:
     default: {}
     description: Mapping of service endpoint -> protocol. Typically set
@@ -13,7 +22,6 @@ parameters:
     default: False
     type: boolean
   CephMonKey:
-    default: ''
     description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
     type: string
     hidden: true
@@ -32,27 +40,56 @@ 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:
     type: ./ceph-base.yaml
+    properties:
+      ServiceNetMap: {get_param: ServiceNetMap}
+      DefaultPasswords: {get_param: DefaultPasswords}
+      EndpointMap: {get_param: EndpointMap}
 
 outputs:
   role_data:
     description: Role data for the Ceph Monitor service.
     value:
-      service_name: ceph-mon
+      service_name: ceph_mon
       config_settings:
         map_merge:
           - 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: