From 5d2acead72c28910c7712b49bb90ff5f441a79e9 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Thu, 9 Apr 2020 08:23:38 +0900 Subject: [PATCH] Add parameters for multipath connection in cinder backend This patch introduced the following 2 parameters into glance::backend::multistore::cinder class, so that operators can define multipath usage in volume connection by puppet parameter. - cinder_enforce_multipath - cinder_use_multipath Change-Id: I17af43fe8cdf437c90453d316b66c3ea9d4f2745 --- manifests/backend/multistore/cinder.pp | 14 ++++++++++++++ ...-backend-cinder-multipath-d18f73e3a9c55b05.yaml | 6 ++++++ .../glance_backend_multistore_cinder_spec.rb | 10 ++++++++++ 3 files changed, 30 insertions(+) create mode 100644 releasenotes/notes/glance-backend-cinder-multipath-d18f73e3a9c55b05.yaml diff --git a/manifests/backend/multistore/cinder.pp b/manifests/backend/multistore/cinder.pp index caa26699..084e78e6 100644 --- a/manifests/backend/multistore/cinder.pp +++ b/manifests/backend/multistore/cinder.pp @@ -61,6 +61,14 @@ # (optional) A valid password for the user specified by `cinder_store_user_name' # Defaults to $::os_service_default. # +# [*cinder_enforce_multipath*] +# (optional) Enforce multipath usage when attaching a cinder volume +# Defaults to $::os_service_default. +# +# [*cinder_use_multipath*] +# (optional) Flag to identify multipath is supported or not in the deployment +# Defaults to $::os_service_default. +# # [*store_description*] # (optional) Provides constructive information about the store backend to # end users. @@ -76,6 +84,8 @@ define glance::backend::multistore::cinder( $cinder_store_project_name = $::os_service_default, $cinder_store_user_name = $::os_service_default, $cinder_store_password = $::os_service_default, + $cinder_enforce_multipath = $::os_service_default, + $cinder_use_multipath = $::os_service_default, $store_description = $::os_service_default, ) { @@ -91,6 +101,8 @@ define glance::backend::multistore::cinder( "${name}/cinder_store_project_name": value => $cinder_store_project_name; "${name}/cinder_store_user_name": value => $cinder_store_user_name; "${name}/cinder_store_password": value => $cinder_store_password; + "${name}/cinder_enforce_multipath": value => $cinder_enforce_multipath; + "${name}/cinder_use_multipath": value => $cinder_use_multipath; "${name}/store_description": value => $store_description; } @@ -103,6 +115,8 @@ define glance::backend::multistore::cinder( "${name}/cinder_store_auth_address": value => $cinder_store_auth_address; "${name}/cinder_store_project_name": value => $cinder_store_project_name; "${name}/cinder_store_user_name": value => $cinder_store_user_name; + "${name}/cinder_enforce_multipath": value => $cinder_enforce_multipath; + "${name}/cinder_use_multipath": value => $cinder_use_multipath; "${name}/cinder_store_password": value => $cinder_store_password; } diff --git a/releasenotes/notes/glance-backend-cinder-multipath-d18f73e3a9c55b05.yaml b/releasenotes/notes/glance-backend-cinder-multipath-d18f73e3a9c55b05.yaml new file mode 100644 index 00000000..6e9f52c7 --- /dev/null +++ b/releasenotes/notes/glance-backend-cinder-multipath-d18f73e3a9c55b05.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The new parameters, cinder_enforce_multipath and cinder_use_multipath, are + intoroduced into cinder::backend::multistore::cinder class, so that + operators can define multipath usage in volume connection. diff --git a/spec/defines/glance_backend_multistore_cinder_spec.rb b/spec/defines/glance_backend_multistore_cinder_spec.rb index 2cba7f7c..3625aa05 100644 --- a/spec/defines/glance_backend_multistore_cinder_spec.rb +++ b/spec/defines/glance_backend_multistore_cinder_spec.rb @@ -40,6 +40,8 @@ describe 'glance::backend::multistore::cinder' do is_expected.to contain_glance_api_config('cinder/cinder_store_project_name').with_value('') is_expected.to contain_glance_api_config('cinder/cinder_store_user_name').with_value('') is_expected.to contain_glance_api_config('cinder/cinder_store_password').with_value('') + is_expected.to contain_glance_api_config('cinder/cinder_enforce_multipath').with_value('') + is_expected.to contain_glance_api_config('cinder/cinder_use_multipath').with_value('') end it 'configures glance-cache.conf' do is_expected.to_not contain_glance_cache_config('cinder/store_description') @@ -52,6 +54,8 @@ describe 'glance::backend::multistore::cinder' do is_expected.to contain_glance_cache_config('cinder/cinder_store_project_name').with_value('') is_expected.to contain_glance_cache_config('cinder/cinder_store_user_name').with_value('') is_expected.to contain_glance_cache_config('cinder/cinder_store_password').with_value('') + is_expected.to contain_glance_cache_config('cinder/cinder_enforce_multipath').with_value('') + is_expected.to contain_glance_cache_config('cinder/cinder_use_multipath').with_value('') end end @@ -68,6 +72,8 @@ describe 'glance::backend::multistore::cinder' do :cinder_store_project_name => 'services', :cinder_store_user_name => 'glance', :cinder_store_password => 'glance', + :cinder_enforce_multipath => true, + :cinder_use_multipath => true, } end it 'configures glance-api.conf' do @@ -81,6 +87,8 @@ describe 'glance::backend::multistore::cinder' do is_expected.to contain_glance_api_config('cinder/cinder_store_project_name').with_value('services') is_expected.to contain_glance_api_config('cinder/cinder_store_user_name').with_value('glance') is_expected.to contain_glance_api_config('cinder/cinder_store_password').with_value('glance') + is_expected.to contain_glance_api_config('cinder/cinder_enforce_multipath').with_value(true) + is_expected.to contain_glance_api_config('cinder/cinder_use_multipath').with_value(true) end it 'configures glance-cache.conf' do is_expected.to_not contain_glance_cache_config('cinder/store_description') @@ -93,6 +101,8 @@ describe 'glance::backend::multistore::cinder' do is_expected.to contain_glance_cache_config('cinder/cinder_store_project_name').with_value('services') is_expected.to contain_glance_cache_config('cinder/cinder_store_user_name').with_value('glance') is_expected.to contain_glance_cache_config('cinder/cinder_store_password').with_value('glance') + is_expected.to contain_glance_cache_config('cinder/cinder_enforce_multipath').with_value(true) + is_expected.to contain_glance_cache_config('cinder/cinder_use_multipath').with_value(true) end end end