Support for PowerMax Cinder Backend

PowerMax config options have changed since Newton.
Updating them to the latest and support both iSCSI
and FC drivers.

CinderPowermaxBackend is also enhanceded to support
multiple backends. CinderPowermaxBackendName supports a
list of backend names and a new CinderPowermaxMultiConfig
parameter provides a way to specify parameter values for
each backend. For example see file
environments/cinder-dellemc-powermax-config.yaml

Depends-On: https://review.opendev.org/#/c/712184
Change-Id: I4429ed2d45661ea82ae38a7050abb2b229953c9c
This commit is contained in:
rajinir 2020-03-11 13:58:35 -05:00
parent abb7721d48
commit 6c234a73ba
11 changed files with 153 additions and 0 deletions

View File

@ -0,0 +1,110 @@
# Copyright (c) 2016-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 PowerMax backend
parameters:
CinderEnablePowermaxBackend:
type: boolean
default: true
CinderPowermaxBackendName:
type: comma_delimited_list
default: 'tripleo_dellemc_powermax'
description: A list of Cinder PoweMax Storage backend names.
CinderPowermaxMultiConfig:
type: json
default: {}
description: >
Dictionary of settings when configuring multiple PowerMax backends. The
hash key is the backend name, and the value is a dictionary of parameter
values unique to that backend.
CinderPowermaxAvailabilityZone:
default: ''
description: >
The availability zone of the Dell EMC PowerMax Cinder backend.
When set, it overrides the default CinderStorageAvailabilityZone.
type: string
CinderPowermaxSanIp:
type: string
CinderPowermaxSanLogin:
type: string
default: 'Admin'
CinderPowermaxSanPassword:
type: string
hidden: true
CinderPowermaxArray:
type: string
default: ''
CinderDellEMCPowermaSrp:
type: string
default: ''
CinderPowermaxPortGroups:
type: string
default: ''
CinderPowermaxStorageProtocol:
type: string
default: 'iSCSI'
constraints:
- allowed_values: [ 'iSCSI', 'FC']
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. This
mapping overrides those in ServiceNetMapDefaults.
type: json
DefaultPasswords:
default: {}
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 Dell EMC PowerMax backend.
value:
service_name: cinder_backend_dellemc_powermax
config_settings:
map_merge:
- tripleo::profile::base::cinder::volume::cinder_enable_dellemc_powermax_backend: {get_param: CinderEnablePowermaxBackend}
cinder::backend::dellemc_powermax::volume_backend_name: {get_param: CinderPowermaxBackendName}
cinder::backend::dellemc_powermax::volume_multi_config: {get_param: CinderPowermaxMultiConfig}
cinder::backend::dellemc_powermax::san_ip: {get_param: CinderPowermaxSanIp}
cinder::backend::dellemc_powermax::san_login: {get_param: CinderPowermaxSanLogin}
cinder::backend::dellemc_powermax::san_password: {get_param: CinderPowermaxSanPassword}
cinder::backend::dellemc_powermax::powermax_array: {get_param: CinderPowermaxArray}
cinder::backend::dellemc_powermax::powermax_srp: {get_param: CinderPowermaxSrp}
cinder::backend::dellemc_powermax::powermax_port_groups: {get_param: CinderPowermaxPortGroups}
cinder::backend::dellemc_powermax::powermax_storage_protocol: {get_param: CinderPowermaxStorageProtocol}
-
if:
- {equals : [{get_param: CinderPowermaxAvailabilityZone}, '']}
- {}
- cinder::backend::dellemc_powermax::backend_availability_zone: {get_param: CinderPowermaxAvailabilityZone}

View File

@ -0,0 +1,29 @@
# A Heat environment file which can be used to enable a
# Cinder Dell EMC PowerMax backend, configured via puppet.
resource_registry:
OS::TripleO::Services::CinderBackendDellEMCPowermax: ../deployment/cinder/cinder-backend-dellemc-powermax-puppet.yaml
parameter_defaults:
CinderEnablePowermaxBackend: true
CinderPowermaxBackendName: 'tripleo_dellemc_powermax'
CinderPowermaxMultiConfig: {}
CinderPowermaxAvailabilityZone: ''
CinderPowermaxSanIp: ''
CinderPowermaxSanLogin: 'Admin'
CinderPowermaxSanPassword: ''
CinderPowermaxArray: ''
CinderPowermaxSrp: ''
CinderPowermaxPortGroups: ''
CinderPowermaxStorageProtocol: 'iSCSI'
# To configure multiple Powermax backends, use CinderPowermaxMultiConfig to
# assign parameter values specific to that backend. For example:
# CinderPowermaxBackendName:
# - tripleo_dellemc_powermax_1
# - tripleo_dellemc_powermax_2
# CinderPowermaxMultiConfig:
# tripleo_dellemc_powermax_1:
# CinderPowermaxStorageProtocol: 'iSCSI' # Specific value for this backend
# tripleo_dellemc_powermax_2:
# CinderPowermaxStorageProtocol: 'FC' # Specific value for this backend

View File

@ -274,6 +274,7 @@ resource_registry:
OS::TripleO::Services::NeutronML2FujitsuFossw: OS::Heat::None
OS::TripleO::Services::CinderBackendDellPs: OS::Heat::None
OS::TripleO::Services::CinderBackendDellSc: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCPowermax: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCUnity: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI: OS::Heat::None
OS::TripleO::Services::CinderBackendDellEMCVNX: OS::Heat::None

View File

@ -0,0 +1,6 @@
---
features:
- Support for PowerMax backend cinder driver.
Supports both iSCSI and FC volume drivers
and support deploying one or multiple cinder
PowerMax storage backends.

View File

@ -59,6 +59,7 @@
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellPs
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCUnity
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
- OS::TripleO::Services::CinderBackendDellEMCVNX

View File

@ -51,6 +51,7 @@
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellPs
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCUnity
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
- OS::TripleO::Services::CinderBackendDellEMCVNX

View File

@ -44,6 +44,7 @@
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellPs
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCUnity
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
- OS::TripleO::Services::CinderBackendDellEMCVNX

View File

@ -60,6 +60,7 @@
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellPs
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCUnity
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
- OS::TripleO::Services::CinderBackendDellEMCVNX

View File

@ -61,6 +61,7 @@
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellPs
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCUnity
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
- OS::TripleO::Services::CinderBackendDellEMCVNX

View File

@ -49,6 +49,7 @@
- OS::TripleO::Services::CephOSD
- OS::TripleO::Services::CertmongerUser
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCUnity
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
- OS::TripleO::Services::CinderBackendDellEMCVNX

View File

@ -62,6 +62,7 @@
- OS::TripleO::Services::CinderApi
- OS::TripleO::Services::CinderBackendDellPs
- OS::TripleO::Services::CinderBackendDellSc
- OS::TripleO::Services::CinderBackendDellEMCPowermax
- OS::TripleO::Services::CinderBackendDellEMCUnity
- OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI
- OS::TripleO::Services::CinderBackendDellEMCVNX