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