bfb69a157590cf86f43038c19aaa58095a2718a9
[apex-tripleo-heat-templates.git] / puppet / controller-post.yaml
1 heat_template_version: 2015-04-30
2
3 description: >
4   OpenStack controller node post deployment for Puppet.
5
6 parameters:
7   ConfigDebug:
8     default: false
9     description: Whether to run config management (e.g. Puppet) in debug mode.
10     type: boolean
11   servers:
12     type: json
13   NodeConfigIdentifiers:
14      type: json
15      description: Value which changes if the node configuration may need to be re-applied
16
17
18 resources:
19
20   ControllerPuppetConfig:
21     type: OS::TripleO::ControllerConfig
22
23   # Step through a series of Puppet runs using the same manifest.
24   # NOTE: To enable stepping through the deployments via heat hooks,
25   # you must observe the glob naming defined in overcloud-steps.yaml
26   # e.g all Deployment resources should have a *Deployment_StepN suffix
27   ControllerLoadBalancerDeployment_Step1:
28     type: OS::Heat::StructuredDeployments
29     properties:
30       name: ControllerLoadBalancerDeployment_Step1
31       servers:  {get_param: servers}
32       config: {get_resource: ControllerPuppetConfig}
33       input_values:
34         step: 1
35         update_identifier: {get_param: NodeConfigIdentifiers}
36       actions: ['CREATE'] # no need for two passes on an UPDATE
37
38   ControllerServicesBaseDeployment_Step2:
39     type: OS::Heat::StructuredDeployments
40     depends_on: ControllerLoadBalancerDeployment_Step1
41     properties:
42       name: ControllerServicesBaseDeployment_Step2
43       servers:  {get_param: servers}
44       config: {get_resource: ControllerPuppetConfig}
45       input_values:
46         step: 2
47         update_identifier: {get_param: NodeConfigIdentifiers}
48       actions: ['CREATE'] # no need for two passes on an UPDATE
49
50   ControllerRingbuilderPuppetConfig:
51     type: OS::Heat::SoftwareConfig
52     properties:
53       group: puppet
54       options:
55         enable_debug: {get_param: ConfigDebug}
56         enable_hiera: True
57         enable_facter: False
58       inputs:
59       outputs:
60       - name: result
61       config:
62         get_file: manifests/ringbuilder.pp
63
64   ControllerRingbuilderDeployment_Step3:
65     type: OS::Heat::StructuredDeployments
66     depends_on: ControllerServicesBaseDeployment_Step2
67     properties:
68       name: ControllerRingbuilderDeployment_Step3
69       servers:  {get_param: servers}
70       config: {get_resource: ControllerRingbuilderPuppetConfig}
71       input_values:
72         update_identifier: {get_param: NodeConfigIdentifiers}
73
74   ControllerOvercloudServicesDeployment_Step4:
75     type: OS::Heat::StructuredDeployments
76     depends_on: ControllerRingbuilderDeployment_Step3
77     properties:
78       name: ControllerOvercloudServicesDeployment_Step4
79       servers:  {get_param: servers}
80       config: {get_resource: ControllerPuppetConfig}
81       input_values:
82         step: 3
83         update_identifier: {get_param: NodeConfigIdentifiers}
84
85   ControllerOvercloudServicesDeployment_Step5:
86     type: OS::Heat::StructuredDeployments
87     depends_on: ControllerOvercloudServicesDeployment_Step4
88     properties:
89       name: ControllerOvercloudServicesDeployment_Step5
90       servers:  {get_param: servers}
91       config: {get_resource: ControllerPuppetConfig}
92       input_values:
93         step: 4
94         update_identifier: {get_param: NodeConfigIdentifiers}
95
96   ControllerOvercloudServicesDeployment_Step6:
97     type: OS::Heat::StructuredDeployments
98     depends_on: ControllerOvercloudServicesDeployment_Step5
99     properties:
100       name: ControllerOvercloudServicesDeployment_Step6
101       servers:  {get_param: servers}
102       config: {get_resource: ControllerPuppetConfig}
103       input_values:
104         step: 5
105         update_identifier: {get_param: NodeConfigIdentifiers}
106
107   # Note, this should come last, so use depends_on to ensure
108   # this is created after any other resources.
109   ExtraConfig:
110     depends_on: ControllerOvercloudServicesDeployment_Step5
111     type: OS::TripleO::NodeExtraConfigPost
112     properties:
113         servers: {get_param: servers}