Merge "Remove GlanceRegistry from EndpointMap"
[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   ControllerArtifactsConfig:
21     type: deploy-artifacts.yaml
22
23   ControllerArtifactsDeploy:
24     type: OS::Heat::StructuredDeployments
25     properties:
26       servers:  {get_param: servers}
27       config: {get_resource: ControllerArtifactsConfig}
28
29   ControllerPrePuppet:
30     type: OS::TripleO::Tasks::ControllerPrePuppet
31     properties:
32       servers:  {get_param: servers}
33       input_values:
34         update_identifier: {get_param: NodeConfigIdentifiers}
35
36   ControllerPuppetConfig:
37     type: OS::TripleO::ControllerConfig
38
39   # Step through a series of Puppet runs using the same manifest.
40   # NOTE: To enable stepping through the deployments via heat hooks,
41   # you must observe the glob naming defined in overcloud-steps.yaml
42   # e.g all Deployment resources should have a *Deployment_StepN suffix
43   ControllerLoadBalancerDeployment_Step1:
44     type: OS::Heat::StructuredDeployments
45     depends_on: [ControllerPrePuppet, ControllerArtifactsDeploy]
46     properties:
47       name: ControllerLoadBalancerDeployment_Step1
48       servers:  {get_param: servers}
49       config: {get_resource: ControllerPuppetConfig}
50       input_values:
51         step: 1
52         update_identifier: {get_param: NodeConfigIdentifiers}
53       actions: ['CREATE'] # no need for two passes on an UPDATE
54
55   ControllerServicesBaseDeployment_Step2:
56     type: OS::Heat::StructuredDeployments
57     depends_on: ControllerLoadBalancerDeployment_Step1
58     properties:
59       name: ControllerServicesBaseDeployment_Step2
60       servers:  {get_param: servers}
61       config: {get_resource: ControllerPuppetConfig}
62       input_values:
63         step: 2
64         update_identifier: {get_param: NodeConfigIdentifiers}
65       actions: ['CREATE'] # no need for two passes on an UPDATE
66
67   ControllerRingbuilderPuppetConfig:
68     type: OS::Heat::SoftwareConfig
69     properties:
70       group: puppet
71       options:
72         enable_debug: {get_param: ConfigDebug}
73         enable_hiera: True
74         enable_facter: False
75       inputs:
76       outputs:
77       - name: result
78       config:
79         get_file: manifests/ringbuilder.pp
80
81   ControllerRingbuilderDeployment_Step3:
82     type: OS::Heat::StructuredDeployments
83     depends_on: ControllerServicesBaseDeployment_Step2
84     properties:
85       name: ControllerRingbuilderDeployment_Step3
86       servers:  {get_param: servers}
87       config: {get_resource: ControllerRingbuilderPuppetConfig}
88       input_values:
89         update_identifier: {get_param: NodeConfigIdentifiers}
90
91   ControllerOvercloudServicesDeployment_Step4:
92     type: OS::Heat::StructuredDeployments
93     depends_on: ControllerRingbuilderDeployment_Step3
94     properties:
95       name: ControllerOvercloudServicesDeployment_Step4
96       servers:  {get_param: servers}
97       config: {get_resource: ControllerPuppetConfig}
98       input_values:
99         step: 3
100         update_identifier: {get_param: NodeConfigIdentifiers}
101
102   ControllerOvercloudServicesDeployment_Step5:
103     type: OS::Heat::StructuredDeployments
104     depends_on: ControllerOvercloudServicesDeployment_Step4
105     properties:
106       name: ControllerOvercloudServicesDeployment_Step5
107       servers:  {get_param: servers}
108       config: {get_resource: ControllerPuppetConfig}
109       input_values:
110         step: 4
111         update_identifier: {get_param: NodeConfigIdentifiers}
112
113   ControllerOvercloudServicesDeployment_Step6:
114     type: OS::Heat::StructuredDeployments
115     depends_on: ControllerOvercloudServicesDeployment_Step5
116     properties:
117       name: ControllerOvercloudServicesDeployment_Step6
118       servers:  {get_param: servers}
119       config: {get_resource: ControllerPuppetConfig}
120       input_values:
121         step: 5
122         update_identifier: {get_param: NodeConfigIdentifiers}
123
124   ControllerPostPuppet:
125     type: OS::TripleO::Tasks::ControllerPostPuppet
126     depends_on: ControllerOvercloudServicesDeployment_Step6
127     properties:
128       servers:  {get_param: servers}
129       input_values:
130         update_identifier: {get_param: NodeConfigIdentifiers}
131
132   # Note, this should come last, so use depends_on to ensure
133   # this is created after any other resources.
134   ExtraConfig:
135     depends_on: ControllerPostPuppet
136     type: OS::TripleO::NodeExtraConfigPost
137     properties:
138         servers: {get_param: servers}