Enables support for configuring Cinder with Dell EMC
authorrajinir <rajini_ram@dell.com>
Wed, 18 Jan 2017 21:02:45 +0000 (15:02 -0600)
committerrajinir <rajini_ram@dell.com>
Tue, 7 Feb 2017 18:06:47 +0000 (12:06 -0600)
ScaleIO storage backend.

This change adds all relevant parameters for:
 - Dell EMC ScaleIO Block Storage driver configuration

Closes-Bug: #1661316
Depends-On: I5534aab53b70de215336a076d25263c73b8d7b5b
Change-Id: I8927151adbce235595a5c62365e1f87a6503c462

capabilities-map.yaml
environments/cinder-scaleio-config.yaml [new file with mode: 0644]
puppet/services/cinder-backend-scaleio.yaml [new file with mode: 0644]

index d46a9fd..0b58e81 100644 (file)
@@ -431,6 +431,11 @@ topics:
             title: Cinder iSER backend
             description: >
               Enable a Cinder iSER RDMA backend, configured via puppet
+          - file: environments/cinder-scaleio-config.yaml
+            title: Cinder Dell EMC ScaleIO backend
+            description: >
+              Enables a Cinder Dell EMC ScaleIO backend,
+              configured via puppet
             requires:
               - overcloud-resource-registry-puppet.yaml
       - title: Externally managed Ceph
diff --git a/environments/cinder-scaleio-config.yaml b/environments/cinder-scaleio-config.yaml
new file mode 100644 (file)
index 0000000..cebd619
--- /dev/null
@@ -0,0 +1,35 @@
+# Copyright (c) 2016-2017 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 SacleIO backend, configured via puppet
+resource_registry:
+  OS::TripleO::Services::CinderBackendScaleIO: ../puppet/services/cinder-backend-scaleio.yaml
+
+parameter_defaults:
+  CinderEnableScaleIOBackend: true
+  CinderScaleIOBackendName: 'tripleo_scaleio'
+  CinderScaleIOSanIp: ''
+  CinderScaleIOSanLogin: ''
+  CinderScaleIOSanPassword: ''
+  CinderScaleIORestServerPort: '443'
+  CinderScaleIOVerifyServerCertificate: false
+  CinderScaleIOServerCertificatePath: ''
+  CinderScaleIOProtectionDomainName: 'domain1'
+  CinderScaleIOStoragePoolName: 'pool1'
+  CinderScaleIOStoragePools: 'domain1:pool1'
+  CinderScaleIORoundVolumeCapacity: true
+  CinderScaleIOUnmapVolumeBeforeDeletion: false
+  CinderScaleIOMaxOverSubscriptionRatio: ''
+  CinderScaleIOSanThinProvision: true
diff --git a/puppet/services/cinder-backend-scaleio.yaml b/puppet/services/cinder-backend-scaleio.yaml
new file mode 100644 (file)
index 0000000..eb709cd
--- /dev/null
@@ -0,0 +1,111 @@
+# Copyright (c) 2016-2017 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: ocata
+
+description: >
+  Openstack Cinder Dell EMC ScaleIO backend
+
+parameters:
+  CinderEnableScaleIOBackend:
+    type: boolean
+    default: true
+  CinderScaleIOBackendName:
+    type: string
+    default: 'tripleo_scaleio'
+  CinderScaleIOSanIp:
+    type: string
+    default: ''
+  CinderScaleIOSanLogin:
+    type: string
+    default: ''
+  CinderScaleIOSanPassword:
+    type: string
+    default: ''
+    hidden: true
+  CinderScaleIORestServerPort:
+    type: number
+    default: 443
+  CinderScaleIOVerifyServerCertificate:
+    type: boolean
+    default: false
+  CinderScaleIOServerCertificatePath:
+    type: string
+    default: ''
+  CinderScaleIOProtectionDomainId:
+    type: string
+    default: ''
+  CinderScaleIOProtectionDomainName:
+    type: string
+    default: ''
+  CinderScaleIOStoragePoolId:
+    type: string
+    default: ''
+  CinderScaleIOStoragePoolName:
+    type: string
+    default: ''
+  CinderScaleIOStoragePools:
+    type: string
+    default: ''
+  CinderScaleIORoundVolumeCapacity:
+    type: boolean
+    default: true
+  CinderScaleIOUnmapVolumeBeforeDeletion:
+    type: boolean
+    default: false
+  CinderScaleIOMaxOverSubscriptionRatio:
+    type: string
+    default: ''
+  CinderScaleIOSanThinProvision:
+    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 Dell EMC ScaleIO backend.
+    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: CinderScaleIOThinProvision}
+      step_config: |
+        include ::tripleo::profile::base::cinder::volume