Merge "Add Heat's Cfn and Cloudwatch networks to ServiceNetMap"
[apex-tripleo-heat-templates.git] / puppet / post.yaml
1 heat_template_version: 2016-10-14
2
3 description: >
4   Post-deploy configuration steps via puppet for all roles,
5   Controller, Compute, BlockStorage, SwiftStorage and CephStorage.
6
7 parameters:
8   servers:
9     type: json
10     description: Mapping of Role name e.g Controller to a list of servers
11
12   role_data:
13     type: json
14     description: Mapping of Role name e.g Controller to the per-role data
15
16   DeployIdentifier:
17     default: ''
18     type: string
19     description: >
20       Setting this to a unique value will re-run any deployment tasks which
21       perform configuration on a Heat stack-update.
22
23 resources:
24   # Post deployment steps for all roles
25   # A single config is re-applied with an incrementing step number
26   # Controller Role steps
27   ControllerArtifactsConfig:
28     type: deploy-artifacts.yaml
29
30   ControllerArtifactsDeploy:
31     type: OS::Heat::StructuredDeployments
32     properties:
33       servers:  {get_param: [servers, Controller]}
34       config: {get_resource: ControllerArtifactsConfig}
35
36   ControllerPreConfig:
37     type: OS::TripleO::Tasks::ControllerPreConfig
38     properties:
39       servers: {get_param: [servers, Controller]}
40       input_values:
41         update_identifier: {get_param: DeployIdentifier}
42
43   ControllerConfig:
44     type: OS::TripleO::ControllerConfig
45     properties:
46       StepConfig: {get_param: [role_data, Controller, step_config]}
47
48   # Step through a series of configuration steps
49   ControllerDeployment_Step1:
50     type: OS::Heat::StructuredDeploymentGroup
51     depends_on: [ControllerPreConfig, ControllerArtifactsDeploy]
52     properties:
53       name: ControllerDeployment_Step1
54       servers: {get_param: [servers, Controller]}
55       config: {get_resource: ControllerConfig}
56       input_values:
57         step: 1
58         update_identifier: {get_param: DeployIdentifier}
59
60   ControllerDeployment_Step2:
61     type: OS::Heat::StructuredDeploymentGroup
62     depends_on:
63       - ControllerDeployment_Step1
64       - ComputeDeployment_Step1
65       - BlockStorageDeployment_Step1
66       - ObjectStorageDeployment_Step1
67       - CephStorageDeployment_Step1
68     properties:
69       name: ControllerDeployment_Step2
70       servers: {get_param: [servers, Controller]}
71       config: {get_resource: ControllerConfig}
72       input_values:
73         step: 2
74         update_identifier: {get_param: DeployIdentifier}
75
76   ControllerDeployment_Step3:
77     type: OS::Heat::StructuredDeploymentGroup
78     depends_on:
79       - ControllerDeployment_Step2
80       - ComputeDeployment_Step2
81       - BlockStorageDeployment_Step2
82       - ObjectStorageDeployment_Step2
83       - CephStorageDeployment_Step2
84     properties:
85       name: ControllerDeployment_Step3
86       servers: {get_param: [servers, Controller]}
87       config: {get_resource: ControllerConfig}
88       input_values:
89         step: 3
90         update_identifier: {get_param: DeployIdentifier}
91
92   ControllerDeployment_Step4:
93     type: OS::Heat::StructuredDeploymentGroup
94     depends_on:
95       - ControllerDeployment_Step3
96       - ComputeDeployment_Step3
97       - BlockStorageDeployment_Step3
98       - ObjectStorageDeployment_Step3
99       - CephStorageDeployment_Step3
100     properties:
101       name: ControllerDeployment_Step4
102       servers: {get_param: [servers, Controller]}
103       config: {get_resource: ControllerConfig}
104       input_values:
105         step: 4
106         update_identifier: {get_param: DeployIdentifier}
107
108   ControllerDeployment_Step5:
109     type: OS::Heat::StructuredDeploymentGroup
110     depends_on:
111       - ControllerDeployment_Step4
112       - ComputeDeployment_Step4
113       - BlockStorageDeployment_Step4
114       - ObjectStorageDeployment_Step4
115       - CephStorageDeployment_Step4
116     properties:
117       name: ControllerDeployment_Step5
118       servers: {get_param: [servers, Controller]}
119       config: {get_resource: ControllerConfig}
120       input_values:
121         step: 5
122         update_identifier: {get_param: DeployIdentifier}
123
124   ControllerPostConfig:
125     type: OS::TripleO::Tasks::ControllerPostConfig
126     depends_on:
127       - ControllerDeployment_Step5
128       - ComputeDeployment_Step5
129       - BlockStorageDeployment_Step5
130       - ObjectStorageDeployment_Step5
131       - CephStorageDeployment_Step5
132     properties:
133       servers:  {get_param: servers}
134       input_values:
135         update_identifier: {get_param: DeployIdentifier}
136
137   # Note, this should come last, so use depends_on to ensure
138   # this is created after any other resources.
139   ControllerExtraConfigPost:
140     depends_on:
141       - ControllerPostConfig
142       - ComputePostConfig
143       - BlockStoragePostConfig
144       - ObjectStoragePostConfig
145       - CephStoragePostConfig
146     type: OS::TripleO::NodeExtraConfigPost
147     properties:
148         servers: {get_param: [servers, Controller]}
149
150   # Compute Role steps
151   ComputeArtifactsConfig:
152     type: deploy-artifacts.yaml
153
154   ComputeArtifactsDeploy:
155     type: OS::Heat::StructuredDeployments
156     properties:
157       servers:  {get_param: [servers, Compute]}
158       config: {get_resource: ComputeArtifactsConfig}
159
160   ComputePreConfig:
161     type: OS::TripleO::Tasks::ComputePreConfig
162     properties:
163       servers: {get_param: [servers, Compute]}
164       input_values:
165         update_identifier: {get_param: DeployIdentifier}
166
167   ComputeConfig:
168     type: OS::TripleO::ComputeConfig
169     properties:
170       StepConfig: {get_param: [role_data, Compute, step_config]}
171
172   # Step through a series of configuration steps
173   ComputeDeployment_Step1:
174     type: OS::Heat::StructuredDeploymentGroup
175     depends_on: [ComputePreConfig, ComputeArtifactsDeploy]
176     properties:
177       name: ComputeDeployment_Step1
178       servers: {get_param: [servers, Compute]}
179       config: {get_resource: ComputeConfig}
180       input_values:
181         step: 1
182         update_identifier: {get_param: DeployIdentifier}
183
184   ComputeDeployment_Step2:
185     type: OS::Heat::StructuredDeploymentGroup
186     depends_on:
187       - ControllerDeployment_Step1
188       - ComputeDeployment_Step1
189       - BlockStorageDeployment_Step1
190       - ObjectStorageDeployment_Step1
191       - CephStorageDeployment_Step1
192     properties:
193       name: ComputeDeployment_Step2
194       servers: {get_param: [servers, Compute]}
195       config: {get_resource: ComputeConfig}
196       input_values:
197         step: 2
198         update_identifier: {get_param: DeployIdentifier}
199
200   ComputeDeployment_Step3:
201     type: OS::Heat::StructuredDeploymentGroup
202     depends_on:
203       - ControllerDeployment_Step2
204       - ComputeDeployment_Step2
205       - BlockStorageDeployment_Step2
206       - ObjectStorageDeployment_Step2
207       - CephStorageDeployment_Step2
208     properties:
209       name: ComputeDeployment_Step3
210       servers: {get_param: [servers, Compute]}
211       config: {get_resource: ComputeConfig}
212       input_values:
213         step: 3
214         update_identifier: {get_param: DeployIdentifier}
215
216   ComputeDeployment_Step4:
217     type: OS::Heat::StructuredDeploymentGroup
218     depends_on:
219       - ControllerDeployment_Step3
220       - ComputeDeployment_Step3
221       - BlockStorageDeployment_Step3
222       - ObjectStorageDeployment_Step3
223       - CephStorageDeployment_Step3
224     properties:
225       name: ComputeDeployment_Step4
226       servers: {get_param: [servers, Compute]}
227       config: {get_resource: ComputeConfig}
228       input_values:
229         step: 4
230         update_identifier: {get_param: DeployIdentifier}
231
232   ComputeDeployment_Step5:
233     type: OS::Heat::StructuredDeploymentGroup
234     depends_on:
235       - ControllerDeployment_Step4
236       - ComputeDeployment_Step4
237       - BlockStorageDeployment_Step4
238       - ObjectStorageDeployment_Step4
239       - CephStorageDeployment_Step4
240     properties:
241       name: ComputeDeployment_Step5
242       servers: {get_param: [servers, Compute]}
243       config: {get_resource: ComputeConfig}
244       input_values:
245         step: 5
246         update_identifier: {get_param: DeployIdentifier}
247
248   ComputePostConfig:
249     type: OS::TripleO::Tasks::ComputePostConfig
250     depends_on:
251       - ControllerDeployment_Step5
252       - ComputeDeployment_Step5
253       - BlockStorageDeployment_Step5
254       - ObjectStorageDeployment_Step5
255       - CephStorageDeployment_Step5
256     properties:
257       servers:  {get_param: servers}
258       input_values:
259         update_identifier: {get_param: DeployIdentifier}
260
261   # Note, this should come last, so use depends_on to ensure
262   # this is created after any other resources.
263   ComputeExtraConfigPost:
264     depends_on:
265       - ControllerPostConfig
266       - ComputePostConfig
267       - BlockStoragePostConfig
268       - ObjectStoragePostConfig
269       - CephStoragePostConfig
270     type: OS::TripleO::NodeExtraConfigPost
271     properties:
272       servers: {get_param: [servers, Compute]}
273
274   # BlockStorage Role steps
275   BlockStorageArtifactsConfig:
276     type: deploy-artifacts.yaml
277
278   BlockStorageArtifactsDeploy:
279     type: OS::Heat::StructuredDeployments
280     properties:
281       servers:  {get_param: [servers, BlockStorage]}
282       config: {get_resource: BlockStorageArtifactsConfig}
283
284   BlockStoragePreConfig:
285     type: OS::TripleO::Tasks::BlockStoragePreConfig
286     properties:
287       servers: {get_param: [servers, BlockStorage]}
288       input_values:
289         update_identifier: {get_param: DeployIdentifier}
290
291   BlockStorageConfig:
292     type: OS::TripleO::BlockStorageConfig
293     properties:
294       StepConfig: {get_param: [role_data, BlockStorage, step_config]}
295
296   # Step through a series of configuration steps
297   BlockStorageDeployment_Step1:
298     type: OS::Heat::StructuredDeploymentGroup
299     depends_on: [BlockStoragePreConfig, BlockStorageArtifactsDeploy]
300     properties:
301       name: BlockStorageDeployment_Step1
302       servers: {get_param: [servers, BlockStorage]}
303       config: {get_resource: BlockStorageConfig}
304       input_values:
305         step: 1
306         update_identifier: {get_param: DeployIdentifier}
307
308   BlockStorageDeployment_Step2:
309     type: OS::Heat::StructuredDeploymentGroup
310     depends_on:
311       - ControllerDeployment_Step1
312       - ComputeDeployment_Step1
313       - BlockStorageDeployment_Step1
314       - ObjectStorageDeployment_Step1
315       - CephStorageDeployment_Step1
316     properties:
317       name: BlockStorageDeployment_Step2
318       servers: {get_param: [servers, BlockStorage]}
319       config: {get_resource: BlockStorageConfig}
320       input_values:
321         step: 2
322         update_identifier: {get_param: DeployIdentifier}
323
324   BlockStorageDeployment_Step3:
325     type: OS::Heat::StructuredDeploymentGroup
326     depends_on:
327       - ControllerDeployment_Step2
328       - ComputeDeployment_Step2
329       - BlockStorageDeployment_Step2
330       - ObjectStorageDeployment_Step2
331       - CephStorageDeployment_Step2
332     properties:
333       name: BlockStorageDeployment_Step3
334       servers: {get_param: [servers, BlockStorage]}
335       config: {get_resource: BlockStorageConfig}
336       input_values:
337         step: 3
338         update_identifier: {get_param: DeployIdentifier}
339
340   BlockStorageDeployment_Step4:
341     type: OS::Heat::StructuredDeploymentGroup
342     depends_on:
343       - ControllerDeployment_Step3
344       - ComputeDeployment_Step3
345       - BlockStorageDeployment_Step3
346       - ObjectStorageDeployment_Step3
347       - CephStorageDeployment_Step3
348     properties:
349       name: BlockStorageDeployment_Step4
350       servers: {get_param: [servers, BlockStorage]}
351       config: {get_resource: BlockStorageConfig}
352       input_values:
353         step: 4
354         update_identifier: {get_param: DeployIdentifier}
355
356   BlockStorageDeployment_Step5:
357     type: OS::Heat::StructuredDeploymentGroup
358     depends_on:
359       - ControllerDeployment_Step4
360       - ComputeDeployment_Step4
361       - BlockStorageDeployment_Step4
362       - ObjectStorageDeployment_Step4
363       - CephStorageDeployment_Step4
364     properties:
365       name: BlockStorageDeployment_Step5
366       servers: {get_param: [servers, BlockStorage]}
367       config: {get_resource: BlockStorageConfig}
368       input_values:
369         step: 5
370         update_identifier: {get_param: DeployIdentifier}
371
372   BlockStoragePostConfig:
373     type: OS::TripleO::Tasks::BlockStoragePostConfig
374     depends_on:
375       - ControllerDeployment_Step5
376       - ComputeDeployment_Step5
377       - BlockStorageDeployment_Step5
378       - ObjectStorageDeployment_Step5
379       - CephStorageDeployment_Step5
380     properties:
381       servers:  {get_param: servers}
382       input_values:
383         update_identifier: {get_param: DeployIdentifier}
384
385   # Note, this should come last, so use depends_on to ensure
386   # this is created after any other resources.
387   BlockStorageExtraConfigPost:
388     depends_on:
389       - ControllerPostConfig
390       - ComputePostConfig
391       - BlockStoragePostConfig
392       - ObjectStoragePostConfig
393       - CephStoragePostConfig
394     type: OS::TripleO::NodeExtraConfigPost
395     properties:
396         servers: {get_param: [servers, BlockStorage]}
397
398   # ObjectStorage Role steps
399   ObjectStorageArtifactsConfig:
400     type: deploy-artifacts.yaml
401
402   ObjectStorageArtifactsDeploy:
403     type: OS::Heat::StructuredDeployments
404     properties:
405       servers:  {get_param: [servers, ObjectStorage]}
406       config: {get_resource: ObjectStorageArtifactsConfig}
407
408   ObjectStoragePreConfig:
409     type: OS::TripleO::Tasks::ObjectStoragePreConfig
410     properties:
411       servers: {get_param: [servers, ObjectStorage]}
412       input_values:
413         update_identifier: {get_param: DeployIdentifier}
414
415   ObjectStorageConfig:
416     type: OS::TripleO::ObjectStorageConfig
417     properties:
418       StepConfig: {get_param: [role_data, ObjectStorage, step_config]}
419
420   # Step through a series of configuration steps
421   ObjectStorageDeployment_Step1:
422     type: OS::Heat::StructuredDeploymentGroup
423     depends_on: [ObjectStoragePreConfig, ObjectStorageArtifactsDeploy]
424     properties:
425       name: ObjectStorageDeployment_Step1
426       servers: {get_param: [servers, ObjectStorage]}
427       config: {get_resource: ObjectStorageConfig}
428       input_values:
429         step: 1
430         update_identifier: {get_param: DeployIdentifier}
431
432   ObjectStorageDeployment_Step2:
433     type: OS::Heat::StructuredDeploymentGroup
434     depends_on:
435       - ControllerDeployment_Step1
436       - ComputeDeployment_Step1
437       - BlockStorageDeployment_Step1
438       - ObjectStorageDeployment_Step1
439       - CephStorageDeployment_Step1
440     properties:
441       name: ObjectStorageDeployment_Step2
442       servers: {get_param: [servers, ObjectStorage]}
443       config: {get_resource: ObjectStorageConfig}
444       input_values:
445         step: 2
446         update_identifier: {get_param: DeployIdentifier}
447
448   ObjectStorageDeployment_Step3:
449     type: OS::Heat::StructuredDeploymentGroup
450     depends_on:
451       - ControllerDeployment_Step2
452       - ComputeDeployment_Step2
453       - BlockStorageDeployment_Step2
454       - ObjectStorageDeployment_Step2
455       - CephStorageDeployment_Step2
456     properties:
457       name: ObjectStorageDeployment_Step3
458       servers: {get_param: [servers, ObjectStorage]}
459       config: {get_resource: ObjectStorageConfig}
460       input_values:
461         step: 3
462         update_identifier: {get_param: DeployIdentifier}
463
464   ObjectStorageDeployment_Step4:
465     type: OS::Heat::StructuredDeploymentGroup
466     depends_on:
467       - ControllerDeployment_Step3
468       - ComputeDeployment_Step3
469       - BlockStorageDeployment_Step3
470       - ObjectStorageDeployment_Step3
471       - CephStorageDeployment_Step3
472     properties:
473       name: ObjectStorageDeployment_Step4
474       servers: {get_param: [servers, ObjectStorage]}
475       config: {get_resource: ObjectStorageConfig}
476       input_values:
477         step: 4
478         update_identifier: {get_param: DeployIdentifier}
479
480   ObjectStorageDeployment_Step5:
481     type: OS::Heat::StructuredDeploymentGroup
482     depends_on:
483       - ControllerDeployment_Step4
484       - ComputeDeployment_Step4
485       - BlockStorageDeployment_Step4
486       - ObjectStorageDeployment_Step4
487       - CephStorageDeployment_Step4
488     properties:
489       name: ObjectStorageDeployment_Step5
490       servers: {get_param: [servers, ObjectStorage]}
491       config: {get_resource: ObjectStorageConfig}
492       input_values:
493         step: 5
494         update_identifier: {get_param: DeployIdentifier}
495
496   ObjectStoragePostConfig:
497     type: OS::TripleO::Tasks::ObjectStoragePostConfig
498     depends_on:
499       - ControllerDeployment_Step5
500       - ComputeDeployment_Step5
501       - BlockStorageDeployment_Step5
502       - ObjectStorageDeployment_Step5
503       - CephStorageDeployment_Step5
504     properties:
505       servers:  {get_param: servers}
506       input_values:
507         update_identifier: {get_param: DeployIdentifier}
508
509   # Note, this should come last, so use depends_on to ensure
510   # this is created after any other resources.
511   ObjectStorageExtraConfigPost:
512     depends_on:
513       - ControllerPostConfig
514       - ComputePostConfig
515       - BlockStoragePostConfig
516       - ObjectStoragePostConfig
517       - CephStoragePostConfig
518     type: OS::TripleO::NodeExtraConfigPost
519     properties:
520         servers: {get_param: [servers, ObjectStorage]}
521
522   # CephStorage Role steps
523   CephStorageArtifactsConfig:
524     type: deploy-artifacts.yaml
525
526   CephStorageArtifactsDeploy:
527     type: OS::Heat::StructuredDeployments
528     properties:
529       servers:  {get_param: [servers, CephStorage]}
530       config: {get_resource: CephStorageArtifactsConfig}
531
532   CephStoragePreConfig:
533     type: OS::TripleO::Tasks::CephStoragePreConfig
534     properties:
535       servers: {get_param: [servers, CephStorage]}
536       input_values:
537         update_identifier: {get_param: DeployIdentifier}
538
539   CephStorageConfig:
540     type: OS::TripleO::CephStorageConfig
541     properties:
542       StepConfig: {get_param: [role_data, CephStorage, step_config]}
543
544   # Step through a series of configuration steps
545   CephStorageDeployment_Step1:
546     type: OS::Heat::StructuredDeploymentGroup
547     depends_on: [CephStoragePreConfig, CephStorageArtifactsDeploy]
548     properties:
549       name: CephStorageDeployment_Step1
550       servers: {get_param: [servers, CephStorage]}
551       config: {get_resource: CephStorageConfig}
552       input_values:
553         step: 1
554         update_identifier: {get_param: DeployIdentifier}
555
556   CephStorageDeployment_Step2:
557     type: OS::Heat::StructuredDeploymentGroup
558     depends_on:
559       - ControllerDeployment_Step1
560       - ComputeDeployment_Step1
561       - BlockStorageDeployment_Step1
562       - ObjectStorageDeployment_Step1
563       - CephStorageDeployment_Step1
564     properties:
565       name: CephStorageDeployment_Step2
566       servers: {get_param: [servers, CephStorage]}
567       config: {get_resource: CephStorageConfig}
568       input_values:
569         step: 2
570         update_identifier: {get_param: DeployIdentifier}
571
572   CephStorageDeployment_Step3:
573     type: OS::Heat::StructuredDeploymentGroup
574     depends_on:
575       - ControllerDeployment_Step2
576       - ComputeDeployment_Step2
577       - BlockStorageDeployment_Step2
578       - ObjectStorageDeployment_Step2
579       - CephStorageDeployment_Step2
580     properties:
581       name: CephStorageDeployment_Step3
582       servers: {get_param: [servers, CephStorage]}
583       config: {get_resource: CephStorageConfig}
584       input_values:
585         step: 3
586         update_identifier: {get_param: DeployIdentifier}
587
588   CephStorageDeployment_Step4:
589     type: OS::Heat::StructuredDeploymentGroup
590     depends_on:
591       - ControllerDeployment_Step3
592       - ComputeDeployment_Step3
593       - BlockStorageDeployment_Step3
594       - ObjectStorageDeployment_Step3
595       - CephStorageDeployment_Step3
596     properties:
597       name: CephStorageDeployment_Step4
598       servers: {get_param: [servers, CephStorage]}
599       config: {get_resource: CephStorageConfig}
600       input_values:
601         step: 4
602         update_identifier: {get_param: DeployIdentifier}
603
604   CephStorageDeployment_Step5:
605     type: OS::Heat::StructuredDeploymentGroup
606     depends_on:
607       - ControllerDeployment_Step4
608       - ComputeDeployment_Step4
609       - BlockStorageDeployment_Step4
610       - ObjectStorageDeployment_Step4
611       - CephStorageDeployment_Step4
612     properties:
613       name: CephStorageDeployment_Step5
614       servers: {get_param: [servers, CephStorage]}
615       config: {get_resource: CephStorageConfig}
616       input_values:
617         step: 5
618         update_identifier: {get_param: DeployIdentifier}
619
620   CephStoragePostConfig:
621     type: OS::TripleO::Tasks::CephStoragePostConfig
622     depends_on:
623       - ControllerDeployment_Step5
624       - ComputeDeployment_Step5
625       - BlockStorageDeployment_Step5
626       - ObjectStorageDeployment_Step5
627       - CephStorageDeployment_Step5
628     properties:
629       servers:  {get_param: servers}
630       input_values:
631         update_identifier: {get_param: DeployIdentifier}
632
633   # Note, this should come last, so use depends_on to ensure
634   # this is created after any other resources.
635   CephStorageExtraConfigPost:
636     depends_on:
637       - ControllerPostConfig
638       - ComputePostConfig
639       - BlockStoragePostConfig
640       - ObjectStoragePostConfig
641       - CephStoragePostConfig
642     type: OS::TripleO::NodeExtraConfigPost
643     properties:
644         servers: {get_param: [servers, CephStorage]}