Merge "Wire in Controller pre-deployment extraconfig"

This commit is contained in:
Jenkins 2015-07-08 13:04:09 +00:00 committed by Gerrit Code Review
commit 82f04ec310
10 changed files with 231 additions and 73 deletions

View File

@ -1,30 +1,29 @@
# A Heat environment file which can be used to enable a
# a Cinder NetApp backend.
# a Cinder NetApp backend, configured via puppet
resource_registry:
OS::TripleO::Controller::CinderBackend: extraconfig/controller/cinder-netapp.yaml
OS::TripleO::ControllerExtraConfigPre: ../puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml
parameter_defaults:
CinderBackendConfig:
CinderEnableNetappBackend: false
CinderNetappBackendName: 'tripleo_netapp'
CinderNetappLogin: ''
CinderNetappPassword: ''
CinderNetappServerHostname: ''
CinderNetappServerPort: '80'
CinderNetappSizeMultiplier: '1.2'
CinderNetappStorageFamily: 'ontap_cluster'
CinderNetappStorageProtocol: 'nfs'
CinderNetappTransportType: 'http'
CinderNetappVfiler: ''
CinderNetappVolumeList: ''
CinderNetappVserver: ''
CinderNetappPartnerBackendName: ''
CinderNetappNfsShares: ''
CinderNetappNfsSharesConfig: '/etc/cinder/shares.conf'
CinderNetappNfsMountOptions: ''
CinderNetappCopyOffloadToolPath: ''
CinderNetappControllerIps: ''
CinderNetappSaPassword: ''
CinderNetappStoragePools: ''
CinderNetappEseriesHostType: 'linux_dm_mp'
CinderNetappWebservicePath: '/devmgr/v2'
CinderEnableNetappBackend: false
CinderNetappBackendName: 'tripleo_netapp'
CinderNetappLogin: ''
CinderNetappPassword: ''
CinderNetappServerHostname: ''
CinderNetappServerPort: '80'
CinderNetappSizeMultiplier: '1.2'
CinderNetappStorageFamily: 'ontap_cluster'
CinderNetappStorageProtocol: 'nfs'
CinderNetappTransportType: 'http'
CinderNetappVfiler: ''
CinderNetappVolumeList: ''
CinderNetappVserver: ''
CinderNetappPartnerBackendName: ''
CinderNetappNfsShares: ''
CinderNetappNfsSharesConfig: '/etc/cinder/shares.conf'
CinderNetappNfsMountOptions: ''
CinderNetappCopyOffloadToolPath: ''
CinderNetappControllerIps: ''
CinderNetappSaPassword: ''
CinderNetappStoragePools: ''
CinderNetappEseriesHostType: 'linux_dm_mp'
CinderNetappWebservicePath: '/devmgr/v2'

View File

@ -1,38 +0,0 @@
heat_template_version: 2015-04-30
description: >
Configure hieradata for Cinder Netapp configuration
resources:
CinderNetappConfig:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
hiera:
datafiles:
cinder_netapp_data:
mapped_data:
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_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_eseries_host_type: {get_param: CinderNetappEseriesHostType}
cinder::backend::netapp::netapp_webservice_path: {get_param: CinderNetappWebservicePath}

View File

@ -1,3 +0,0 @@
heat_template_version: 2015-04-30
description: A stack which doesn't configure anything.

View File

@ -0,0 +1,2 @@
This tree contains additional configuration which happens "post deployment",
e.g after the OpenStack service configuration has been completed.

View File

