diff --git a/manifests/cinder.pp b/manifests/cinder.pp
index 56ca5d632..5a59948e3 100644
--- a/manifests/cinder.pp
+++ b/manifests/cinder.pp
@@ -161,7 +161,7 @@ class openstack_integration::cinder (
         manage_volume_type => true,
       }
       # make sure ceph pool exists before running Cinder Volume
-      Exec['create-cinder'] -> Service['cinder-volume']
+      Ceph::Pool['cinder'] -> Service['cinder-volume']
     }
     default: {
       fail("Unsupported backend (${backend})")
@@ -180,7 +180,7 @@ class openstack_integration::cinder (
         backup_ceph_user => 'openstack',
       }
       # make sure ceph pool exists before running Cinder Backup
-      Exec['create-backups'] -> Service['cinder-backup']
+      Ceph::Pool['backups'] -> Service['cinder-backup']
     }
     default: {}
   }
diff --git a/manifests/glance.pp b/manifests/glance.pp
index 298d46ba3..6777cceae 100644
--- a/manifests/glance.pp
+++ b/manifests/glance.pp
@@ -69,7 +69,7 @@ class openstack_integration::glance (
         rbd_store_pool => 'glance',
       }
       # make sure ceph pool exists before running Glance API
-      Exec['create-glance'] -> Service['glance-api']
+      Ceph::Pool['glance'] -> Service['glance-api']
       $default_backend = 'rbd1'
     }
     'swift': {
diff --git a/manifests/gnocchi.pp b/manifests/gnocchi.pp
index c5fa7dfd7..d9c5a9f1e 100644
--- a/manifests/gnocchi.pp
+++ b/manifests/gnocchi.pp
@@ -107,7 +107,7 @@ class openstack_integration::gnocchi (
         manage_rados  => true,
       }
       # make sure ceph pool exists before running gnocchi (dbsync & services)
-      Exec['create-gnocchi'] -> Exec['gnocchi-db-sync']
+      Ceph::Pool['gnocchi'] -> Anchor['gnocchi::dbsync::begin']
     }
     'swift': {
       class { 'gnocchi::storage::swift':
diff --git a/manifests/nova.pp b/manifests/nova.pp
index a73d5817c..216feae1b 100644
--- a/manifests/nova.pp
+++ b/manifests/nova.pp
@@ -256,7 +256,7 @@ class openstack_integration::nova (
       manage_ceph_client      => false,
     }
     # make sure ceph pool exists before running nova-compute
-    Exec['create-nova'] -> Service['nova-compute']
+    Ceph::Pool['nova'] -> Service['nova-compute']
   } else {
     include openstacklib::iscsid
     Service['iscsid'] -> Service['nova-compute']