Add composable role support for NetApp Cinder back end

Convert NetApp Cinder back end to support composable roles via new
"CinderBackendNetApp" service.

Closes-Bug: #1680568
Change-Id: Ia3a78a48c32997c9d3cbe1629c2043cfc5249e1c
This commit is contained in:
Alan Bishop 2017-04-10 11:11:58 -04:00
parent 2bc62ed305
commit c533a3219e
6 changed files with 132 additions and 159 deletions

View File

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# a Cinder NetApp backend, configured via puppet
resource_registry:
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml
OS::TripleO::Services::CinderBackendNetApp: ../puppet/services/cinder-backend-netapp.yaml
parameter_defaults:
CinderEnableNetappBackend: true

View File

@ -242,6 +242,7 @@ resource_registry:
OS::TripleO::Services::Zaqar: OS::Heat::None
OS::TripleO::Services::NeutronML2FujitsuCfab: OS::Heat::None
OS::TripleO::Services::NeutronML2FujitsuFossw: OS::Heat::None
OS::TripleO::Services::CinderBackendNetApp: OS::Heat::None
OS::TripleO::Services::CinderHPELeftHandISCSI: OS::Heat::None
OS::TripleO::Services::Etcd: OS::Heat::None
OS::TripleO::Services::Ec2Api: OS::Heat::None

View File

@ -467,7 +467,6 @@ resources:
- all_nodes # provided by allNodesConfig
- vip_data # provided by allNodesConfig
- '"%{::osfamily}"'
- cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
- neutron_bigswitch_data # Optionally provided by ControllerExtraConfigPre
- neutron_cisco_data # Optionally provided by ControllerExtraConfigPre
- cisco_n1kv_data # Optionally provided by ControllerExtraConfigPre

View File

