resource_registry:
   OS::TripleO::CephClusterConfig::SoftwareConfig: ../puppet/extraconfig/ceph/ceph-external-config.yaml
 
-parameters:
+parameter_defaults:
   # NOTE: These example parameters are required when using Ceph External
   #CephClusterFSID: '4b5c8c0a-ff60-454b-a1b4-9747aa737d19'
   #CephClientKey: 'AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ=='
   NovaEnableRbdBackend: true
   CinderEnableRbdBackend: true
   GlanceBackend: rbd
+  # If the Ceph pools which host VMs, Volumes and Images do not match these
+  # names, edit the following as needed.
+  NovaRbdPoolName: vms
+  CinderRbdPoolName: volumes
+  GlanceRbdPoolName: images
 
   # finally we disable the Cinder LVM backend
   CinderEnableIscsiBackend: false
 
     type: comma_delimited_list
   ceph_mon_ips:
     type: comma_delimited_list
+  NovaRbdPoolName:
+    default: vms
+    type: string
+  CinderRbdPoolName:
+    default: volumes
+    type: string
+  GlanceRbdPoolName:
+    default: images
+    type: string
 
 resources:
   CephClusterConfigImpl:
 
     type: comma_delimited_list
   ceph_mon_ips:
     type: comma_delimited_list
+  NovaRbdPoolName:
+    default: vms
+    type: string
+  CinderRbdPoolName:
+    default: volumes
+    type: string
+  GlanceRbdPoolName:
+    default: images
+    type: string
 
 resources:
   CephClusterConfigImpl:
                         secret: 'ADMIN_KEY',
                         mode: '0644',
                         cap_mon: 'allow r',
-                        cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rwx pool=images'
+                        cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL'
                       }
                     }"
                     params:
                       ADMIN_KEY: {get_param: ceph_admin_key}
+                      NOVA_POOL: {get_param: NovaRbdPoolName}
+                      CINDER_POOL: {get_param: CinderRbdPoolName}
+                      GLANCE_POOL: {get_param: GlanceRbdPoolName}
+                nova::compute::rbd::libvirt_images_rbd_pool: {get_param: NovaRbdPoolName}
+                cinder_rbd_pool_name: {get_param: CinderRbdPoolName}
+                glance::backend::rbd::rbd_store_pool: {get_param: GlanceRbdPoolName}
+                ceph_pools:
+                  - {get_param: CinderRbdPoolName}
+                  - {get_param: NovaRbdPoolName}
+                  - {get_param: GlanceRbdPoolName}
 
 outputs:
   config_id:
 
     type: comma_delimited_list
   ceph_mon_ips:
     type: comma_delimited_list
+  NovaRbdPoolName:
+    default: vms
+    type: string
+  CinderRbdPoolName:
+    default: volumes
+    type: string
+  GlanceRbdPoolName:
+    default: images
+    type: string
 
 resources:
   CephClusterConfigImpl:
                         secret: 'CLIENT_KEY',
                         mode: '0644',
                         cap_mon: 'allow r',
-                        cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rwx pool=images'
+                        cap_osd: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL'
                       }
                     }"
                     params:
                       CLIENT_KEY: {get_param: ceph_client_key}
-
+                      NOVA_POOL: {get_param: NovaRbdPoolName}
+                      CINDER_POOL: {get_param: CinderRbdPoolName}
+                      GLANCE_POOL: {get_param: GlanceRbdPoolName}
+                nova::compute::rbd::libvirt_images_rbd_pool: {get_param: NovaRbdPoolName}
+                cinder_rbd_pool_name: {get_param: CinderRbdPoolName}
+                glance::backend::rbd::rbd_store_pool: {get_param: GlanceRbdPoolName}
+                ceph_pools:
+                  - {get_param: CinderRbdPoolName}
+                  - {get_param: NovaRbdPoolName}
+                  - {get_param: GlanceRbdPoolName}
 
 outputs:
   config_id:
 
 ceph::profile::params::manage_repo: false
 ceph::profile::params::authentication_type: cephx
 
-ceph_pools:
-  - volumes
-  - vms
-  - images
-
 ceph_classes: []
 
 ceph_osd_selinux_permissive: true
 
 
 nova::compute::rbd::libvirt_rbd_user: 'openstack'
 nova::compute::rbd::rbd_keyring: 'client.openstack'
-nova::compute::rbd::libvirt_images_rbd_pool: 'vms'
 nova::compute::rbd::libvirt_rbd_secret_uuid: "%{hiera('ceph::profile::params::fsid')}"
 
 ceilometer::agent::auth::auth_tenant_name: 'service'
 
     $ceph_pools = hiera('ceph_pools')
     ceph::pool { $ceph_pools : }
 
-    $cinder_pool_requires = [Ceph::Pool['volumes']]
+    $cinder_pool_requires = [Ceph::Pool[hiera('cinder_rbd_pool_name')]]
 
   } else {
     $cinder_pool_requires = []
     $cinder_rbd_backend = 'tripleo_ceph'
 
     cinder::backend::rbd { $cinder_rbd_backend :
-      rbd_pool        => 'volumes',
+      rbd_pool        => hiera('cinder_rbd_pool_name'),
       rbd_user        => 'openstack',
       rbd_secret_uuid => hiera('ceph::profile::params::fsid'),
       require         => $cinder_pool_requires,
 
     $ceph_pools = hiera('ceph_pools')
     ceph::pool { $ceph_pools : }
 
-    $cinder_pool_requires = [Ceph::Pool['volumes']]
+    $cinder_pool_requires = [Ceph::Pool[hiera('cinder_rbd_pool_name')]]
 
   } else {
     $cinder_pool_requires = []
     $cinder_rbd_backend = 'tripleo_ceph'
 
     cinder::backend::rbd { $cinder_rbd_backend :
-      rbd_pool        => 'volumes',
+      rbd_pool        => hiera('cinder_rbd_pool_name'),
       rbd_user        => 'openstack',
       rbd_secret_uuid => hiera('ceph::profile::params::fsid'),
       require         => $cinder_pool_requires,