From 9c942a604e8af1b9a39b7ab5da274be11b4db64d Mon Sep 17 00:00:00 2001
From: Emilien Macchi <emilien@redhat.com>
Date: Mon, 25 Jan 2016 17:50:43 -0500
Subject: [PATCH] Deploy Ceph on scenario001

Deploy a simple Ceph setup on scenario001 with one mon and one osd.

Change-Id: I816f763c9ac89f62304c955184daf1e5a4406c3c
---
 Puppetfile              |  4 ++++
 README.md               |  1 +
 fixtures/scenario001.pp |  1 +
 manifests/ceph.pp       | 16 ++++++++++++++++
 manifests/repos.pp      | 15 +++++++++++++--
 5 files changed, 35 insertions(+), 2 deletions(-)
 create mode 100644 manifests/ceph.pp

diff --git a/Puppetfile b/Puppetfile
index f69cc78fb..370ff98a4 100644
--- a/Puppetfile
+++ b/Puppetfile
@@ -12,6 +12,10 @@ mod 'ceilometer',
   :git => 'https://git.openstack.org/openstack/puppet-ceilometer',
   :ref => 'master'
 
+mod 'ceph',
+  :git => 'https://git.openstack.org/openstack/puppet-ceph',
+  :ref => 'master'
+
 mod 'cinder',
   :git => 'https://git.openstack.org/openstack/puppet-cinder',
   :ref => 'master'
diff --git a/README.md b/README.md
index dbad6e6a1..765c7be38 100644
--- a/README.md
+++ b/README.md
@@ -47,6 +47,7 @@ scenario](#All-In-One).
 | trove      |      X      |             |             |
 | horizon    |             |       X     |       X     |
 | ironic     |             |       X     |             |
+| ceph       |      X      |             |             |
 
 When the Jenkins slave is created, the *run_tests.sh* script will executed.
 This script will execute *install_modules.sh* that prepare /etc/puppet/modules
diff --git a/fixtures/scenario001.pp b/fixtures/scenario001.pp
index 2941f5ffc..dbc7ee19e 100644
--- a/fixtures/scenario001.pp
+++ b/fixtures/scenario001.pp
@@ -26,6 +26,7 @@ include ::openstack_integration::ceilometer
 include ::openstack_integration::aodh
 include ::openstack_integration::gnocchi
 include ::openstack_integration::trove
+include ::openstack_integration::ceph
 include ::openstack_integration::provision
 
 class { '::openstack_integration::tempest':
diff --git a/manifests/ceph.pp b/manifests/ceph.pp
new file mode 100644
index 000000000..31893445f
--- /dev/null
+++ b/manifests/ceph.pp
@@ -0,0 +1,16 @@
+class openstack_integration::ceph {
+
+  class { '::ceph':
+    fsid                      => '7200aea0-2ddd-4a32-aa2a-d49f66ab554c',
+    mon_host                  => '127.0.0.1',
+    authentication_type       => 'none',
+    osd_pool_default_size     => '1',
+    osd_pool_default_min_size => '1',
+  }
+  ceph::mon { 'mon1':
+    public_addr         => '127.0.0.1',
+    authentication_type => 'none',
+  }
+  ceph::osd { '/srv/data': }
+
+}
diff --git a/manifests/repos.pp b/manifests/repos.pp
index 635fad822..85fe21a0e 100644
--- a/manifests/repos.pp
+++ b/manifests/repos.pp
@@ -8,11 +8,20 @@ class openstack_integration::repos {
         release         => 'mitaka', # drop this line when mitaka is stable released
         package_require => true,
       }
+      # Ceph is both packaged on UCA & ceph.com
+      # Official packages are on ceph.com so we want to make sure
+      # Ceph will be installed from there.
+      apt::pin { 'ceph':
+        priority => 1001,
+        origin   => 'ceph.com',
+      }
     }
     'RedHat': {
       class { '::openstack_extras::repo::redhat::redhat':
-        manage_rdo => false,
-        repo_hash  => {
+        # yum-plugin-priorities is already managed by ::ceph::repo
+        manage_priorities => false,
+        manage_rdo        => false,
+        repo_hash         => {
           'mitaka-current-passed-ci' => {
             'baseurl'  => 'http://trunk.rdoproject.org/centos7/current-passed-ci/',
             'descr'    => 'Mitaka tested',
@@ -33,4 +42,6 @@ class openstack_integration::repos {
     }
   }
 
+  class { '::ceph::repo': }
+
 }