summaryrefslogtreecommitdiffstats
path: root/puppet/extraconfig/pre_deploy
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2015-06-18 10:05:06 -0400
committerRobert Pothier <rpothier@cisco.com>2015-07-06 10:56:11 -0400
commite4c4c4068e817e30f46ba9ed475790f20343df18 (patch)
treebb6223a657e5458d6681370c3a0b4fa0f2873e04 /puppet/extraconfig/pre_deploy
parent45327bc18712b90d00a8ae0d61df210f46ec3376 (diff)
Wire in Controller pre-deployment extraconfig
The recently added cinder-netapp extraconfig contains some additional hieradata which needs to be applied during the initial pre-deployment phase, e.g in controller-puppet.yaml (before the manifests are applied) so wire in a new OS::TripleO::ControllerExtraConfigPre provider resource which allows passing in a nested stack (empty by default) which contains any required "pre deployment" extraconfig, such as applying this hieradata. Some changes were required to the cinder-netapp extraconfig and environment such that now the hieradata is actually applied, and the parameter_defaults specified will be correctly mapped into the StructuredDeployment. Change-Id: I8838a71db9447466cc84283b0b257bdb70353ffd
Diffstat (limited to 'puppet/extraconfig/pre_deploy')
-rw-r--r--puppet/extraconfig/pre_deploy/README12
-rw-r--r--puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml145
-rw-r--r--puppet/extraconfig/pre_deploy/controller/multiple.yaml18
-rw-r--r--puppet/extraconfig/pre_deploy/default.yaml8
4 files changed, 183 insertions, 0 deletions
diff --git a/puppet/extraconfig/pre_deploy/README b/puppet/extraconfig/pre_deploy/README
new file mode 100644
index 00000000..51fc3406
--- /dev/null
+++ b/puppet/extraconfig/pre_deploy/README
@@ -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
diff --git a/puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml b/puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml
new file mode 100644
index 00000000..1d982dff
--- /dev/null
+++ b/puppet/extraconfig/pre_deploy/controller/cinder-netapp.yaml
@@ -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]}
diff --git a/puppet/extraconfig/pre_deploy/controller/multiple.yaml b/puppet/extraconfig/pre_deploy/controller/multiple.yaml
new file mode 100644
index 00000000..f949a397
--- /dev/null
+++ b/puppet/extraconfig/pre_deploy/controller/multiple.yaml
@@ -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}
diff --git a/puppet/extraconfig/pre_deploy/default.yaml b/puppet/extraconfig/pre_deploy/default.yaml
new file mode 100644
index 00000000..dcbc6811
--- /dev/null
+++ b/puppet/extraconfig/pre_deploy/default.yaml
@@ -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"