@ -21,10 +21,16 @@ resource_registry:
OS::TripleO::CephClusterConfig::SoftwareConfig: puppet/ceph-cluster-config.yaml
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
OS::TripleO::BootstrapNode::SoftwareConfig: puppet/bootstrap-config.yaml
OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml
OS::TripleO::Tasks::PackageUpdate: extraconfig/tasks/yum_update.yaml
# Hooks for operator extra config
# NodeUserData == Cloud-init additional user-data, e.g cloud-config
# ControllerExtraConfigPre == Controller configuration pre service deployment
# NodeExtraConfigPost == All nodes configuration post service deployment
OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
OS::TripleO::ControllerExtraConfigPre: puppet/extraconfig/pre_deploy/default.yaml
OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml
# TripleO overcloud networks
OS::TripleO::Network: network/networks.yaml
OS::TripleO::VipConfig: puppet/vip-config.yaml
@ -65,9 +71,6 @@ resource_registry:
OS::TripleO::BlockStorage::Ports::StoragePort: network/ports/noop.yaml
OS::TripleO::BlockStorage::Ports::StorageMgmtPort: network/ports/noop.yaml
# Cinder backend config for the controller role
OS::TripleO::Controller::CinderBackend: extraconfig/controller/noop.yaml
# Port assignments for service virtual IPs for the controller role
OS::TripleO::Controller::Ports::RedisVipPort: network/ports/ctlplane_vip.yaml

View File

@ -824,6 +824,7 @@ resources:
- vip_data # provided by vip-config
- '"%{::osfamily}"'
- common
- cinder_netapp_data # Optionally provided by ControllerExtraConfigPre
datafiles:
common:
raw_data: {get_file: hieradata/common.yaml}
@ -1041,6 +1042,13 @@ resources:
tripleo::loadbalancer::public_virtual_interface: {get_input: public_virtual_interface}
enable_package_install: {get_input: enable_package_install}
# Hook for site-specific additional pre-deployment config, e.g extra hieradata
ControllerExtraConfigPre:
depends_on: ControllerDeployment
type: OS::TripleO::ControllerExtraConfigPre
properties:
server: {get_resource: Controller}
UpdateConfig:
type: OS::TripleO::Tasks::PackageUpdate
@ -1112,4 +1120,8 @@ outputs:
IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MemcachedNetwork]}]}
config_identifier:
description: identifier which changes if the controller configuration may need re-applying
value: {get_attr: [ControllerDeployment, deploy_stdout]}
value:
list_join:
- ','
- - {get_attr: [ControllerDeployment, deploy_stdout]}
- {get_attr: [ControllerExtraConfigPre, deploy_stdout]}

View File

@ -0,0 +1,12 @@
This tree contains additional configuration which happens "pre deployment",
e.g before the OpenStack services themselves are configured but after the
nodes themselves have been provisioned and initially configured.
Typically for puppet deployments these additional configs will put in place
hieradata which is then consumed by the subsequent puppet configuration
which occurs during the post-deployment phase.
If you need to specify multiple configs, you can chain them together in a
template, see the multiple.yaml example:
OS::TripleO::ControllerExtraConfigPre: puppet/extraconfig/pre_deploy/controller/multiple.yaml

View File

@ -0,0 +1,145 @@
heat_template_version: 2015-04-30
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: string
default: false
CinderNetappBackendName:
type: string
default: 'tripleo_netapp'
CinderNetappLogin:
type: string
CinderNetappPassword:
type: string
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: ''
CinderNetappStoragePools:
type: string
default: ''
CinderNetappEseriesHostType:
type: string
default: 'linux_dm_mp'
CinderNetappWebservicePath:
type: string
default: '/devmgr/v2'
resources:
CinderNetappConfig:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
hiera:
datafiles:
cinder_netapp_data:
mapped_data:
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_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_eseries_host_type: {get_input: NetappEseriesHostType}
cinder::backend::netapp::netapp_webservice_path: {get_input: NetappWebservicePath}
CinderNetappDeployment:
type: OS::Heat::StructuredDeployment
properties:
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}
NetappEseriesHostType: {get_param: CinderNetappEseriesHostType}
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,18 @@
heat_template_version: 2014-10-16
description: 'Extra Pre-Deployment Config, multiple'
parameters:
server:
type: string
resources:
CinderNetappConfig:
type: cinder-netapp.yaml
properties:
server: {get_param: server}
# Note depends_on may be used for serialization if ordering is important
OtherConfig:
type: other.yaml
properties:
server: {get_param: server}

View File

@ -0,0 +1,8 @@
heat_template_version: 2014-10-16
description: 'Noop Extra Pre-Deployment Config'
parameters:
server:
type: string
outputs:
deploy_stdout:
value: "None"