From 1f8de419ef91586e785232ebeeb11ae10a53bb17 Mon Sep 17 00:00:00 2001 From: Simon Dodsley Date: Fri, 31 Mar 2017 09:28:26 -0400 Subject: [PATCH] Enables support for configuring Cinder with Pure Storage FlashArray storage backend This adds the necessary parameters for: - Pure Storage FlashArray Block Storage driver configuration Change-Id: I5b5617dd57015c0944a2d0c60187b01ede09b480 --- capabilities-map.yaml | 5 ++ environments/cinder-pure-config.yaml | 13 ++++ puppet/services/cinder-backend-pure.yaml | 68 +++++++++++++++++++ ...port-for-pure-cinder-1a595f1940d5a06f.yaml | 3 + 4 files changed, 89 insertions(+) create mode 100644 environments/cinder-pure-config.yaml create mode 100644 puppet/services/cinder-backend-pure.yaml create mode 100644 releasenotes/notes/add-support-for-pure-cinder-1a595f1940d5a06f.yaml diff --git a/capabilities-map.yaml b/capabilities-map.yaml index 83b3ac4044..0130085393 100644 --- a/capabilities-map.yaml +++ b/capabilities-map.yaml @@ -402,6 +402,11 @@ topics: description: > Enable various Cinder backends environments: + - file: environments/cinder-pure-config.yaml + title: Cinder Pure Storage FlashArray backend + description: + requires: + - overcloud-resource-registry-puppet.yaml - file: environments/cinder-netapp-config.yaml title: Cinder NetApp backend description: diff --git a/environments/cinder-pure-config.yaml b/environments/cinder-pure-config.yaml new file mode 100644 index 0000000000..84820d1748 --- /dev/null +++ b/environments/cinder-pure-config.yaml @@ -0,0 +1,13 @@ +# A Heat environment file which can be used to enable a +# Cinder Pure Storage FlashArray iSCSI backend, configured via puppet +resource_registry: + OS::TripleO::Services::CinderBackendPure: ../puppet/services/cinder-backend-pure.yaml + +parameter_defaults: + CinderEnablePureBackend: true + CinderPureBackendName: 'tripleo_pure' + CinderPureStorageProtocol: 'iSCSI' + CinderPureSanIp: '' + CinderPureAPIToken: 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' + CinderPureUseChap: false + CinderPureMultipathXfer: true diff --git a/puppet/services/cinder-backend-pure.yaml b/puppet/services/cinder-backend-pure.yaml new file mode 100644 index 0000000000..9b4d3ba379 --- /dev/null +++ b/puppet/services/cinder-backend-pure.yaml @@ -0,0 +1,68 @@ +# Copyright (c) 2017 Pure Storage 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: ocata + +description: > + Openstack Cinder Pure Storage FlashArray backend + +parameters: + CinderEnablePureBackend: + type: boolean + default: true + CinderPureBackendName: + type: string + default: 'tripleo_pure' + CinderPureStorageProtocol: + type: string + default: 'iSCSI' + CinderPureSanIp: + type: string + CinderPureAPIToken: + type: string + CinderPureUseChap: + type: boolean + default: false + CinderPureMultipathXfer: + type: boolean + default: true + 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 + 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 Pure Storage FlashArray backend. + 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} + step_config: | + include ::tripleo::profile::base::cinder::volume diff --git a/releasenotes/notes/add-support-for-pure-cinder-1a595f1940d5a06f.yaml b/releasenotes/notes/add-support-for-pure-cinder-1a595f1940d5a06f.yaml new file mode 100644 index 0000000000..da326e4d49 --- /dev/null +++ b/releasenotes/notes/add-support-for-pure-cinder-1a595f1940d5a06f.yaml @@ -0,0 +1,3 @@ +--- +features: + - Added Pure Storage FlashArray iSCSI and FC backend support for cinder