Support deploying multiple Cinder Netapp Storage backends

CinderNetappBackendName is enhanced to support a list of backend names,
and a new CinderNetappMultiConfig parameter provides a way to specify
parameter values for each backend.

The CinderNetappVolumeList parameter is properly marked as deprecated.
The corresponding parameter no longer exists in cinder and puppet-cinder,
and it was made obsolete when the CinderNetappPoolNameSearchPattern
was introduced several cycles ago.

Depends-On: I15f4828beb9db81583146fa9afdd21999ad5b078
Change-Id: Iecc11782372097bb7f24b6cbc342c38148b9c469
This commit is contained in:
Alan Bishop 2020-11-12 08:43:58 -08:00
parent b289ef4f4c
commit fce83f534b
4 changed files with 55 additions and 8 deletions

View File

@ -33,8 +33,16 @@ parameters:
type: boolean
default: true
CinderNetappBackendName:
type: string
type: comma_delimited_list
default: 'tripleo_netapp'
description: A list of Cinder NetApp backend names.
CinderNetappMultiConfig:
type: json
default: {}
description: >
Dictionary of settings when configuring multiple NetApp backends. The
hash key is the backend name, and the value is a dictionary of parameter
values unique to that backend.
CinderNetappAvailabilityZone:
default: ''
description: >
@ -66,9 +74,6 @@ parameters:
CinderNetappVfiler:
type: string
default: ''
CinderNetappVolumeList:
type: string
default: ''
CinderNetappVserver:
type: string
default: ''
@ -114,9 +119,22 @@ parameters:
type: string
default: 'false'
# DEPRECATED options for compatibility with older versions
# These are obsolete now that CinderNetappPoolNameSearchPattern is fully
# supported here and in puppet-tripleo.
CinderNetappStoragePools:
type: string
default: ''
CinderNetappVolumeList:
type: string
default: ''
parameter_groups:
- label: deprecated
description: |
The following parameters are deprecated and will be removed.
parameters:
- CinderNetappStoragePools
- CinderNetappVolumeList
outputs:
role_data:
@ -127,6 +145,7 @@ outputs:
map_merge:
- tripleo::profile::base::cinder::volume::cinder_enable_netapp_backend: {get_param: CinderEnableNetappBackend}
cinder::backend::netapp::volume_backend_name: {get_param: CinderNetappBackendName}
cinder::backend::netapp::volume_multi_config: {get_param: CinderNetappMultiConfig}
cinder::backend::netapp::netapp_login: {get_param: CinderNetappLogin}
cinder::backend::netapp::netapp_password: {get_param: CinderNetappPassword}
cinder::backend::netapp::netapp_server_hostname: {get_param: CinderNetappServerHostname}
@ -136,7 +155,6 @@ outputs:
cinder::backend::netapp::netapp_storage_protocol: {get_param: CinderNetappStorageProtocol}
cinder::backend::netapp::netapp_transport_type: {get_param: CinderNetappTransportType}
cinder::backend::netapp::netapp_vfiler: {get_param: CinderNetappVfiler}
cinder::backend::netapp::netapp_volume_list: {get_param: CinderNetappVolumeList}
cinder::backend::netapp::netapp_vserver: {get_param: CinderNetappVserver}
cinder::backend::netapp::netapp_partner_backend_name: {get_param: CinderNetappPartnerBackendName}
cinder::backend::netapp::nfs_shares: {get_param: CinderNetappNfsShares}

View File

@ -6,6 +6,7 @@ resource_registry:
parameter_defaults:
CinderEnableNetappBackend: true
CinderNetappBackendName: 'tripleo_netapp'
CinderNetappMultiConfig: {}
CinderNetappLogin: ''
CinderNetappPassword: ''
CinderNetappServerHostname: ''
@ -15,7 +16,6 @@ parameter_defaults:
CinderNetappStorageProtocol: 'nfs'
CinderNetappTransportType: 'http'
CinderNetappVfiler: ''
CinderNetappVolumeList: ''
CinderNetappVserver: ''
CinderNetappPartnerBackendName: ''
CinderNetappNfsShares: ''
@ -27,3 +27,21 @@ parameter_defaults:
CinderNetappPoolNameSearchPattern: '(.+)'
CinderNetappHostType: ''
CinderNetappWebservicePath: '/devmgr/v2'
# To configure multiple Netapp backends, use CinderNetappMultiConfig to
# assign parameter values specific to that backend. For example:
# CinderNetappBackendName:
# - tripleo_netapp_1
# - tripleo_netapp_2
# CinderNetappLogin: 'Admin' # Default value for the Netapp backends
# CinderNetappMultiConfig:
# tripleo_netapp_1:
# CinderNetappPassword: 'secret_password_1'
# tripleo_netapp_2:
# CinderNetappPassword: 'secret_password_2'
# CinderNetappNfsSharesConfig: '/etc/cinder/shares_2.conf'
#
# NOTE - Each Netapp backend's CinderNetappNfsSharesConfig must be unique.
# In the above example, tripleo_netapp_1 will be configured with the
# default CinderNetappNfsSharesConfig value ('/etc/cinder/shares.conf'),
# and tripleo_netapp_2 will be configured with '/etc/cinder/shares_2.conf'.

View File

@ -13,8 +13,8 @@ parameter_defaults:
# Type: string
CinderNetappAvailabilityZone: ''
#
# Type: string
# A list of Cinder NetApp backend names.
# Type: comma_delimited_list
CinderNetappBackendName: tripleo_netapp
#
@ -34,6 +34,10 @@ parameter_defaults:
# Type: string
CinderNetappLogin: <None>
# Dictionary of settings when configuring multiple NetApp backends. The hash key is the backend name, and the value is a dictionary of parameter values unique to that backend.
# Type: json
CinderNetappMultiConfig: {}
#
# Type: string
CinderNetappNasSecureFileOperations: false

View File

@ -0,0 +1,7 @@
---
features:
- |
Support deploying multiple Cinder Netapp Storage backends.
CinderNetappBackendName is enhanced to support a list of backend names, and
a new CinderNetappMultiConfig parameter provides a way to specify parameter
values for each backend.