From 670ba834f54918ae0481498fe66c5adf94e96d52 Mon Sep 17 00:00:00 2001
From: Alessandro Costantini <alessandro.costantini@cnaf.infn.it>
Date: Wed, 9 Mar 2016 10:47:17 +0100
Subject: [PATCH] New configuration to install radosgw in CEPH to use as swift
 backend

---
 manifests/profile/fastcgi.pp |  3 --
 manifests/profile/radosgw.pp | 46 +++++++++++------
 manifests/role/storage.pp    | 97 +++++++++++-------------------------
 3 files changed, 58 insertions(+), 88 deletions(-)

diff --git a/manifests/profile/fastcgi.pp b/manifests/profile/fastcgi.pp
index 03884f8..b9920dc 100644
--- a/manifests/profile/fastcgi.pp
+++ b/manifests/profile/fastcgi.pp
@@ -1,8 +1,5 @@
 class iaas::profile::fastcgi (
   $enable_fastcgi = false,
-  $enable_rgw = false,
-  $os_endpoint = $iaas::params::main_hostname,
-  $os_admin_token = $iaas::params::os_admin_token,
 ) {
 
   if $enable_fastcgi {
diff --git a/manifests/profile/radosgw.pp b/manifests/profile/radosgw.pp
index af2af94..d6cc917 100644
--- a/manifests/profile/radosgw.pp
+++ b/manifests/profile/radosgw.pp
@@ -1,15 +1,14 @@
 class iaas::profile::radosgw (
-  $enable_fastcgi = false,
   $enable_rgw = false,
   $os_endpoint = $iaas::params::main_hostname,
   $os_admin_token = $iaas::params::os_admin_token,
+  $secret_user = undef,
 ) {
 
   if $enable_rgw {
     ceph::rgw { 'radosgw.gateway':
       pkg_radosgw        => $::ceph::params::pkg_radosgw,
       rgw_data           => "/var/lib/ceph/radosgw/ceph-radosgw.gateway",
-#      user               => $ceph::profile::params::rgw_user,
       user               => 'root',
       keyring_path       => "/etc/ceph/ceph.client.radosgw.gateway.keyring",
       log_file           => '/var/log/ceph/radosgw.log',
@@ -17,23 +16,38 @@ class iaas::profile::radosgw (
       rgw_socket_path    => '/var/run/ceph/ceph.radosgw.gateway.fastcgi.sock',
       syslog             => true,
       rgw_port           => '80',
-#      frontend_type      => 'civetweb',
-#      rgw_frontends      => "civetweb port=$::hostname:7480",
-      frontend_type      => 'apache-fastcgi',
-      rgw_frontends      => "fastcgi socket_port=9000 socket_host=$::hostname",
+      frontend_type      => 'civetweb',
+      rgw_frontends      => "civetweb port=7481",
       rgw_print_continue => 'false',
     } 
-
-#    ceph::rgw::keystone { 'radosgw.gateway':
-#      rgw_keystone_admin_token         => $os_admin_token,
-#      rgw_keystone_url                 => "http://${os_endpoint}:5000",
-#      rgw_keystone_version             => 'v2.0',
-#      rgw_keystone_accepted_roles      => '_member_, Member',
-#      rgw_keystone_token_cache_size    => 500,
-#      rgw_keystone_revocation_interval => 600,
-#      nss_db_path                      => '/var/lib/ceph/nss',
-#      user                             => 'root',
+#    exec { "ocp_user_create":
+#      command => "radosgw-admin user create --uid=ocpuser --display-name=ocpuser",
+#      path    => "/usr/local/bin/:/bin/:/usr/bin/:/sbin/:/usr/sbin/",
+#    } ->
+#    exec { "ocp_user_buckets":
+#      command => "radosgw-admin user modify --uid=ocpuser --max-buckets=0",
+#      path    => "/usr/local/bin/:/bin/:/usr/bin/:/sbin/:/usr/sbin/",
+#    } ->
+#    exec { "ocp_subuser_create":
+#      command => "radosgw-admin subuser create --uid=ocpuser --subuser=ocpuser:swift --access=full",
+#      path    => "/usr/local/bin/:/bin/:/usr/bin/:/sbin/:/usr/sbin/",
+#    } ->
+#    exec { "ocp_key_create":
+#      command => "radosgw-admin key create --subuser=ocpuser:swift --key-type=swift --secret=$secret_user",
+#      path    => "/usr/local/bin/:/bin/:/usr/bin/:/sbin/:/usr/sbin/",
 #    }
+
+    ceph::rgw::keystone { 'radosgw.gateway':
+      rgw_keystone_admin_token         => $os_admin_token,
+      rgw_keystone_url                 => "http://${os_endpoint}:5000",
+      rgw_keystone_version             => 'v2.0',
+      rgw_keystone_accepted_roles      => '_member_, Member, admin',
+      rgw_keystone_token_cache_size    => 500,
+      rgw_keystone_revocation_interval => 600,
+      nss_db_path                      => '/var/lib/ceph/nss',
+      user                             => 'root',
+    }
+
   }
 }
 
diff --git a/manifests/role/storage.pp b/manifests/role/storage.pp
index a30c38a..5c636d8 100644
--- a/manifests/role/storage.pp
+++ b/manifests/role/storage.pp
@@ -8,7 +8,7 @@ $ceph_secret_cinder           	= 'AQAvxQpVKJ03KxAADFv78tedrAWZx1SoRdsQUA==',
 $ceph_secret_cinderbkup     	= 'AQBKvuVUMHvaGhAADT6nvBv9LFs7dqpB8Kis0Q==',
 $ceph_bootstrap_mdskey		= 'AQBxkvVU4F+VDBAArxUf+8s0LbxIxNrbyEC1kw==',
 $ceph_mon_key			= 'AQApksZUIJhXJxAAEHVW/dbL1OeLA7Om++zdVw==',
-$ceph_secret_radosgw            = 'AQCbGddWJyqjHBAAomrJkvccCHsWaNcIif65mg==',
+#$ceph_secret_radosgw            = 'AQCbGddWJyqjHBAAomrJkvccCHsWaNcIif65mg==',
 $ceph_secret_radosgw_gateway    = 'AQBNN9dWbU3SORAAERedNbXc0gxm0edAfayf2w==',
 
 ##OSD+POOL configuration
@@ -17,7 +17,7 @@ $osd_configure			= true,
 ##CEPH - no override
 $ceph_fsid 		= $iaas::params::ceph_fsid,
 # Uncomment if auth_type is different from 'cephx'
-$ceph_auth_type 	= $iaas::params::ceph_auth_type,
+#$ceph_auth_type 	= $iaas::params::ceph_auth_type,
 $ceph_mon_initmembers 	= $iaas::params::ceph_mon_initmemb,
 $ceph_mon_host 		= $iaas::params::ceph_mon_host,
 $ceph_osdpool_pgnum 	= $iaas::params::ceph_osdpool_pgnum,
@@ -29,20 +29,30 @@ $ceph_public_network 	= $iaas::params::ceph_public_network,
 $ceph_journal_size 	= $iaas::params::ceph_journal_size,
 
 ##CEPH - override
-$ceph_pool =  {'images'   => { pg_num => '128'},
-               'volumes'  => { pg_num => '128'},
-               'vms'      => { pg_num => '128'},
-               'backups'  => { pg_num => '128'}},
+$ceph_pool =  {'images'             => { pg_num => '8'},
+               'volumes'            => { pg_num => '64'},
+               'vms'                => { pg_num => '16'},
+               'backups'            => { pg_num => '32'},
+               '.rgw.root'          => { pg_num => '4'},
+               '.rgw.control'       => { pg_num => '4'},
+               '.rgw.gc'            => { pg_num => '4'},
+               '.rgw.buckets'       => { pg_num => '32'},
+               '.rgw.buckets.index' => { pg_num => '4'},
+               '.rgw.buckets.extra' => { pg_num => '4'},
+               '.log'               => { pg_num => '4'},
+               '.intent-log'        => { pg_num => '4'},
+               '.usage'             => { pg_num => '4'},
+               '.users'             => { pg_num => '4'},
+               '.users.email'       => { pg_num => '4'},
+               '.users.swift'       => { pg_num => '4'},
+               '.users.uid'         => { pg_num => '4'}},
+
 $ceph_osd  =  {'/dev/vdb'=> { journal => '/osd1'},                       
                '/dev/vdc'=> { journal => '/osd2'}},
 
 ##RADOSGW
 $rgw_enable = false,
 
-##OPENSTACK
-#$os_endpoint = $iaas::params::main_hostname,
-#$os_admin_token = $iaas::params::os_admin_token,
-
 ) {
 
 # Ceph
@@ -101,7 +111,6 @@ $rgw_enable = false,
    'client.radosgw.gateway':
      secret => $ceph_secret_radosgw_gateway,
      cap_mon => 'allow rwx',
-#     cap_osd => 'allow class-read object_prefix rbd_children, allow rwx pool=objstore',
      cap_osd => 'allow rwx',
      inject => 'true',
      inject_as_id => 'mon.',
@@ -109,60 +118,13 @@ $rgw_enable = false,
   } 
 
 
-#  if $rgw_enable {
-#
-#    ceph::rgw::apache_fastcgi { 'radosgw.gateway':
-#      admin_email      => 'root@localhost',
-#      docroot          => '/var/www',
-#      fcgi_file        => '/var/www/rgw.fcgi',
-#      rgw_dns_name     => $::fqdn,
-#      rgw_port         => 80,
-#      rgw_socket_path  => $::ceph::params::rgw_socket_path,
-#      syslog           => true,
-#      ceph_apache_repo => true,
-#    } ->
-#
-#    ceph::rgw { 'radosgw.gateway':
-#      pkg_radosgw        => $::ceph::params::pkg_radosgw,
-#      rgw_data           => "/var/lib/ceph/radosgw/ceph-radosgw.gateway",
-##      user               => $ceph::profile::params::rgw_user,
-#      user               => 'www-data',
-#      keyring_path       => "/etc/ceph/ceph.client.radosgw.gateway.keyring",
-#      log_file           => '/var/log/ceph/radosgw.log',
-#      rgw_dns_name       => $::fqdn,
-#      rgw_socket_path    => $::ceph::params::rgw_socket_path,
-#      syslog             => true,
-#      rgw_port           => '80',
-##      frontend_type      => 'civetweb',
-##      rgw_frontends      => 'civetweb port=$::hostname:7480',
-#      frontend_type      => 'apache-fastcgi',
-#      rgw_frontends      => "fastcgi socket_port=9000 socket_host=$::hostname",
-#      rgw_print_continue => 'false',
-#    } ->
-#
-#    ceph::rgw::keystone { 'radosgw.gateway':
-#      rgw_keystone_admin_token         => $iaas::params::os_admin_token,
-#      rgw_keystone_url                 => "http://${os_endpoint}:5000",
-#      rgw_keystone_version             => 'v2.0',
-#      rgw_keystone_accepted_roles      => '_member_, Member',
-#      rgw_keystone_token_cache_size    => 500,
-#      rgw_keystone_revocation_interval => 600,
-#      nss_db_path                      => '/var/lib/ceph/nss',
-#      user                             => 'www-data',
-#    }
-#  }
-
 
 # Classes
-#  class { 'iaas::profile::base': 
-#        dns_servers             => $iaas::params::dns_servers,
-#        dns_searchdomain        => $iaas::params::dns_searchdomain,
-#  } ->
 # CEPH
   class {'ceph::profile::params':
      fsid                       => $iaas::params::ceph_fsid,
 # Uncomment if auth_type is different from 'cephx'
-     authentication_type        => $iaas::params::ceph_auth_type,
+#     authentication_type        => $iaas::params::ceph_auth_type,
      mon_initial_members        => $iaas::params::ceph_mon_initmemb,
      mon_host                   => $iaas::params::ceph_mon_host,
      osd_pool_default_pg_num    => $iaas::params::ceph_osdpool_pgnum,
@@ -173,21 +135,18 @@ $rgw_enable = false,
      public_network             => $iaas::params::ceph_public_network,
      mon_key                    => $ceph_mon_key,
      osd_journal_size           => $iaas::params::ceph_journal_size,
-     enable_rgw			=> true,
-#     frontend_type              => 'civetweb',
-#     rgw_frontends              => "civetweb port=$::hostname:7480",
-     fastcgi			=> true,
+     enable_rgw			=> $rgw_enable,
+     fastcgi			=> $rgw_enable,
   } ->
-
-  class { 'ceph::profile::base': } ->
   class { 'iaas::profile::fastcgi':
-    enable_fastcgi => true,
+    enable_fastcgi => $rgw_enable,
   } ->
+  class { 'ceph::profile::base': } ->
   class { 'ceph::profile::mon': } ->
-#  class { 'ceph::profile::rgw': } ->
-  class { 'ceph::keys': }
+  class { 'ceph::keys': } 
   class { 'iaas::profile::radosgw': 
-   enable_rgw => true,
+   enable_rgw => $rgw_enable,
+#   secret_user => $ceph_secret_radosgw, 
   } 
  
 }
-- 
GitLab