@ -1,157 +0,0 @@
heat_template_version: ocata
description: Configure hieradata for Cinder Netapp configuration
parameters:
server:
description: ID of the controller node to apply this config to
type: string
# Config specific parameters, to be provided via parameter_defaults
CinderEnableNetappBackend:
type: boolean
default: true
CinderNetappBackendName:
type: string
default: 'tripleo_netapp'
CinderNetappLogin:
type: string
CinderNetappPassword:
type: string
hidden: true
CinderNetappServerHostname:
type: string
CinderNetappServerPort:
type: string
default: '80'
CinderNetappSizeMultiplier:
type: string
default: '1.2'
CinderNetappStorageFamily:
type: string
default: 'ontap_cluster'
CinderNetappStorageProtocol:
type: string
default: 'nfs'
CinderNetappTransportType:
type: string
default: 'http'
CinderNetappVfiler:
type: string
default: ''
CinderNetappVolumeList:
type: string
default: ''
CinderNetappVserver:
type: string
default: ''
CinderNetappPartnerBackendName:
type: string
default: ''
CinderNetappNfsShares:
type: string
default: ''
CinderNetappNfsSharesConfig:
type: string
default: '/etc/cinder/shares.conf'
CinderNetappNfsMountOptions:
type: string
default: ''
CinderNetappCopyOffloadToolPath:
type: string
default: ''
CinderNetappControllerIps:
type: string
default: ''
CinderNetappSaPassword:
type: string
default: ''
hidden: true
CinderNetappStoragePools:
type: string
default: ''
CinderNetappHostType:
type: string
default: ''
CinderNetappWebservicePath:
type: string
default: '/devmgr/v2'
# DEPRECATED options for compatibility with older versions
CinderNetappEseriesHostType:
type: string
default: 'linux_dm_mp'
parameter_groups:
- label: deprecated
description: Do not use deprecated params, they will be removed.
parameters:
- CinderNetappEseriesHostType
resources:
CinderNetappConfig:
type: OS::Heat::StructuredConfig
properties:
group: hiera
config:
datafiles:
cinder_netapp_data:
mapped_data:
tripleo::profile::base::cinder::volume::cinder_enable_netapp_backend: {get_input: EnableNetappBackend}
cinder::backend::netapp::title: {get_input: NetappBackendName}
cinder::backend::netapp::netapp_login: {get_input: NetappLogin}
cinder::backend::netapp::netapp_password: {get_input: NetappPassword}
cinder::backend::netapp::netapp_server_hostname: {get_input: NetappServerHostname}
cinder::backend::netapp::netapp_server_port: {get_input: NetappServerPort}
cinder::backend::netapp::netapp_size_multiplier: {get_input: NetappSizeMultiplier}
cinder::backend::netapp::netapp_storage_family: {get_input: NetappStorageFamily}
cinder::backend::netapp::netapp_storage_protocol: {get_input: NetappStorageProtocol}
cinder::backend::netapp::netapp_transport_type: {get_input: NetappTransportType}
cinder::backend::netapp::netapp_vfiler: {get_input: NetappVfiler}
cinder::backend::netapp::netapp_volume_list: {get_input: NetappVolumeList}
cinder::backend::netapp::netapp_vserver: {get_input: NetappVserver}
cinder::backend::netapp::netapp_partner_backend_name: {get_input: NetappPartnerBackendName}
cinder::backend::netapp::nfs_shares: {get_input: NetappNfsShares}
cinder::backend::netapp::nfs_shares_config: {get_input: NetappNfsSharesConfig}
cinder::backend::netapp::nfs_mount_options: {get_input: NetappNfsMountOptions}
cinder::backend::netapp::netapp_copyoffload_tool_path: {get_input: NetappCopyOffloadToolPath}
cinder::backend::netapp::netapp_controller_ips: {get_input: NetappControllerIps}
cinder::backend::netapp::netapp_sa_password: {get_input: NetappSaPassword}
cinder::backend::netapp::netapp_storage_pools: {get_input: NetappStoragePools}
cinder::backend::netapp::netapp_host_type: {get_input: NetappHostType}
cinder::backend::netapp::netapp_webservice_path: {get_input: NetappWebservicePath}
CinderNetappDeployment:
type: OS::Heat::StructuredDeployment
properties:
name: CinderNetappDeployment
config: {get_resource: CinderNetappConfig}
server: {get_param: server}
input_values:
EnableNetappBackend: {get_param: CinderEnableNetappBackend}
NetappBackendName: {get_param: CinderNetappBackendName}
NetappLogin: {get_param: CinderNetappLogin}
NetappPassword: {get_param: CinderNetappPassword}
NetappServerHostname: {get_param: CinderNetappServerHostname}
NetappServerPort: {get_param: CinderNetappServerPort}
NetappSizeMultiplier: {get_param: CinderNetappSizeMultiplier}
NetappStorageFamily: {get_param: CinderNetappStorageFamily}
NetappStorageProtocol: {get_param: CinderNetappStorageProtocol}
NetappTransportType: {get_param: CinderNetappTransportType}
NetappVfiler: {get_param: CinderNetappVfiler}
NetappVolumeList: {get_param: CinderNetappVolumeList}
NetappVserver: {get_param: CinderNetappVserver}
NetappPartnerBackendName: {get_param: CinderNetappPartnerBackendName}
NetappNfsShares: {get_param: CinderNetappNfsShares}
NetappNfsSharesConfig: {get_param: CinderNetappNfsSharesConfig}
NetappNfsMountOptions: {get_param: CinderNetappNfsMountOptions}
NetappCopyOffloadToolPath: {get_param: CinderNetappCopyOffloadToolPath}
NetappControllerIps: {get_param: CinderNetappControllerIps}
NetappSaPassword: {get_param: CinderNetappSaPassword}
NetappStoragePools: {get_param: CinderNetappStoragePools}
NetappHostType: {get_param: CinderNetappHostType}
NetappWebservicePath: {get_param: CinderNetappWebservicePath}
outputs:
deploy_stdout:
description: Deployment reference, used to trigger puppet apply on changes
value: {get_attr: [CinderNetappDeployment, deploy_stdout]}

View File

