diff --git a/deployment/cinder/cinder-backend-netapp-puppet.yaml b/deployment/cinder/cinder-backend-netapp-puppet.yaml index a00acd00b6..4e41e7eaee 100644 --- a/deployment/cinder/cinder-backend-netapp-puppet.yaml +++ b/deployment/cinder/cinder-backend-netapp-puppet.yaml @@ -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} diff --git a/environments/cinder-netapp-config.yaml b/environments/cinder-netapp-config.yaml index 8c540baafd..ef41d7f13e 100644 --- a/environments/cinder-netapp-config.yaml +++ b/environments/cinder-netapp-config.yaml @@ -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'. diff --git a/environments/storage/cinder-netapp-config.yaml b/environments/storage/cinder-netapp-config.yaml index 4cbf9539bc..c7718dda91 100644 --- a/environments/storage/cinder-netapp-config.yaml +++ b/environments/storage/cinder-netapp-config.yaml @@ -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: + # 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 diff --git a/releasenotes/notes/cinder-multiple-netapp-backends-71ed7fef3008e654.yaml b/releasenotes/notes/cinder-multiple-netapp-backends-71ed7fef3008e654.yaml new file mode 100644 index 0000000000..61dc991124 --- /dev/null +++ b/releasenotes/notes/cinder-multiple-netapp-backends-71ed7fef3008e654.yaml @@ -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.