diff --git a/manifests/volume/storage.pp b/manifests/volume/storage.pp index b1922b7b..6aed520c 100644 --- a/manifests/volume/storage.pp +++ b/manifests/volume/storage.pp @@ -15,12 +15,48 @@ # # Volume storage # - +# === Parameters +# +# [*cinder_rbd_pool*] +# (optional) Specifies the pool name for the block device driver. +# +# [*glance_api_version*] +# (optional) Required for Ceph functionality. +# +# [*cinder_rbd_user*] +# (optional) A required parameter to configure OS init scripts and cephx. +# +# [*cinder_rbd_secret_uuid*] +# (optional) A required parameter to use cephx. +# +# [*cinder_rbd_conf*] +# (optional) Path to the ceph configuration file to use +# Defaults to '/etc/ceph/ceph.conf' +# +# [*cinder_rbd_flatten_volume_from_snapshot*] +# (optional) Enalbe flatten volumes created from snapshots. +# Defaults to false +# +# [*cinder_volume_tmp_dir*] +# (optional) Location to store temporary image files if the volume +# driver does not write them directly to the volume +# Defaults to false +# +# [*cinder_rbd_max_clone_depth*] +# (optional) Maximum number of nested clones that can be taken of a +# volume before enforcing a flatten prior to next clone. +# A value of zero disables cloning +# Defaults to '5' +# +# class cloud::volume::storage( - $glance_api_version = $os_params::glance_api_version, - $cinder_rbd_pool = $os_params::cinder_rbd_pool, - $cinder_rbd_user = $os_params::cinder_rbd_user, - $cinder_rbd_secret_uuid = $os_params::ceph_fsid, + $glance_api_version = $os_params::glance_api_version, + $cinder_rbd_pool = $os_params::cinder_rbd_pool, + $cinder_rbd_user = $os_params::cinder_rbd_user, + $cinder_rbd_secret_uuid = $os_params::ceph_fsid, + $cinder_rbd_conf = '/etc/ceph/ceph.conf', + $cinder_rbd_flatten_volume_from_snapshot = false, + $cinder_rbd_max_clone_depth = '5', ) { include 'cloud::volume' @@ -28,10 +64,13 @@ class cloud::volume::storage( include 'cinder::volume' class { 'cinder::volume::rbd': - rbd_pool => $cinder_rbd_pool, - glance_api_version => $glance_api_version, - rbd_user => $cinder_rbd_user, - rbd_secret_uuid => $cinder_rbd_secret_uuid + rbd_pool => $cinder_rbd_pool, + glance_api_version => $glance_api_version, + rbd_user => $cinder_rbd_user, + rbd_secret_uuid => $cinder_rbd_secret_uuid, + rbd_ceph_conf => $cinder_rbd_conf, + rbd_flatten_volume_from_snapshot => $cinder_rbd_flatten_volume_from_snapshot, + rbd_max_clone_depth => $cinder_rbd_max_clone_depth, } Ceph::Key <<| title == $cinder_user |>> diff --git a/spec/classes/cloud_volume_storage_spec.rb b/spec/classes/cloud_volume_storage_spec.rb index 71693973..23076aeb 100644 --- a/spec/classes/cloud_volume_storage_spec.rb +++ b/spec/classes/cloud_volume_storage_spec.rb @@ -72,10 +72,13 @@ describe 'cloud::volume::storage' do should contain_class('cinder::volume') should contain_class('cinder::volume::rbd').with( - :rbd_pool => 'ceph_cinder', - :glance_api_version => '2', - :rbd_user => 'cinder', - :rbd_secret_uuid => 'secrete' + :rbd_pool => 'ceph_cinder', + :glance_api_version => '2', + :rbd_user => 'cinder', + :rbd_secret_uuid => 'secrete', + :rbd_ceph_conf => '/etc/ceph/ceph.conf', + :rbd_flatten_volume_from_snapshot => false, + :rbd_max_clone_depth => '5' ) end