From dc2d0de810dd05662c1ce3f636707e2b5cc934b9 Mon Sep 17 00:00:00 2001 From: Alan Bishop Date: Wed, 3 Oct 2018 14:24:28 -0400 Subject: [PATCH] Add parameters for cinder storage availability zones Add CinderStorageAvailabilityZone parameter that configures cinder's DEFAULT/storage_availability_zone. The default value of 'nova' matches cinder's own default value. Add several CinderXXXAvailabilityZone parameters, where XXX is any of the cinder volume service's storage backends. The parameters are optional, and when set they override the "backend_availability_zone" for the corresponding backend. Implements: blueprint split-controlplane-cinder-volume-az Depends-On: Ic407b747474b567858ad36beabc8a7d8c5022343 Change-Id: Idb035bf112cbab41547bd89935df4c175bf665f4 --- .../storage/cinder-netapp-config.yaml | 4 ++ .../cinder-backend-dellemc-unity.yaml | 28 ++++++--- .../cinder-backend-dellemc-vmax-iscsi.yaml | 18 +++++- .../services/cinder-backend-dellemc-vnx.yaml | 38 ++++++++---- .../cinder-backend-dellemc-xtremio-iscsi.yaml | 30 ++++++--- puppet/services/cinder-backend-dellps.yaml | 36 +++++++---- puppet/services/cinder-backend-dellsc.yaml | 46 +++++++++----- puppet/services/cinder-backend-netapp.yaml | 62 +++++++++++-------- puppet/services/cinder-backend-nvmeof.yaml | 40 +++++++----- puppet/services/cinder-backend-pure.yaml | 26 +++++--- puppet/services/cinder-backend-scaleio.yaml | 46 +++++++++----- .../cinder-backend-veritas-hyperscale.yaml | 14 ++++- puppet/services/cinder-base.yaml | 5 ++ puppet/services/cinder-hpelefthand-iscsi.yaml | 28 ++++++--- puppet/services/cinder-volume.yaml | 33 ++++++++++ ...torage-az-parameters-cddf410bc3464193.yaml | 11 ++++ 16 files changed, 331 insertions(+), 134 deletions(-) create mode 100644 releasenotes/notes/add-cinder-storage-az-parameters-cddf410bc3464193.yaml diff --git a/environments/storage/cinder-netapp-config.yaml b/environments/storage/cinder-netapp-config.yaml index 36568458d9..5375c67549 100644 --- a/environments/storage/cinder-netapp-config.yaml +++ b/environments/storage/cinder-netapp-config.yaml @@ -9,6 +9,10 @@ # A Heat environment file which can be used to enable a # a Cinder NetApp backend, configured via puppet parameter_defaults: + # The availability zone of the NetApp Cinder backend. When set, it overrides the default CinderStorageAvailabilityZone. + # Type: string + CinderNetappAvailabilityZone: '' + # # Type: string CinderNetappBackendName: tripleo_netapp diff --git a/puppet/services/cinder-backend-dellemc-unity.yaml b/puppet/services/cinder-backend-dellemc-unity.yaml index 668335d10b..4f748bf755 100644 --- a/puppet/services/cinder-backend-dellemc-unity.yaml +++ b/puppet/services/cinder-backend-dellemc-unity.yaml @@ -23,6 +23,12 @@ parameters: CinderDellEMCUnityBackendName: type: string default: 'tripleo_dellemc_unity' + CinderDellEMCUnityAvailabilityZone: + default: '' + description: > + The availability zone of the Dell EMC Unity Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderDellEMCUnitySanIp: type: string CinderDellEMCUnitySanLogin: @@ -73,11 +79,17 @@ outputs: value: service_name: cinder_backend_dellemc_unity config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_unity_backend: {get_param: CinderEnableDellEMCUnityBackend} - cinder::backend::dellemc_unity::volume_backend_name: {get_param: CinderDellEMCUnityBackendName} - cinder::backend::dellemc_unity::san_ip: {get_param: CinderDellEMCUnitySanIp} - cinder::backend::dellemc_unity::san_login: {get_param: CinderDellEMCUnitySanLogin} - cinder::backend::dellemc_unity::san_password: {get_param: CinderDellEMCUnitySanPassword} - cinder::backend::dellemc_unity::storage_protocol: {get_param: CinderDellEMCUnityStorageProtocol} - cinder::backend::dellemc_unity::unity_io_ports: {get_param: CinderDellEMCUnityIoPorts} - cinder::backend::dellemc_unity::unity_storage_pool_names: {get_param: CinderDellEMCUnityStoragePoolNames} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_unity_backend: {get_param: CinderEnableDellEMCUnityBackend} + cinder::backend::dellemc_unity::volume_backend_name: {get_param: CinderDellEMCUnityBackendName} + cinder::backend::dellemc_unity::san_ip: {get_param: CinderDellEMCUnitySanIp} + cinder::backend::dellemc_unity::san_login: {get_param: CinderDellEMCUnitySanLogin} + cinder::backend::dellemc_unity::san_password: {get_param: CinderDellEMCUnitySanPassword} + cinder::backend::dellemc_unity::storage_protocol: {get_param: CinderDellEMCUnityStorageProtocol} + cinder::backend::dellemc_unity::unity_io_ports: {get_param: CinderDellEMCUnityIoPorts} + cinder::backend::dellemc_unity::unity_storage_pool_names: {get_param: CinderDellEMCUnityStoragePoolNames} + - + if: + - {equals : [{get_param: CinderDellEMCUnityAvailabilityZone}, '']} + - {} + - cinder::backend::dellemc_unity::backend_availability_zone: {get_param: CinderDellEMCUnityAvailabilityZone} diff --git a/puppet/services/cinder-backend-dellemc-vmax-iscsi.yaml b/puppet/services/cinder-backend-dellemc-vmax-iscsi.yaml index 403a9fd8a2..109513ec7b 100644 --- a/puppet/services/cinder-backend-dellemc-vmax-iscsi.yaml +++ b/puppet/services/cinder-backend-dellemc-vmax-iscsi.yaml @@ -23,6 +23,12 @@ parameters: CinderDellEMCVMAXISCSIBackendName: type: string default: 'tripleo_dellemc_vmax_iscsi' + CinderDellEMCVMAXISCSIAvailabilityZone: + default: '' + description: > + The availability zone of the Dell EMC VMAX iSCSI Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderDellEMCVMAXISCSIConfigFile: type: string ServiceData: @@ -58,6 +64,12 @@ outputs: value: service_name: cinder_backend_dellemc_vmax_iscsi config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_vmax_iscsi_backend: {get_param: CinderEnableDellEMCVMAXISCSIBackend} - cinder::backend::dellemc_vmax_iscsi::volume_backend_name: {get_param: CinderDellEMCVMAXISCSIBackendName} - cinder::backend::dellemc_vmax_iscsi::cinder_emc_config_file: {get_param: CinderDellEMCVMAXISCSIConfigFile} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_vmax_iscsi_backend: {get_param: CinderEnableDellEMCVMAXISCSIBackend} + cinder::backend::dellemc_vmax_iscsi::volume_backend_name: {get_param: CinderDellEMCVMAXISCSIBackendName} + cinder::backend::dellemc_vmax_iscsi::cinder_emc_config_file: {get_param: CinderDellEMCVMAXISCSIConfigFile} + - + if: + - {equals : [{get_param: CinderDellEMCVMAXISCSIAvailabilityZone}, '']} + - {} + - cinder::backend::dellemc_vmax_iscsi::backend_availability_zone: {get_param: CinderDellEMCVMAXISCSIAvailabilityZone} diff --git a/puppet/services/cinder-backend-dellemc-vnx.yaml b/puppet/services/cinder-backend-dellemc-vnx.yaml index 9655ea0daf..b6b428ae9e 100644 --- a/puppet/services/cinder-backend-dellemc-vnx.yaml +++ b/puppet/services/cinder-backend-dellemc-vnx.yaml @@ -23,6 +23,12 @@ parameters: CinderDellEMCVNXBackendName: type: string default: tripleo_dellemc_vnx + CinderDellEMCVNXAvailabilityZone: + default: '' + description: > + The availability zone of the Dell EMC VNX Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderDellEMCVNXSanIp: type: string CinderDellEMCVNXSanLogin: @@ -89,16 +95,22 @@ outputs: value: service_name: cinder_backend_dellemc_vnx config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_vnx_backend: {get_param: CinderEnableDellEMCVNXBackend} - cinder::backend::emc_vnx::volume_backend_name: {get_param: CinderDellEMCVNXBackendName} - cinder::backend::emc_vnx::san_ip: {get_param: CinderDellEMCVNXSanIp} - cinder::backend::emc_vnx::san_login: {get_param: CinderDellEMCVNXSanLogin} - cinder::backend::emc_vnx::san_password: {get_param: CinderDellEMCVNXSanPassword} - cinder::backend::emc_vnx::storage_protocol: {get_param: CinderDellEMCVNXStorageProtocol} - cinder::backend::emc_vnx::storage_vnx_pool_names: {get_param: CinderDellEMCVNXStoragePoolNames} - cinder::backend::emc_vnx::default_timeout: {get_param: CinderDellEMCVNXDefaultTimeout} - cinder::backend::emc_vnx::max_luns_per_storage_group: {get_param: CinderDellEMCVNXMaxLunsPerStorageGroup} - cinder::backend::emc_vnx::initiator_auto_registration: {get_param: CinderDellEMCVNXInitiatorAutoRegistration} - cinder::backend::emc_vnx::storage_vnx_auth_type: {get_param: CinderDellEMCVNXAuthType} - cinder::backend::emc_vnx::storage_vnx_security_file_dir: {get_param: CinderDellEMCVNXStorageSecurityFileDir} - cinder::backend::emc_vnx::naviseccli_path: {get_param: CinderDellEMCVNXNaviSecCliPath} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_vnx_backend: {get_param: CinderEnableDellEMCVNXBackend} + cinder::backend::emc_vnx::volume_backend_name: {get_param: CinderDellEMCVNXBackendName} + cinder::backend::emc_vnx::san_ip: {get_param: CinderDellEMCVNXSanIp} + cinder::backend::emc_vnx::san_login: {get_param: CinderDellEMCVNXSanLogin} + cinder::backend::emc_vnx::san_password: {get_param: CinderDellEMCVNXSanPassword} + cinder::backend::emc_vnx::storage_protocol: {get_param: CinderDellEMCVNXStorageProtocol} + cinder::backend::emc_vnx::storage_vnx_pool_names: {get_param: CinderDellEMCVNXStoragePoolNames} + cinder::backend::emc_vnx::default_timeout: {get_param: CinderDellEMCVNXDefaultTimeout} + cinder::backend::emc_vnx::max_luns_per_storage_group: {get_param: CinderDellEMCVNXMaxLunsPerStorageGroup} + cinder::backend::emc_vnx::initiator_auto_registration: {get_param: CinderDellEMCVNXInitiatorAutoRegistration} + cinder::backend::emc_vnx::storage_vnx_auth_type: {get_param: CinderDellEMCVNXAuthType} + cinder::backend::emc_vnx::storage_vnx_security_file_dir: {get_param: CinderDellEMCVNXStorageSecurityFileDir} + cinder::backend::emc_vnx::naviseccli_path: {get_param: CinderDellEMCVNXNaviSecCliPath} + - + if: + - {equals : [{get_param: CinderDellEMCVNXAvailabilityZone}, '']} + - {} + - cinder::backend::emc_vnx::backend_availability_zone: {get_param: CinderDellEMCVNXAvailabilityZone} diff --git a/puppet/services/cinder-backend-dellemc-xtremio-iscsi.yaml b/puppet/services/cinder-backend-dellemc-xtremio-iscsi.yaml index 40d67e4847..c4bf826803 100644 --- a/puppet/services/cinder-backend-dellemc-xtremio-iscsi.yaml +++ b/puppet/services/cinder-backend-dellemc-xtremio-iscsi.yaml @@ -23,6 +23,12 @@ parameters: CinderDellEMCXTREMIOIscsiBackendName: type: string default: tripleo_dellemc_xtremio_iscsi + CinderDellEMCXTREMIOIscsiAvailabilityZone: + default: '' + description: > + The availability zone of the Dell EMC XtremeIO iSCSI Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderDellEMCXTREMIOIscsiSanIp: type: string CinderDellEMCXTREMIOIscsiSanLogin: @@ -80,12 +86,18 @@ outputs: value: service_name: cinder_backend_dellemc_xtremio_iscsi config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_xtremio_iscsi_backend: {get_param: CinderEnableDellEMCXTREMIOIscsiBackend} - cinder::backend::dellemc_xtremio_iscsi::volume_backend_name: {get_param: CinderDellEMCXTREMIOIscsiBackendName} - cinder::backend::dellemc_xtremio_iscsi::san_ip: {get_param: CinderDellEMCXTREMIOIscsiSanIp} - cinder::backend::dellemc_xtremio_iscsi::san_login: {get_param: CinderDellEMCXTREMIOIscsiSanLogin} - cinder::backend::dellemc_xtremio_iscsi::san_password: {get_param: CinderDellEMCXTREMIOIscsiSanPassword} - cinder::backend::dellemc_xtremio_iscsi::xtremio_cluster_name: {get_param: CinderDellEMCXTREMIOIscsiClusterName} - cinder::backend::dellemc_xtremio_iscsi::xtremio_array_busy_retry_count: {get_param: CinderDellEMCXTREMIOIscsiArrayBusyRetryCount} - cinder::backend::dellemc_xtremio_iscsi::xtremio_array_busy_retry_interval: {get_param: CinderDellEMCXTREMIOIscsiArrayBusyRetryInterval} - cinder::backend::dellemc_xtremio_iscsi::xtremio_volumes_per_glance_cache: {get_param: CinderDellEMCXTREMIOIscsiVolumesPerGlanceCache} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_dellemc_xtremio_iscsi_backend: {get_param: CinderEnableDellEMCXTREMIOIscsiBackend} + cinder::backend::dellemc_xtremio_iscsi::volume_backend_name: {get_param: CinderDellEMCXTREMIOIscsiBackendName} + cinder::backend::dellemc_xtremio_iscsi::san_ip: {get_param: CinderDellEMCXTREMIOIscsiSanIp} + cinder::backend::dellemc_xtremio_iscsi::san_login: {get_param: CinderDellEMCXTREMIOIscsiSanLogin} + cinder::backend::dellemc_xtremio_iscsi::san_password: {get_param: CinderDellEMCXTREMIOIscsiSanPassword} + cinder::backend::dellemc_xtremio_iscsi::xtremio_cluster_name: {get_param: CinderDellEMCXTREMIOIscsiClusterName} + cinder::backend::dellemc_xtremio_iscsi::xtremio_array_busy_retry_count: {get_param: CinderDellEMCXTREMIOIscsiArrayBusyRetryCount} + cinder::backend::dellemc_xtremio_iscsi::xtremio_array_busy_retry_interval: {get_param: CinderDellEMCXTREMIOIscsiArrayBusyRetryInterval} + cinder::backend::dellemc_xtremio_iscsi::xtremio_volumes_per_glance_cache: {get_param: CinderDellEMCXTREMIOIscsiVolumesPerGlanceCache} + - + if: + - {equals : [{get_param: CinderDellEMCXTREMIOIscsiAvailabilityZone}, '']} + - {} + - cinder::backend::dellemc_xtremio_iscsi::backend_availability_zone: {get_param: CinderDellEMCXTREMIOIscsiAvailabilityZone} diff --git a/puppet/services/cinder-backend-dellps.yaml b/puppet/services/cinder-backend-dellps.yaml index ba9a3e3fc5..92d7a29ae9 100644 --- a/puppet/services/cinder-backend-dellps.yaml +++ b/puppet/services/cinder-backend-dellps.yaml @@ -24,6 +24,12 @@ parameters: CinderDellPsBackendName: type: string default: 'tripleo_dellps' + CinderDellPsAvailabilityZone: + default: '' + description: > + The availability zone of the Dell PS Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderDellPsSanIp: type: string CinderDellPsSanLogin: @@ -85,15 +91,21 @@ outputs: value: service_name: cinder_backend_dellps config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_dellps_backend: {get_param: CinderEnableDellPsBackend} - cinder::backend::eqlx::volume_backend_name: {get_param: CinderDellPsBackendName} - cinder::backend::eqlx::san_ip: {get_param: CinderDellPsSanIp} - cinder::backend::eqlx::san_login: {get_param: CinderDellPsSanLogin} - cinder::backend::eqlx::san_password: {get_param: CinderDellPsSanPassword} - cinder::backend::eqlx::san_private_key: {get_param: CinderDellPsSanPrivateKey} - cinder::backend::eqlx::san_thin_provision: {get_param: CinderDellPsSanThinProvision} - cinder::backend::eqlx::eqlx_group_name: {get_param: CinderDellPsGroupname} - cinder::backend::eqlx::eqlx_pool: {get_param: CinderDellPsPool} - cinder::backend::eqlx::eqlx_use_chap: {get_param: CinderDellPsUseChap} - cinder::backend::eqlx::eqlx_chap_login: {get_param: CinderDellPsChapLogin} - cinder::backend::eqlx::eqlx_chap_password: {get_param: CinderDellPsChapPassword} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_dellps_backend: {get_param: CinderEnableDellPsBackend} + cinder::backend::eqlx::volume_backend_name: {get_param: CinderDellPsBackendName} + cinder::backend::eqlx::san_ip: {get_param: CinderDellPsSanIp} + cinder::backend::eqlx::san_login: {get_param: CinderDellPsSanLogin} + cinder::backend::eqlx::san_password: {get_param: CinderDellPsSanPassword} + cinder::backend::eqlx::san_private_key: {get_param: CinderDellPsSanPrivateKey} + cinder::backend::eqlx::san_thin_provision: {get_param: CinderDellPsSanThinProvision} + cinder::backend::eqlx::eqlx_group_name: {get_param: CinderDellPsGroupname} + cinder::backend::eqlx::eqlx_pool: {get_param: CinderDellPsPool} + cinder::backend::eqlx::eqlx_use_chap: {get_param: CinderDellPsUseChap} + cinder::backend::eqlx::eqlx_chap_login: {get_param: CinderDellPsChapLogin} + cinder::backend::eqlx::eqlx_chap_password: {get_param: CinderDellPsChapPassword} + - + if: + - {equals : [{get_param: CinderDellPsAvailabilityZone}, '']} + - {} + - cinder::backend::eqlx::backend_availability_zone: {get_param: CinderDellPsAvailabilityZone} diff --git a/puppet/services/cinder-backend-dellsc.yaml b/puppet/services/cinder-backend-dellsc.yaml index cc853264f6..a927c6310b 100644 --- a/puppet/services/cinder-backend-dellsc.yaml +++ b/puppet/services/cinder-backend-dellsc.yaml @@ -23,6 +23,12 @@ parameters: CinderDellScBackendName: type: string default: 'tripleo_dellsc' + CinderDellScAvailabilityZone: + default: '' + description: > + The availability zone of the Dell SC Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderDellScSanIp: type: string CinderDellScSanLogin: @@ -105,20 +111,26 @@ outputs: value: service_name: cinder_backend_dellsc config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_dellsc_backend: {get_param: CinderEnableDellScBackend} - cinder::backend::dellsc_iscsi::volume_backend_name: {get_param: CinderDellScBackendName} - cinder::backend::dellsc_iscsi::san_ip: {get_param: CinderDellScSanIp} - cinder::backend::dellsc_iscsi::san_login: {get_param: CinderDellScSanLogin} - cinder::backend::dellsc_iscsi::san_password: {get_param: CinderDellScSanPassword} - cinder::backend::dellsc_iscsi::dell_sc_ssn: {get_param: CinderDellScSsn} - cinder::backend::dellsc_iscsi::iscsi_ip_address: {get_param: CinderDellScIscsiIpAddress} - cinder::backend::dellsc_iscsi::iscsi_port: {get_param: CinderDellScIscsiPort} - cinder::backend::dellsc_iscsi::dell_sc_api_port: {get_param: CinderDellScApiPort} - cinder::backend::dellsc_iscsi::dell_sc_server_folder: {get_param: CinderDellScServerFolder} - cinder::backend::dellsc_iscsi::dell_sc_volume_folder: {get_param: CinderDellScVolumeFolder} - cinder::backend::dellsc_iscsi::secondary_san_ip: {get_param: CinderDellScSecondarySanIp} - cinder::backend::dellsc_iscsi::secondary_san_login: {get_param: CinderDellScSecondarySanLogin} - cinder::backend::dellsc_iscsi::secondary_san_password: {get_param: CinderDellScSecondarySanPassword} - cinder::backend::dellsc_iscsi::secondary_sc_api_port: {get_param: CinderDellScSecondaryScApiPort} - cinder::backend::dellsc_iscsi::excluded_domain_ips: {get_param: CinderDellScExcludedDomainIps} - cinder::backend::dellsc_iscsi::excluded_domain_ip: {get_param: CinderDellScExcludedDomainIp} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_dellsc_backend: {get_param: CinderEnableDellScBackend} + cinder::backend::dellsc_iscsi::volume_backend_name: {get_param: CinderDellScBackendName} + cinder::backend::dellsc_iscsi::san_ip: {get_param: CinderDellScSanIp} + cinder::backend::dellsc_iscsi::san_login: {get_param: CinderDellScSanLogin} + cinder::backend::dellsc_iscsi::san_password: {get_param: CinderDellScSanPassword} + cinder::backend::dellsc_iscsi::dell_sc_ssn: {get_param: CinderDellScSsn} + cinder::backend::dellsc_iscsi::iscsi_ip_address: {get_param: CinderDellScIscsiIpAddress} + cinder::backend::dellsc_iscsi::iscsi_port: {get_param: CinderDellScIscsiPort} + cinder::backend::dellsc_iscsi::dell_sc_api_port: {get_param: CinderDellScApiPort} + cinder::backend::dellsc_iscsi::dell_sc_server_folder: {get_param: CinderDellScServerFolder} + cinder::backend::dellsc_iscsi::dell_sc_volume_folder: {get_param: CinderDellScVolumeFolder} + cinder::backend::dellsc_iscsi::secondary_san_ip: {get_param: CinderDellScSecondarySanIp} + cinder::backend::dellsc_iscsi::secondary_san_login: {get_param: CinderDellScSecondarySanLogin} + cinder::backend::dellsc_iscsi::secondary_san_password: {get_param: CinderDellScSecondarySanPassword} + cinder::backend::dellsc_iscsi::secondary_sc_api_port: {get_param: CinderDellScSecondaryScApiPort} + cinder::backend::dellsc_iscsi::excluded_domain_ips: {get_param: CinderDellScExcludedDomainIps} + cinder::backend::dellsc_iscsi::excluded_domain_ip: {get_param: CinderDellScExcludedDomainIp} + - + if: + - {equals : [{get_param: CinderDellScAvailabilityZone}, '']} + - {} + - cinder::backend::dellsc_iscsi::backend_availability_zone: {get_param: CinderDellScAvailabilityZone} diff --git a/puppet/services/cinder-backend-netapp.yaml b/puppet/services/cinder-backend-netapp.yaml index 7b67370c68..5a3cf5fbbc 100644 --- a/puppet/services/cinder-backend-netapp.yaml +++ b/puppet/services/cinder-backend-netapp.yaml @@ -35,6 +35,12 @@ parameters: CinderNetappBackendName: type: string default: 'tripleo_netapp' + CinderNetappAvailabilityZone: + default: '' + description: > + The availability zone of the NetApp Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderNetappLogin: type: string CinderNetappPassword: @@ -120,28 +126,34 @@ outputs: value: service_name: cinder_backend_netapp config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_netapp_backend: {get_param: CinderEnableNetappBackend} - cinder::backend::netapp::volume_backend_name: {get_param: CinderNetappBackendName} - 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} - cinder::backend::netapp::netapp_server_port: {get_param: CinderNetappServerPort} - cinder::backend::netapp::netapp_size_multiplier: {get_param: CinderNetappSizeMultiplier} - cinder::backend::netapp::netapp_storage_family: {get_param: CinderNetappStorageFamily} - 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} - cinder::backend::netapp::nfs_shares_config: {get_param: CinderNetappNfsSharesConfig} - cinder::backend::netapp::nfs_mount_options: {get_param: CinderNetappNfsMountOptions} - cinder::backend::netapp::netapp_copyoffload_tool_path: {get_param: CinderNetappCopyOffloadToolPath} - cinder::backend::netapp::netapp_controller_ips: {get_param: CinderNetappControllerIps} - cinder::backend::netapp::netapp_sa_password: {get_param: CinderNetappSaPassword} - cinder::backend::netapp::netapp_storage_pools: {get_param: CinderNetappStoragePools} - cinder::backend::netapp::netapp_host_type: {get_param: CinderNetappHostType} - cinder::backend::netapp::netapp_webservice_path: {get_param: CinderNetappWebservicePath} - cinder::backend::netapp::nas_secure_file_operations: {get_param: CinderNetappNasSecureFileOperations} - cinder::backend::netapp::nas_secure_file_permissions: {get_param: CinderNetappNasSecureFilePermissions} + 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::netapp_login: {get_param: CinderNetappLogin} + cinder::backend::netapp::netapp_password: {get_param: CinderNetappPassword} + cinder::backend::netapp::netapp_server_hostname: {get_param: CinderNetappServerHostname} + cinder::backend::netapp::netapp_server_port: {get_param: CinderNetappServerPort} + cinder::backend::netapp::netapp_size_multiplier: {get_param: CinderNetappSizeMultiplier} + cinder::backend::netapp::netapp_storage_family: {get_param: CinderNetappStorageFamily} + 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} + cinder::backend::netapp::nfs_shares_config: {get_param: CinderNetappNfsSharesConfig} + cinder::backend::netapp::nfs_mount_options: {get_param: CinderNetappNfsMountOptions} + cinder::backend::netapp::netapp_copyoffload_tool_path: {get_param: CinderNetappCopyOffloadToolPath} + cinder::backend::netapp::netapp_controller_ips: {get_param: CinderNetappControllerIps} + cinder::backend::netapp::netapp_sa_password: {get_param: CinderNetappSaPassword} + cinder::backend::netapp::netapp_storage_pools: {get_param: CinderNetappStoragePools} + cinder::backend::netapp::netapp_host_type: {get_param: CinderNetappHostType} + cinder::backend::netapp::netapp_webservice_path: {get_param: CinderNetappWebservicePath} + cinder::backend::netapp::nas_secure_file_operations: {get_param: CinderNetappNasSecureFileOperations} + cinder::backend::netapp::nas_secure_file_permissions: {get_param: CinderNetappNasSecureFilePermissions} + - + if: + - {equals : [{get_param: CinderNetappAvailabilityZone}, '']} + - {} + - cinder::backend::netapp::backend_availability_zone: {get_param: CinderNetappAvailabilityZone} diff --git a/puppet/services/cinder-backend-nvmeof.yaml b/puppet/services/cinder-backend-nvmeof.yaml index 743bf36d55..f45fc97ec8 100644 --- a/puppet/services/cinder-backend-nvmeof.yaml +++ b/puppet/services/cinder-backend-nvmeof.yaml @@ -7,6 +7,12 @@ parameters: CinderNVMeOFBackendName: type: string default: 'tripleo_nvmeof' + CinderNVMeOFAvailabilityZone: + default: '' + description: > + The availability zone of the NVMeOF Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderNVMeOFTargetPort: type: number default: 4460 @@ -58,17 +64,23 @@ outputs: value: service_name: cinder_backend_nvmeof config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_nvmeof_backend: true - tripleo::profile::base::cinder::volume::nvmeof::volume_backend_name: {get_param: CinderNVMeOFBackendName} - tripleo::profile::base::cinder::volume::nvmeof::target_port: {get_param: CinderNVMeOFTargetPort} - tripleo::profile::base::cinder::volume::nvmeof::target_helper: {get_param: CinderNVMeOFTargetHelper} - tripleo::profile::base::cinder::volume::nvmeof::target_protocol: {get_param: CinderNVMeOFTargetProtocol} - tripleo::profile::base::cinder::volume::nvmeof::target_prefix: {get_param: CinderNVMeOFTargetPrefix} - tripleo::profile::base::cinder::volume::nvmeof::nvmet_port_id: {get_param: CinderNVMeOFTargetPortId} - tripleo::profile::base::cinder::volume::nvmeof::nvmet_ns_id: {get_param: CinderNVMeOFTargetNameSpaceId} - tripleo::profile::base::cinder::volume::nvmeof::target_ip_address: - str_replace: - template: - "%{hiera('$NETWORK')}" - params: - $NETWORK: {get_param: [ServiceNetMap, CinderIscsiNetwork]} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_nvmeof_backend: true + tripleo::profile::base::cinder::volume::nvmeof::volume_backend_name: {get_param: CinderNVMeOFBackendName} + tripleo::profile::base::cinder::volume::nvmeof::target_port: {get_param: CinderNVMeOFTargetPort} + tripleo::profile::base::cinder::volume::nvmeof::target_helper: {get_param: CinderNVMeOFTargetHelper} + tripleo::profile::base::cinder::volume::nvmeof::target_protocol: {get_param: CinderNVMeOFTargetProtocol} + tripleo::profile::base::cinder::volume::nvmeof::target_prefix: {get_param: CinderNVMeOFTargetPrefix} + tripleo::profile::base::cinder::volume::nvmeof::nvmet_port_id: {get_param: CinderNVMeOFTargetPortId} + tripleo::profile::base::cinder::volume::nvmeof::nvmet_ns_id: {get_param: CinderNVMeOFTargetNameSpaceId} + tripleo::profile::base::cinder::volume::nvmeof::target_ip_address: + str_replace: + template: + "%{hiera('$NETWORK')}" + params: + $NETWORK: {get_param: [ServiceNetMap, CinderIscsiNetwork]} + - + if: + - {equals : [{get_param: CinderNVMeOFAvailabilityZone}, '']} + - {} + - tripleo::profile::base::cinder::volume::nvmeof::backend_availability_zone: {get_param: CinderNVMeOFAvailabilityZone} diff --git a/puppet/services/cinder-backend-pure.yaml b/puppet/services/cinder-backend-pure.yaml index e56de1727c..e869c93b97 100644 --- a/puppet/services/cinder-backend-pure.yaml +++ b/puppet/services/cinder-backend-pure.yaml @@ -49,6 +49,12 @@ parameters: CinderPureBackendName: type: string default: 'tripleo_pure' + CinderPureAvailabilityZone: + default: '' + description: > + The availability zone of the Pure Storage Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderPureStorageProtocol: type: string default: 'iSCSI' @@ -69,10 +75,16 @@ outputs: value: service_name: cinder_backend_pure config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_pure_backend: {get_param: CinderEnablePureBackend} - cinder::backend::pure::volume_backend_name: {get_param: CinderPureBackendName} - cinder::backend::pure::pure_storage_protocol: {get_param: CinderPureStorageProtocol} - cinder::backend::pure::san_ip: {get_param: CinderPureSanIp} - cinder::backend::pure::pure_api_token: {get_input: PureAPIToken} - cinder::backend::pure::use_chap_auth: {get_input: PureUseChap} - cinder::backend::pure::use_multipath_for_image_xfer: {get_input: PureMultipathXfer} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_pure_backend: {get_param: CinderEnablePureBackend} + cinder::backend::pure::volume_backend_name: {get_param: CinderPureBackendName} + cinder::backend::pure::pure_storage_protocol: {get_param: CinderPureStorageProtocol} + cinder::backend::pure::san_ip: {get_param: CinderPureSanIp} + cinder::backend::pure::pure_api_token: {get_input: PureAPIToken} + cinder::backend::pure::use_chap_auth: {get_input: PureUseChap} + cinder::backend::pure::use_multipath_for_image_xfer: {get_input: PureMultipathXfer} + - + if: + - {equals : [{get_param: CinderPureAvailabilityZone}, '']} + - {} + - cinder::backend::pure::backend_availability_zone: {get_param: CinderPureAvailabilityZone} diff --git a/puppet/services/cinder-backend-scaleio.yaml b/puppet/services/cinder-backend-scaleio.yaml index 214fd096c3..c54f404fee 100644 --- a/puppet/services/cinder-backend-scaleio.yaml +++ b/puppet/services/cinder-backend-scaleio.yaml @@ -23,6 +23,12 @@ parameters: CinderScaleIOBackendName: type: string default: 'tripleo_scaleio' + CinderScaleIOAvailabilityZone: + default: '' + description: > + The availability zone of the ScaleIO Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderScaleIOSanIp: type: string default: '' @@ -102,20 +108,26 @@ outputs: value: service_name: cinder_backend_scaleio config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_scaleio_backend: {get_param: CinderEnableScaleIOBackend} - cinder::backend::scaleio::volume_backend_name: {get_param: CinderScaleIOBackendName} - cinder::backend::scaleio::sio_login: {get_param: CinderScaleIOSanLogin} - cinder::backend::scaleio::sio_password: {get_param: CinderScaleIOSanPassword} - cinder::backend::scaleio::sio_server_hostname: {get_param: CinderScaleIOSanIp} - cinder::backend::scaleio::sio_server_port: {get_param: CinderScaleIORestServerPort} - cinder::backend::scaleio::sio_verify_server_certificate: {get_param: CinderScaleIOVerifyServerCertificate} - cinder::backend::scaleio::sio_server_certificate_path: {get_param: CinderScaleIOServerCertificatePath} - cinder::backend::scaleio::sio_protection_domain_name: {get_param: CinderScaleIOProtectionDomainName} - cinder::backend::scaleio::sio_protection_domain_id: {get_param: CinderScaleIOProtectionDomainId} - cinder::backend::scaleio::sio_storage_pool_id: {get_param: CinderScaleIOStoragePoolId} - cinder::backend::scaleio::sio_storage_pool_name: {get_param: CinderScaleIOStoragePoolName} - cinder::backend::scaleio::sio_storage_pools: {get_param: CinderScaleIOStoragePools} - cinder::backend::scaleio::sio_round_volume_capacity: {get_param: CinderScaleIORoundVolumeCapacity} - cinder::backend::scaleio::sio_unmap_volume_before_deletion: {get_param: CinderScaleIOUnmapVolumeBeforeDeletion} - cinder::backend::scaleio::sio_max_over_subscription_ratio: {get_param: CinderScaleIOMaxOverSubscriptionRatio} - cinder::backend::scaleio::sio_thin_provision: {get_param: CinderScaleIOSanThinProvision} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_scaleio_backend: {get_param: CinderEnableScaleIOBackend} + cinder::backend::scaleio::volume_backend_name: {get_param: CinderScaleIOBackendName} + cinder::backend::scaleio::sio_login: {get_param: CinderScaleIOSanLogin} + cinder::backend::scaleio::sio_password: {get_param: CinderScaleIOSanPassword} + cinder::backend::scaleio::sio_server_hostname: {get_param: CinderScaleIOSanIp} + cinder::backend::scaleio::sio_server_port: {get_param: CinderScaleIORestServerPort} + cinder::backend::scaleio::sio_verify_server_certificate: {get_param: CinderScaleIOVerifyServerCertificate} + cinder::backend::scaleio::sio_server_certificate_path: {get_param: CinderScaleIOServerCertificatePath} + cinder::backend::scaleio::sio_protection_domain_name: {get_param: CinderScaleIOProtectionDomainName} + cinder::backend::scaleio::sio_protection_domain_id: {get_param: CinderScaleIOProtectionDomainId} + cinder::backend::scaleio::sio_storage_pool_id: {get_param: CinderScaleIOStoragePoolId} + cinder::backend::scaleio::sio_storage_pool_name: {get_param: CinderScaleIOStoragePoolName} + cinder::backend::scaleio::sio_storage_pools: {get_param: CinderScaleIOStoragePools} + cinder::backend::scaleio::sio_round_volume_capacity: {get_param: CinderScaleIORoundVolumeCapacity} + cinder::backend::scaleio::sio_unmap_volume_before_deletion: {get_param: CinderScaleIOUnmapVolumeBeforeDeletion} + cinder::backend::scaleio::sio_max_over_subscription_ratio: {get_param: CinderScaleIOMaxOverSubscriptionRatio} + cinder::backend::scaleio::sio_thin_provision: {get_param: CinderScaleIOSanThinProvision} + - + if: + - {equals : [{get_param: CinderScaleIOAvailabilityZone}, '']} + - {} + - cinder::backend::scaleio::backend_availability_zone: {get_param: CinderScaleIOAvailabilityZone} diff --git a/puppet/services/cinder-backend-veritas-hyperscale.yaml b/puppet/services/cinder-backend-veritas-hyperscale.yaml index 185bd0f559..c86bd33b49 100644 --- a/puppet/services/cinder-backend-veritas-hyperscale.yaml +++ b/puppet/services/cinder-backend-veritas-hyperscale.yaml @@ -17,6 +17,12 @@ description: > Openstack Veritas HyperScale backend parameters: + CinderVeritasHyperScaleAvailabilityZone: + default: '' + description: > + The availability zone of the Veritas HyperScale Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string ServiceData: default: {} description: Dictionary packing service data @@ -51,4 +57,10 @@ outputs: value: service_name: cinder_backend_veritas_hyperscale config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_vrts_hs_backend: true + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_vrts_hs_backend: true + - + if: + - {equals : [{get_param: CinderVeritasHyperScaleAvailabilityZone}, '']} + - {} + - cinder::backend::veritas_hyperscale::backend_availability_zone: {get_param: CinderVeritasHyperScaleAvailabilityZone} diff --git a/puppet/services/cinder-base.yaml b/puppet/services/cinder-base.yaml index 0bac4dde01..5081a9bd28 100644 --- a/puppet/services/cinder-base.yaml +++ b/puppet/services/cinder-base.yaml @@ -4,6 +4,10 @@ description: > OpenStack Cinder base service. Shared by all Cinder services. parameters: + CinderStorageAvailabilityZone: + default: nova + description: The Cinder service's storage availability zone. + type: string CinderPassword: description: The password for the cinder service account, used by cinder-api. type: string @@ -127,6 +131,7 @@ outputs: - service_debug_unset - {get_param: Debug } - {get_param: CinderDebug } + cinder::storage_availability_zone: {get_param: CinderStorageAvailabilityZone} cinder::rabbit_heartbeat_timeout_threshold: 60 cinder::rabbit_userid: {get_param: RpcUserName} cinder::rabbit_password: {get_param: RpcPassword} diff --git a/puppet/services/cinder-hpelefthand-iscsi.yaml b/puppet/services/cinder-hpelefthand-iscsi.yaml index 39a7fa6b13..a31ff127fc 100644 --- a/puppet/services/cinder-hpelefthand-iscsi.yaml +++ b/puppet/services/cinder-hpelefthand-iscsi.yaml @@ -15,6 +15,12 @@ parameters: CinderHPELeftHandISCSIBackendName: type: string default: 'tripleo_hpelefthand' + CinderHPELeftHandISCSIAvailabilityZone: + default: '' + description: > + The availability zone of the HPE LeftHand iSCSI Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderHPELeftHandISCSIChapEnabled: type: boolean default: false @@ -56,11 +62,17 @@ outputs: value: service_name: cinder_hpelefthand_iscsi config_settings: - tripleo::profile::base::cinder::volume::cinder_enable_hpelefthand_backend: true - cinder::backend::hpelefthand_iscsi::hpelefthand_api_url: {get_param: CinderHPELeftHandISCSIApiUrl} - cinder::backend::hpelefthand_iscsi::hpelefthand_username: {get_param: CinderHPELeftHandISCSIUserName} - cinder::backend::hpelefthand_iscsi::hpelefthand_password: {get_param: CinderHPELeftHandISCSIPassword} - cinder::backend::hpelefthand_iscsi::volume_backend_name: {get_param: CinderHPELeftHandISCSIBackendName} - cinder::backend::hpelefthand_iscsi::hpelefthand_iscsi_chap_enabled: {get_param: CinderHPELeftHandISCSIChapEnabled} - cinder::backend::hpelefthand_iscsi::hpelefthand_clustername: {get_param: CinderHPELeftHandClusterName} - cinder::backend::hpelefthand_iscsi::hpelefthand_debug: {get_param: CinderHPELeftHandDebug} + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_hpelefthand_backend: true + cinder::backend::hpelefthand_iscsi::hpelefthand_api_url: {get_param: CinderHPELeftHandISCSIApiUrl} + cinder::backend::hpelefthand_iscsi::hpelefthand_username: {get_param: CinderHPELeftHandISCSIUserName} + cinder::backend::hpelefthand_iscsi::hpelefthand_password: {get_param: CinderHPELeftHandISCSIPassword} + cinder::backend::hpelefthand_iscsi::volume_backend_name: {get_param: CinderHPELeftHandISCSIBackendName} + cinder::backend::hpelefthand_iscsi::hpelefthand_iscsi_chap_enabled: {get_param: CinderHPELeftHandISCSIChapEnabled} + cinder::backend::hpelefthand_iscsi::hpelefthand_clustername: {get_param: CinderHPELeftHandClusterName} + cinder::backend::hpelefthand_iscsi::hpelefthand_debug: {get_param: CinderHPELeftHandDebug} + - + if: + - {equals : [{get_param: CinderHPELeftHandISCSIAvailabilityZone}, '']} + - {} + - cinder::backend::hpelefthand_iscsi::backend_availability_zone: {get_param: CinderHPELeftHandISCSIAvailabilityZone} diff --git a/puppet/services/cinder-volume.yaml b/puppet/services/cinder-volume.yaml index d021b449ac..42248a1008 100644 --- a/puppet/services/cinder-volume.yaml +++ b/puppet/services/cinder-volume.yaml @@ -16,6 +16,12 @@ parameters: default: false description: Whether to enable or not the Rbd backend for Cinder type: boolean + CinderISCSIAvailabilityZone: + default: '' + description: > + The availability zone of the Iscsi Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderISCSIHelper: default: lioadm description: The iSCSI helper to use with cinder. @@ -28,6 +34,12 @@ parameters: default: 10280 description: The size of the loopback file used by the cinder LVM driver. type: number + CinderNfsAvailabilityZone: + default: '' + description: > + The availability zone of the NFS Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderNfsMountOptions: default: '' description: > @@ -54,6 +66,12 @@ parameters: Valid values are 'auto', 'true' or 'false'. Effective when CinderEnableNfsBackend is true. type: string + CinderRbdAvailabilityZone: + default: '' + description: > + The availability zone of the RBD Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string CinderRbdPoolName: default: volumes type: string @@ -170,6 +188,21 @@ outputs: "%{hiera('$NETWORK')}" params: $NETWORK: {get_param: [ServiceNetMap, CinderIscsiNetwork]} + - + if: + - {equals : [{get_param: CinderISCSIAvailabilityZone}, '']} + - {} + - tripleo::profile::base::cinder::volume::iscsi::backend_availability_zone: {get_param: CinderISCSIAvailabilityZone} + - + if: + - {equals : [{get_param: CinderNfsAvailabilityZone}, '']} + - {} + - tripleo::profile::base::cinder::volume::nfs::backend_availability_zone: {get_param: CinderNfsAvailabilityZone} + - + if: + - {equals : [{get_param: CinderRbdAvailabilityZone}, '']} + - {} + - tripleo::profile::base::cinder::volume::rbd::backend_availability_zone: {get_param: CinderRbdAvailabilityZone} service_config_settings: fluentd: tripleo_fluentd_groups_cinder_volume: diff --git a/releasenotes/notes/add-cinder-storage-az-parameters-cddf410bc3464193.yaml b/releasenotes/notes/add-cinder-storage-az-parameters-cddf410bc3464193.yaml new file mode 100644 index 0000000000..b326fe3de0 --- /dev/null +++ b/releasenotes/notes/add-cinder-storage-az-parameters-cddf410bc3464193.yaml @@ -0,0 +1,11 @@ +--- +features: + - | + Add CinderStorageAvailabilityZone parameter that configures + cinder's DEFAULT/storage_availability_zone. The default value + of 'nova' matches cinder's own default value. + + Add several CinderXXXAvailabilityZone parameters, where XXX is + any of the cinder volume service's storage backends. The + parameters are optional, and when set they override the + "backend_availability_zone" for the corresponding backend.