Support for PowerFlex Cinder Backend

VxFlex OS driver is rebranded to PowerFlex.
This patch adds support for PowerFlex.
Will deprecate the VxFlexOS template in
a new patch.

Depends-On: https://review.opendev.org/#/c/743852/
Change-Id: I94310bf84a0af7a735bd6e1c0038686b0d0abfc8
This commit is contained in:
rajinir 2020-07-29 17:19:21 -05:00
parent 56e2702f4a
commit 08415cb54d
11 changed files with 195 additions and 0 deletions

View File

@ -0,0 +1,149 @@
# Copyright (c) 2020 Dell Inc, or its subsidiaries.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
heat_template_version: rocky
description: >
Openstack Cinder Dell EMC PowerFlex backend
parameters:
CinderEnablePowerFlexBackend:
type: boolean
default: true
CinderPowerFlexBackendName:
type: string
default: 'tripleo_dellemc_PowerFlex'
CinderPowerFlexAvailabilityZone:
type: string
default: ''
description: >
The availability zone of the PowerFlex Cinder backend.
When set, it overrides the default CinderStorageAvailabilityZone.
CinderPowerFlexSanIp:
type: string
description: PowerFlex Gateway server IP
CinderPowerFlexSanLogin:
type: string
description: PowerFlex user credentials.
CinderPowerFlexSanPassword:
type: string
hidden: true
description: PowerFlex user password.
CinderPowerFlexStoragePools:
type: comma_delimited_list
description: >
Storage Pools. Comma separated list of storage pools used to provide
volumes. Each pool should be specified as a
protection_domain_name:storage_pool_name value
CinderPowerFlexAllowMigrationDuringRebuild:
type: boolean
default: false
description: Allow volume migration during rebuild.
CinderPowerFlexAllowNonPaddedVolumes:
type: boolean
default: false
description: >
Allow volumes to be created in Storage Pools when zero padding is
disabled. This option should not be enabled if multiple tenants will
utilize volumes from a shared Storage Pool.
CinderPowerFlexMaxOverSubscriptionRatio:
type: number
default: 10.0
description: Maximum value allowed is 10.0.
CinderPowerFlexRestServerPort:
type: number
default: 443
description: (Port(min=0, max=65535)) PowerFlex Gateway REST server port.
CinderPowerFlexRoundVolumeCapacity:
type: boolean
default: true
description: >
Round volume sizes up to 8GB boundaries. PowerFlex requires volumes to be
sized in multiples of 8GB. If set to False, volume creation will fail for
volumes not sized properly.
CinderPowerFlexServerApiVersion:
type: string
default: ''
description: PowerFlex API version. This value should be left as the default
value unless otherwise instructed by technical support.
CinderPowerFlexUnmapVolumeBeforeDeletion:
type: boolean
default: false
description: Unmap volumes before deletion.
CinderPowerFlexSanThinProvision:
type: boolean
default: true
description: Whether to use thin provisioning or not.
CinderPowerFlexDriverSSLCertVerify:
type: boolean
default: false
description: Verify the server certificate.
CinderPowerFlexDriverSSLCertPath:
type: string
default: ''
description: Server certificate path.
ServiceData:
type: json
default: {}
description: Dictionary packing service data
ServiceNetMap:
type: json
default: {}
description: Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
DefaultPasswords:
type: json
default: {}
RoleName:
type: string
default: ''
description: Role name on which the service is applied
RoleParameters:
type: json
default: {}
description: Parameters specific to the role
EndpointMap:
type: json
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
outputs:
role_data:
description: Role data for the Cinder Dell EMC PowerFlex backend.
value:
service_name: cinder_backend_powerflex
config_settings:
map_merge:
- tripleo::profile::base::cinder::volume::cinder_enable_PowerFlex_backend: {get_param: CinderEnablePowerFlexBackend}
cinder::backend::dellemc_powerflex::volume_backend_name: {get_param: CinderPowerFlexBackendName}
cinder::backend::dellemc_powerflex::san_login: {get_param: CinderPowerFlexSanLogin}
cinder::backend::dellemc_powerflex::san_password: {get_param: CinderPowerFlexSanPassword}
cinder::backend::dellemc_powerflex::san_ip: {get_param: CinderPowerFlexSanIp}
cinder::backend::dellemc_powerflex::powerflex_storage_pools: {get_param: CinderPowerFlexStoragePools}
cinder::backend::dellemc_powerflex::powerflex_allow_migration_during_rebuild: {get_param: CinderPowerFlexAllowMigrationDuringRebuild}
cinder::backend::dellemc_powerflex::powerflex_allow_non_padded_volumes: {get_param: CinderPowerFlexAllowNonPaddedVolumes}
cinder::backend::dellemc_powerflex::powerflex_max_over_subscription_ratio: {get_param: CinderPowerFlexMaxOverSubscriptionRatio}
cinder::backend::dellemc_powerflex::powerflex_rest_server_port: {get_param: CinderPowerFlexRestServerPort}
cinder::backend::dellemc_powerflex::powerflex_round_volume_capacity: {get_param: CinderPowerFlexRoundVolumeCapacity}
cinder::backend::dellemc_powerflex::powerflex_server_api_version: {get_param: CinderPowerFlexRoundVolumeCapacity}
cinder::backend::dellemc_powerflex::powerflex_unmap_volume_before_deletion: {get_param: CinderPowerFlexUnmapVolumeBeforeDeletion}
cinder::backend::dellemc_powerflex::san_thin_provision: {get_param: CinderPowerFlexSanThinProvision}
cinder::backend::dellemc_powerflex::driver_ssl_cert_verify: {get_param: CinderPowerFlexDriverSSLCertVerify}
cinder::backend::dellemc_powerflex::driver_ssl_cert_path: {get_param: CinderPowerFlexDriverSSLCertPath}
-
if:
- {equals : [{get_param: CinderPowerFlexAvailabilityZone}, '']}
- {}
- cinder::backend::dellemc_powerflex::backend_availability_zone: {get_param: CinderPowerFlexAvailabilityZone}

