Skip to content
Snippets Groups Projects
storage.pp 3.99 KiB
class iaas::role::storage (

##CEPH Secrets - override
$secret_client_admin            = 'AQDgL/hUSC2kLBAAnWJaSiqJG+YMk+XV9sapnw==',
$secret_client_bootstraposd     = 'AQDlL/hUUCpdFBAAZeo6mKj4yeKPmVKfUY5awA==',
$secret_client_glance           = 'AQBgGdJUCPwjLRAARZ0KEaxewYcYHT3j5Gl5Cg==',
$secret_client_cinder           = 'AQAvxQpVKJ03KxAADFv78tedrAWZx1SoRdsQUA==',
$secret_client_cinderbackup     = 'AQBKvuVUMHvaGhAADT6nvBv9LFs7dqpB8Kis0Q==',
$bootstrap_mds_key		= 'AQBxkvVU4F+VDBAArxUf+8s0LbxIxNrbyEC1kw==',
$mon_key			= 'AQApksZUIJhXJxAAEHVW/dbL1OeLA7Om++zdVw==',

##CEPH - no override
$fsid = $iaas::params::ceph_fsid,
# Uncomment if auth_type is different from 'cephx'
#authentication_type = $iaas::params::ceph_authentication_type,
$mon_initial_members = $iaas::params::ceph_mon_initial_members,
$mon_host = $iaas::params::ceph_on_host,
$osd_pool_default_pg_num = $iaas::params::ceph_osd_pool_default_pg_num,
$osd_pool_default_pgp_num = $iaas::params::ceph_osd_pool_default_pgp_num,
$osd_pool_default_size = $iaas::params::ceph_osd_pool_default_size, 
$osd_pool_default_min_size = $iaas::params::ceph_osd_pool_default_min_size,
$cluster_network = $iaas::params::ceph_cluster_network,
$public_network = $iaas::params::ceph_public_network,
$osd_journal_size = $iaas::params::ceph_osd_journal_size,

#CEPH - override
$ceph_pool =  {'images'  => { pg_num => '128'},
               'volumes' => { pg_num => '128'},
               'vms'     => { pg_num => '128'},
               'backups' => { pg_num => '128'}},
$ceph_osd  =  {'/dev/vdb'=> { journal => '/osd1'},                       
               '/dev/vdc'=> { journal => '/osd2'}},


) {

# Ceph
##OSD

  create_resources( ceph::osd, $ceph_osd )

##POOL
  create_resources( ceph::pool, $ceph_pool )

##KEY
  ceph::key {
   'client.admin':
     secret => $secret_client_admin,
     cap_mon => 'allow *',
     cap_osd => 'allow *',
     cap_mds => 'allow',
     inject => 'true',
     inject_as_id => 'mon.',
     inject_keyring => "/var/lib/ceph/mon/ceph-$::hostname/keyring";

   'client.bootstrap-osd':
     secret => $secret_client_bootstraposd,
     cap_mon => 'allow profile bootstrap-osd',
     keyring_path => '/var/lib/ceph/bootstrap-osd/ceph.keyring',
     inject => 'true',
     inject_as_id => 'mon.',
     inject_keyring => "/var/lib/ceph/mon/ceph-$::hostname/keyring";

   'client.glance':
     secret => $secret_client_glance,
     cap_mon => 'allow r',
     cap_osd => 'allow class-read object_prefix rbd_children, allow rwx pool=images',
     inject => 'true',
     inject_as_id => 'mon.',
     inject_keyring => "/var/lib/ceph/mon/ceph-$::hostname/keyring";

   'client.cinder':
     secret => $secret_client_cinder,
     cap_mon => 'allow r',
     cap_osd => 'allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=vms, allow rx pool=images',
     inject => 'true',
     inject_as_id => 'mon.',
     inject_keyring => "/var/lib/ceph/mon/ceph-$::hostname/keyring";
 
   'client.cinder-backup':
     secret => $secret_client_cinderbackup,
     cap_mon => 'allow r',
     cap_osd => 'allow class-read object_prefix rbd_children, allow rwx pool=backups',
     inject => 'true',
     inject_as_id => 'mon.',
     inject_keyring => "/var/lib/ceph/mon/ceph-$::hostname/keyring",
  } 


 # Base
  class { 'iaas::profile::base': } ->

  # CEPH
  class {'ceph::profile::params':
     fsid => $fsid,
# Uncomment if auth_type is different from 'cephx'
     #authentication_type => 'cephx',
     mon_initial_members => $mon_initial_members,
     mon_host => $mon_host,
     osd_pool_default_pg_num => $osd_pool_default_pg_num,
     osd_pool_default_pgp_num => $osd_pool_default_pgp_num,
     osd_pool_default_size => $osd_pool_default_size,
     osd_pool_default_min_size => $osd_pool_default_min_size,
     cluster_network => $cluster_network,
     public_network => $public_network,
     mon_key => $mon_key,
     osd_journal_size => $osd_journal_size,
  } ->
  class { 'ceph::profile::base': } ->
  class { 'ceph::profile::mon': } ->
  class { 'ceph::keys': } ->
  class { 'ceph::osds': }

}