diff --git a/ci/custom_ci_roles_data.yaml b/ci/custom_ci_roles_data.yaml index 7aebb5faee..e458fb5af9 100644 --- a/ci/custom_ci_roles_data.yaml +++ b/ci/custom_ci_roles_data.yaml @@ -70,6 +70,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF diff --git a/deployment/cinder/cinder-backend-ibm-svf-puppet.yaml b/deployment/cinder/cinder-backend-ibm-svf-puppet.yaml new file mode 100644 index 0000000000..bf90ea2ed7 --- /dev/null +++ b/deployment/cinder/cinder-backend-ibm-svf-puppet.yaml @@ -0,0 +1,96 @@ +heat_template_version: wallaby + +description: > + Openstack Cinder IBM Spectrum Virtualize family (Svf) backend + +parameters: + CinderEnableSvfBackend: + type: boolean + default: true + CinderSvfBackendName: + type: comma_delimited_list + default: 'tripleo_ibm_svf' + description: A list of Cinder IBM Svf Storage backend names. + CinderSvfMultiConfig: + type: json + default: {} + description: > + Dictionary of settings when configuring multiple Svf backends. The + hash key is the backend name, and the value is a dictionary of parameter + values unique to that backend. + CinderSvfAllowTenantQos: + type: boolean + default: false + CinderSvfAvailabilityZone: + default: '' + description: > + The availability zone of the IBM Svf Cinder backend. + When set, it overrides the default CinderStorageAvailabilityZone. + type: string + CinderSvfConnectionProtocol: + type: string + default: 'iSCSI' + constraints: + - allowed_values: [ 'iSCSI', 'FC'] + CinderSvfIscsiChapEnabled: + type: boolean + default: true + CinderSvfRetainAuxVolume: + type: boolean + default: false + CinderSvfSanIp: + type: string + CinderSvfSanLogin: + type: string + CinderSvfSanPassword: + type: string + hidden: true + CinderSvfVolumePoolName: + type: comma_delimited_list + ServiceData: + default: {} + description: Dictionary packing service data + type: json + ServiceNetMap: + default: {} + description: Mapping of service_name -> network name. Typically set + via parameter_defaults in the resource registry. Use + parameter_merge_strategies to merge it with the defaults. + type: json + RoleName: + default: '' + description: Role name on which the service is applied + type: string + RoleParameters: + default: {} + description: Parameters specific to the role + type: json + EndpointMap: + default: {} + type: json + description: Mapping of service endpoint -> protocol. Typically set + via parameter_defaults in the resource registry. + +outputs: + role_data: + description: Role data for the Cinder IBM Svf backend. + value: + service_name: cinder_backend_ibm_svf + config_settings: + map_merge: + - tripleo::profile::base::cinder::volume::cinder_enable_ibm_svf_backend: {get_param: CinderEnableSvfBackend} + cinder::backend::ibm_svf::volume_backend_name: {get_param: CinderSvfBackendName} + cinder::backend::ibm_svf::volume_multi_config: {get_param: CinderSvfMultiConfig} + cinder::backend::ibm_svf::san_ip: {get_param: CinderSvfSanIp} + cinder::backend::ibm_svf::san_login: {get_param: CinderSvfSanLogin} + cinder::backend::ibm_svf::san_password: {get_param: CinderSvfSanPassword} + # NOTE:Svf was earlier called as storwize/svc driver, so the cinder + # configuration parameters were named accordingly. + cinder::backend::ibm_svf::storwize_svc_volpool_name: {get_param: CinderSvfVolumePoolName} + cinder::backend::ibm_svf::storwize_svc_allow_tenant_qos: {get_param: CinderSvfAllowTenantQos} + cinder::backend::ibm_svf::storwize_svc_retain_aux_volume: {get_param: CinderSvfRetainAuxVolume} + cinder::backend::ibm_svf::storwize_svc_connection_protocol: {get_param: CinderSvfConnectionProtocol} + cinder::backend::ibm_svf::storwize_svc_iscsi_chap_enabled: {get_param: CinderSvfIscsiChapEnabled} + - if: + - not: {equals : [{get_param: CinderSvfAvailabilityZone}, '']} + - cinder::backend::ibm_svf::backend_availability_zone: {get_param: CinderSvfAvailabilityZone} diff --git a/environments/cinder-ibm-svf-config.yaml b/environments/cinder-ibm-svf-config.yaml new file mode 100644 index 0000000000..569a253f4d --- /dev/null +++ b/environments/cinder-ibm-svf-config.yaml @@ -0,0 +1,31 @@ +# A Heat environment file which can be used to enable a +# Cinder IBM Svf backend, configured via puppet. + +resource_registry: + OS::TripleO::Services::CinderBackendIBMSvf: ../deployment/cinder/cinder-backend-ibm-svf-puppet.yaml + +parameter_defaults: + CinderEnableIscsiBackend: false + CinderEnableSvfBackend: true + CinderSvfBackendName: 'tripleo_ibm_svf' + CinderSvfMultiConfig: {} + CinderSvfAvailabilityZone: '' + CinderSvfSanIp: '' + CinderSvfSanLogin: 'Admin' + CinderSvfSanPassword: 'Admin' + CinderSvfVolumePoolName: '' + CinderSvfAllowTenantQos: 'False' + CinderSvfRetainAuxvolume: 'True' + CinderSvfConnectionProtocol: 'FC' + +# To configure multiple Svf backends, use CinderSvfMultiConfig to +# assign parameter values specific to that backend. For example: +# CinderSvfBackendName: +# - tripleo_ibm_svf_1 +# - tripleo_ibm_svf_2 +# CinderSvfMultiConfig: +# tripleo_ibm_svf_1: +# CinderSvfConnectionProtocol: 'iSCSI' # Specific value for this backend +# tripleo_ibm_svf_2: +# CinderSvfConnectionProtocol: 'FC' # Specific value for this backend + diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index c2e88651ae..b53cf380c5 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -258,6 +258,7 @@ resource_registry: OS::TripleO::Services::CinderBackendDellEMCUnity: OS::Heat::None OS::TripleO::Services::CinderBackendDellEMCVNX: OS::Heat::None OS::TripleO::Services::CinderBackendDellEMCXtremio: OS::Heat::None + OS::TripleO::Services::CinderBackendIBMSvf: OS::Heat::None OS::TripleO::Services::CinderBackendNetApp: OS::Heat::None OS::TripleO::Services::CinderBackendNVMeOF: OS::Heat::None OS::TripleO::Services::CinderBackendPure: OS::Heat::None diff --git a/releasenotes/notes/Add-support-for-ibm_svf-driver-342ca73422326f62.yaml b/releasenotes/notes/Add-support-for-ibm_svf-driver-342ca73422326f62.yaml new file mode 100644 index 0000000000..761f4aeee6 --- /dev/null +++ b/releasenotes/notes/Add-support-for-ibm_svf-driver-342ca73422326f62.yaml @@ -0,0 +1,9 @@ +--- +features: + - | + Add support for Cinder IBM Spectrum virtualize family (Svf) driver. +upgrade: + - | + Cinder IBM Spectrum virtualize family (Svf) driver deployed + using ExtraConfig can switch to new template by using + ``environments/cinder-ibm-svf-config.yaml``. diff --git a/roles/Controller.yaml b/roles/Controller.yaml index a30b4ab130..e6d40d9916 100644 --- a/roles/Controller.yaml +++ b/roles/Controller.yaml @@ -69,6 +69,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF diff --git a/roles/ControllerNoCeph.yaml b/roles/ControllerNoCeph.yaml index e224946232..971aeb1f45 100644 --- a/roles/ControllerNoCeph.yaml +++ b/roles/ControllerNoCeph.yaml @@ -57,6 +57,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF diff --git a/roles/ControllerNovaStandalone.yaml b/roles/ControllerNovaStandalone.yaml index 7c53cbcc61..919b7df338 100644 --- a/roles/ControllerNovaStandalone.yaml +++ b/roles/ControllerNovaStandalone.yaml @@ -59,6 +59,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF diff --git a/roles/ControllerSriov.yaml b/roles/ControllerSriov.yaml index d218488e88..c64486ac03 100644 --- a/roles/ControllerSriov.yaml +++ b/roles/ControllerSriov.yaml @@ -66,6 +66,7 @@ - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCVxFlexOS - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF diff --git a/roles/ControllerStorageDashboard.yaml b/roles/ControllerStorageDashboard.yaml index 0136221821..a5cf27b74a 100644 --- a/roles/ControllerStorageDashboard.yaml +++ b/roles/ControllerStorageDashboard.yaml @@ -68,6 +68,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF diff --git a/roles/ControllerStorageNfs.yaml b/roles/ControllerStorageNfs.yaml index aa4d7aad3c..d5b7f4f994 100644 --- a/roles/ControllerStorageNfs.yaml +++ b/roles/ControllerStorageNfs.yaml @@ -68,6 +68,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF diff --git a/roles/Standalone.yaml b/roles/Standalone.yaml index e97cab1ce5..ae5b2d1fe8 100644 --- a/roles/Standalone.yaml +++ b/roles/Standalone.yaml @@ -63,6 +63,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendDellSc - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs diff --git a/roles_data.yaml b/roles_data.yaml index 75f91d098a..78f4be4837 100644 --- a/roles_data.yaml +++ b/roles_data.yaml @@ -72,6 +72,7 @@ - OS::TripleO::Services::CinderBackendDellEMCUnity - OS::TripleO::Services::CinderBackendDellEMCVNX - OS::TripleO::Services::CinderBackendDellEMCXtremio + - OS::TripleO::Services::CinderBackendIBMSvf - OS::TripleO::Services::CinderBackendNetApp - OS::TripleO::Services::CinderBackendNfs - OS::TripleO::Services::CinderBackendNVMeOF