@ -0,0 +1,129 @@
heat_template_version: ocata
description: Openstack Cinder Netapp backend
parameters:
CinderEnableNetappBackend:
type: boolean
default: true
CinderNetappBackendName:
type: string
default: 'tripleo_netapp'
CinderNetappLogin:
type: string
CinderNetappPassword:
type: string
hidden: true
CinderNetappServerHostname:
type: string
CinderNetappServerPort:
type: string
default: '80'
CinderNetappSizeMultiplier:
type: string
default: '1.2'
CinderNetappStorageFamily:
type: string
default: 'ontap_cluster'
CinderNetappStorageProtocol:
type: string
default: 'nfs'
CinderNetappTransportType:
type: string
default: 'http'
CinderNetappVfiler:
type: string
default: ''
CinderNetappVolumeList:
type: string
default: ''
CinderNetappVserver:
type: string
default: ''
CinderNetappPartnerBackendName:
type: string
default: ''
CinderNetappNfsShares:
type: string
default: ''
CinderNetappNfsSharesConfig:
type: string
default: '/etc/cinder/shares.conf'
CinderNetappNfsMountOptions:
type: string
default: ''
CinderNetappCopyOffloadToolPath:
type: string
default: ''
CinderNetappControllerIps:
type: string
default: ''
CinderNetappSaPassword:
type: string
default: ''
hidden: true
CinderNetappStoragePools:
type: string
default: ''
CinderNetappHostType:
type: string
default: ''
CinderNetappWebservicePath:
type: string
default: '/devmgr/v2'
# DEPRECATED options for compatibility with older versions
CinderNetappEseriesHostType:
type: string
default: 'linux_dm_mp'
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.
parameter_groups:
- label: deprecated
description: Do not use deprecated params, they will be removed.
parameters:
- CinderNetappEseriesHostType
outputs:
role_data:
description: Role data for the Cinder NetApp backend.
value:
service_name: cinder_backend_netapp
config_settings:
tripleo::profile::base::cinder::volume::cinder_enable_netapp_backend: {get_param: CinderEnableNetappBackend}
cinder::backend::netapp::title: {get_param: CinderNetappBackendName}
cinder::backend::netapp::netapp_login: {get_param: CinderNetappLogin}
cinder::backend::netapp::netapp_password: {get_param: CinderNetappPassword}
cinder::backend::netapp::netapp_server_hostname: {get_param: CinderNetappServerHostname}
cinder::backend::netapp::netapp_server_port: {get_param: CinderNetappServerPort}
cinder::backend::netapp::netapp_size_multiplier: {get_param: CinderNetappSizeMultiplier}
cinder::backend::netapp::netapp_storage_family: {get_param: CinderNetappStorageFamily}
cinder::backend::netapp::netapp_storage_protocol: {get_param: CinderNetappStorageProtocol}
cinder::backend::netapp::netapp_transport_type: {get_param: CinderNetappTransportType}
cinder::backend::netapp::netapp_vfiler: {get_param: CinderNetappVfiler}
cinder::backend::netapp::netapp_volume_list: {get_param: CinderNetappVolumeList}
cinder::backend::netapp::netapp_vserver: {get_param: CinderNetappVserver}
cinder::backend::netapp::netapp_partner_backend_name: {get_param: CinderNetappPartnerBackendName}
cinder::backend::netapp::nfs_shares: {get_param: CinderNetappNfsShares}
cinder::backend::netapp::nfs_shares_config: {get_param: CinderNetappNfsSharesConfig}
cinder::backend::netapp::nfs_mount_options: {get_param: CinderNetappNfsMountOptions}
cinder::backend::netapp::netapp_copyoffload_tool_path: {get_param: CinderNetappCopyOffloadToolPath}
cinder::backend::netapp::netapp_controller_ips: {get_param: CinderNetappControllerIps}
cinder::backend::netapp::netapp_sa_password: {get_param: CinderNetappSaPassword}
cinder::backend::netapp::netapp_storage_pools: {get_param: CinderNetappStoragePools}
cinder::backend::netapp::netapp_host_type: {get_param: CinderNetappHostType}
cinder::backend::netapp::netapp_webservice_path: {get_param: CinderNetappWebservicePath}
step_config: |
include ::tripleo::profile::base::cinder::volume

View File

@ -43,6 +43,7 @@
- OS::TripleO::Services::CinderBackup
- OS::TripleO::Services::CinderScheduler
- OS::TripleO::Services::CinderVolume
- OS::TripleO::Services::CinderBackendNetApp
- OS::TripleO::Services::Congress
- OS::TripleO::Services::Kernel
- OS::TripleO::Services::Keystone