aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/controller-post-puppet.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'puppet/controller-post-puppet.yaml')
-rw-r--r--puppet/controller-post-puppet.yaml124
1 files changed, 124 insertions, 0 deletions
diff --git a/puppet/controller-post-puppet.yaml b/puppet/controller-post-puppet.yaml
new file mode 100644
index 00000000..72b35793
--- /dev/null
+++ b/puppet/controller-post-puppet.yaml
@@ -0,0 +1,124 @@
+heat_template_version: 2014-10-16
+
+description: >
+ OpenStack controller node post deployment for Puppet.
+
+parameters:
+ servers:
+ type: json
+
+resources:
+
+ # NOTE(dprince): this example uses a composition class
+ # on the puppet side (loadbalancer.pp). This seemed like the
+ # cleanest way to encapulate the puppet resources definitions
+ # for HAProxy and Keepalived.
+ ControllerLoadbalancerPuppetConfig:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ options:
+ enable_hiera: True
+ enable_facter: False
+ inputs:
+ - name: tripleo::loadbalancer::keystone_admin
+ default: true
+ - name: tripleo::loadbalancer::keystone_public
+ default: true
+ - name: tripleo::loadbalancer::neutron
+ default: true
+ - name: tripleo::loadbalancer::cinder
+ default: true
+ - name: tripleo::loadbalancer::glance_api
+ default: true
+ - name: tripleo::loadbalancer::glance_registry
+ default: true
+ - name: tripleo::loadbalancer::nova_ec2
+ default: true
+ - name: tripleo::loadbalancer::nova_osapi
+ default: true
+ - name: tripleo::loadbalancer::nova_metadata
+ default: true
+ - name: tripleo::loadbalancer::nova_novncproxy
+ default: true
+ - name: tripleo::loadbalancer::mysql
+ default: true
+ - name: tripleo::loadbalancer::rabbitmq
+ default: true
+ - name: tripleo::loadbalancer::swift_proxy_server
+ default: true
+ - name: tripleo::loadbalancer::ceilometer
+ default: true
+ - name: tripleo::loadbalancer::heat_api
+ default: true
+ - name: tripleo::loadbalancer::heat_cloudwatch
+ default: true
+ - name: tripleo::loadbalancer::heat_cfn
+ default: true
+ outputs:
+ - name: result
+ config:
+ get_file: manifests/loadbalancer.pp
+
+ ControllerLoadbalancerPuppetDeployment:
+ type: OS::Heat::SoftwareDeployments
+ properties:
+ name: puppet_1
+ servers: {get_param: servers}
+ config: {get_resource: ControllerLoadbalancerPuppetConfig}
+
+ ControllerPuppetConfig:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ options:
+ enable_hiera: True
+ enable_facter: False
+ inputs:
+ - name: step
+ outputs:
+ - name: result
+ config:
+ get_file: manifests/overcloud_controller.pp
+
+ # Step through a series of Puppet runs using the same manifest.
+ # NOTE(dprince): Heat breakpoints would make for a really cool way to step
+ # through breakpoints in a controlled manner across the entire cluster
+ ControllerPuppetDeploymentServicesBase:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ name: puppet_2
+ servers: {get_param: servers}
+ config: {get_resource: ControllerPuppetConfig}
+ input_values:
+ step: 1
+ actions: ['CREATE'] # no need for two passes on an UPDATE
+
+ ControllerRingbuilderPuppetConfig:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ options:
+ enable_hiera: True
+ enable_facter: False
+ inputs:
+ outputs:
+ - name: result
+ config:
+ get_file: manifests/ringbuilder.pp
+
+ ControllerRingbuilderPuppetDeployment:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ name: puppet_3
+ servers: {get_param: servers}
+ config: {get_resource: ControllerRingbuilderPuppetConfig}
+
+ ControllerPuppetDeploymentOvercloudServices:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ name: puppet_4
+ servers: {get_param: servers}
+ config: {get_resource: ControllerPuppetConfig}
+ input_values:
+ step: 2