-heat_template_version: 2014-10-16
+heat_template_version: 2015-04-30
description: >
OpenStack controller node post deployment for Puppet.
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
+ type: OS::TripleO::ControllerConfig
# 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:
+ # NOTE: To enable stepping through the deployments via heat hooks,
+ # you must observe the glob naming defined in overcloud-steps.yaml
+ # e.g all Deployment resources should have a *Deployment_StepN suffix
+ ControllerLoadBalancerDeployment_Step1:
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
+ ControllerServicesBaseDeployment_Step2:
+ type: OS::Heat::StructuredDeployments
+ depends_on: ControllerLoadBalancerDeployment_Step1
+ properties:
+ servers: {get_param: servers}
+ config: {get_resource: ControllerPuppetConfig}
+ input_values:
+ step: 2
+ actions: ['CREATE'] # no need for two passes on an UPDATE
+
ControllerRingbuilderPuppetConfig:
type: OS::Heat::SoftwareConfig
properties:
config:
get_file: manifests/ringbuilder.pp
- ControllerRingbuilderPuppetDeployment:
+ ControllerRingbuilderDeployment_Step3:
type: OS::Heat::StructuredDeployments
+ depends_on: ControllerServicesBaseDeployment_Step2
properties:
- name: puppet_3
servers: {get_param: servers}
config: {get_resource: ControllerRingbuilderPuppetConfig}
- ControllerPuppetDeploymentOvercloudServices:
+ ControllerOvercloudServicesDeployment_Step4:
type: OS::Heat::StructuredDeployments
+ depends_on: ControllerRingbuilderDeployment_Step3
properties:
- name: puppet_4
servers: {get_param: servers}
config: {get_resource: ControllerPuppetConfig}
input_values:
- step: 2
+ step: 3
+
+ ControllerOvercloudServicesDeployment_Step5:
+ type: OS::Heat::StructuredDeployments
+ depends_on: ControllerOvercloudServicesDeployment_Step4
+ properties:
+ servers: {get_param: servers}
+ config: {get_resource: ControllerPuppetConfig}
+ input_values:
+ step: 4
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ depends_on: ControllerOvercloudServicesDeployment_Step5
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}