diff --git a/manifests/reports.pp b/manifests/reports.pp
new file mode 100644
index 00000000..30e642f7
--- /dev/null
+++ b/manifests/reports.pp
@@ -0,0 +1,33 @@
+# == Class: manila::reports
+#
+# Configure oslo_reports options
+#
+# === Parameters
+#
+# [*log_dir*]
+#   (Optional) Path to a log directory where to create a file
+#   Defaults to $facts['os_service_default']
+#
+# [*file_event_handler*]
+#   (Optional) The path to a file to watch for changes to trigger the reports.
+#   Defaults to $facts['os_service_default']
+#
+# [*file_event_handler_interval*]
+#   (Optional) How many seconds to wait between pools when file_event_handler
+#   is set.
+#   Defaults to $facts['os_service_default']
+#
+class manila::reports(
+  $log_dir                     = $facts['os_service_default'],
+  $file_event_handler          = $facts['os_service_default'],
+  $file_event_handler_interval = $facts['os_service_default'],
+) {
+
+  include manila::deps
+
+  oslo::reports { 'manila_config':
+    log_dir                     => $log_dir,
+    file_event_handler          => $file_event_handler,
+    file_event_handler_interval => $file_event_handler_interval,
+  }
+}
diff --git a/releasenotes/notes/oslo-reports-939f22ec1731caed.yaml b/releasenotes/notes/oslo-reports-939f22ec1731caed.yaml
new file mode 100644
index 00000000..3a66f6c7
--- /dev/null
+++ b/releasenotes/notes/oslo-reports-939f22ec1731caed.yaml
@@ -0,0 +1,4 @@
+---
+features:
+  - |
+    The new ``manila::reports`` class has been added.
diff --git a/spec/classes/manila_reports_spec.rb b/spec/classes/manila_reports_spec.rb
new file mode 100644
index 00000000..2553945c
--- /dev/null
+++ b/spec/classes/manila_reports_spec.rb
@@ -0,0 +1,45 @@
+require 'spec_helper'
+
+describe 'manila::reports' do
+  shared_examples 'manila::reports' do
+    context 'with default parameters' do
+      it {
+        is_expected.to contain_oslo__reports('manila_config').with(
+          :log_dir                     => '<SERVICE DEFAULT>',
+          :file_event_handler          => '<SERVICE DEFAULT>',
+          :file_event_handler_interval => '<SERVICE DEFAULT>',
+        )
+      }
+    end
+
+    context 'with specified parameters' do
+      let :params do
+        {
+          :log_dir                     => '/var/log/manila',
+          :file_event_handler          => '/var/tmp/manila/reports',
+          :file_event_handler_interval => 1,
+        }
+      end
+
+      it {
+        is_expected.to contain_oslo__reports('manila_config').with(
+          :log_dir                     => '/var/log/manila',
+          :file_event_handler          => '/var/tmp/manila/reports',
+          :file_event_handler_interval => 1,
+        )
+      }
+    end
+  end
+
+  on_supported_os({
+    :supported_os => OSDefaults.get_supported_os
+  }).each do |os,facts|
+    context "on #{os}" do
+      let (:facts) do
+        facts.merge(OSDefaults.get_facts())
+      end
+
+      it_behaves_like 'manila::reports'
+    end
+  end
+end