Merge "puppet: add ordering for Neutron agents"
[apex-tripleo-heat-templates.git] / puppet / controller-post-puppet.yaml
1 heat_template_version: 2014-10-16
2
3 description: >
4   OpenStack controller node post deployment for Puppet.
5
6 parameters:
7   servers:
8     type: json
9
10 resources:
11
12   # NOTE(dprince): this example uses a composition class
13   # on the puppet side (loadbalancer.pp). This seemed like the
14   # cleanest way to encapulate the puppet resources definitions
15   # for HAProxy and Keepalived.
16   ControllerLoadbalancerPuppetConfig:
17     type: OS::Heat::SoftwareConfig
18     properties:
19       group: puppet
20       options:
21         enable_hiera: True
22         enable_facter: False
23       inputs:
24       - name: tripleo::loadbalancer::keystone_admin
25         default: true
26       - name: tripleo::loadbalancer::keystone_public
27         default: true
28       - name: tripleo::loadbalancer::neutron
29         default: true
30       - name: tripleo::loadbalancer::cinder
31         default: true
32       - name: tripleo::loadbalancer::glance_api
33         default: true
34       - name: tripleo::loadbalancer::glance_registry
35         default: true
36       - name: tripleo::loadbalancer::nova_ec2
37         default: true
38       - name: tripleo::loadbalancer::nova_osapi
39         default: true
40       - name: tripleo::loadbalancer::nova_metadata
41         default: true
42       - name: tripleo::loadbalancer::nova_novncproxy
43         default: true
44       - name: tripleo::loadbalancer::mysql
45         default: true
46       - name: tripleo::loadbalancer::rabbitmq
47         default: true
48       - name: tripleo::loadbalancer::swift_proxy_server
49         default: true
50       - name: tripleo::loadbalancer::ceilometer
51         default: true
52       - name: tripleo::loadbalancer::heat_api
53         default: true
54       - name: tripleo::loadbalancer::heat_cloudwatch
55         default: true
56       - name: tripleo::loadbalancer::heat_cfn
57         default: true
58       outputs:
59       - name: result
60       config:
61         get_file: manifests/loadbalancer.pp
62
63   ControllerLoadbalancerPuppetDeployment:
64     type: OS::Heat::SoftwareDeployments
65     properties:
66       name: puppet_1
67       servers:  {get_param: servers}
68       config: {get_resource: ControllerLoadbalancerPuppetConfig}
69
70   ControllerPuppetConfig:
71     type: OS::Heat::SoftwareConfig
72     properties:
73       group: puppet
74       options:
75         enable_hiera: True
76         enable_facter: False
77       inputs:
78       - name: step
79       outputs:
80       - name: result
81       config:
82         get_file: manifests/overcloud_controller.pp
83
84   # Step through a series of Puppet runs using the same manifest.
85   # NOTE(dprince): Heat breakpoints would make for a really cool way to step
86   # through breakpoints in a controlled manner across the entire cluster
87   ControllerPuppetDeploymentServicesBase:
88     type: OS::Heat::StructuredDeployments
89     properties:
90       name: puppet_2
91       servers:  {get_param: servers}
92       config: {get_resource: ControllerPuppetConfig}
93       input_values:
94         step: 1
95       actions: ['CREATE'] # no need for two passes on an UPDATE
96
97   ControllerRingbuilderPuppetConfig:
98     type: OS::Heat::SoftwareConfig
99     properties:
100       group: puppet
101       options:
102         enable_hiera: True
103         enable_facter: False
104       inputs:
105       outputs:
106       - name: result
107       config:
108         get_file: manifests/ringbuilder.pp
109
110   ControllerRingbuilderPuppetDeployment:
111     type: OS::Heat::StructuredDeployments
112     properties:
113       name: puppet_3
114       servers:  {get_param: servers}
115       config: {get_resource: ControllerRingbuilderPuppetConfig}
116
117   ControllerPuppetDeploymentOvercloudServices:
118     type: OS::Heat::StructuredDeployments
119     properties:
120       name: puppet_4
121       servers:  {get_param: servers}
122       config: {get_resource: ControllerPuppetConfig}
123       input_values:
124         step: 2