View File

@ -0,0 +1,35 @@
# Copyright (c) 2020 Dell Inc, or its subsidiaries.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# A Heat environment file which can be used to enable a
# a Cinder Dell EMC PowerFlex backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendPowerFlex: ../deployment/cinder/cinder-backend-powerflex-puppet.yaml
parameter_defaults:
CinderEnablePowerFlexBackend: true
CinderPowerFlexBackendName: 'tripleo_dellemc_powerflex'
CinderPowerFlexSanIp: ''
CinderPowerFlexSanLogin: ''
CinderPowerFlexSanPassword: ''
CinderPowerFlexStoragePools: 'domain1:pool1'
CinderPowerFlexAllowMigrationDuringRebuild: false
CinderPowerFlexAllowNonPaddedVolumes: false
CinderPowerFlexMaxOverSubscriptionRatio: 7.0
CinderPowerFlexRestServerPort: 443
CinderPowerFlexServerApiVersion: ''
CinderPowerFlexUnmapVolumeBeforeDeletion: false
CinderPowerFlexSanThinProvision: true
CinderPowerFlexDriverSSLCertVerify: false
CinderPowerFlexDriverSSLCertPath: ''

View File

@ -274,6 +274,7 @@ resource_registry:
OS::TripleO::Services::Zaqar: OS::Heat::None
OS::TripleO::Services::CinderBackendDellSc: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCSc: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCPowerFlex: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCPowermax: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCPowerStore: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCUnity: OS::Heat::None

View File

@ -0,0 +1,3 @@
---
features:
- Adding support for PowerFlex cinder driver.

View File

@ -58,6 +58,7 @@
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowerFlex
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCPowerStore
- OS::TripleO::Services::CinderBackendDellEMCSc

View File

@ -50,6 +50,7 @@
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowerFlex
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCPowerStore
- OS::TripleO::Services::CinderBackendDellEMCSc

View File

@ -43,6 +43,7 @@
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowerFlex
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCPowerStore
- OS::TripleO::Services::CinderBackendDellEMCSc

View File

@ -59,6 +59,7 @@
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowerFlex
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCPowerStore
- OS::TripleO::Services::CinderBackendDellEMCSc

View File

@ -60,6 +60,7 @@
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowerFlex
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCPowerStore
- OS::TripleO::Services::CinderBackendDellEMCSc

View File

@ -49,6 +49,7 @@
- OS::TripleO::Services::CephOSD
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellEMCPowerFlex
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCPowerStore
- OS::TripleO::Services::CinderBackendDellEMCSc

View File

@ -61,6 +61,7 @@
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowerFlex
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCPowerStore
- OS::TripleO::Services::CinderBackendDellEMCSc