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.