Merge "Convert deploy steps to jinja2 loop"
[apex-tripleo-heat-templates.git] / puppet / post.j2.yaml
1 heat_template_version: 2016-10-14
2
3 description: >
4   Post-deploy configuration steps via puppet for all roles,
5   as defined in ../roles_data.yaml
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
25 {% for role in roles %}
26   # Post deployment steps for all roles
27   # A single config is re-applied with an incrementing step number
28   # {{role.name}} Role steps
29   {{role.name}}ArtifactsConfig:
30     type: deploy-artifacts.yaml
31
32   {{role.name}}ArtifactsDeploy:
33     type: OS::Heat::StructuredDeployments
34     properties:
35       servers:  {get_param: [servers, {{role.name}}]}
36       config: {get_resource: {{role.name}}ArtifactsConfig}
37
38   {{role.name}}PreConfig:
39     type: OS::TripleO::Tasks::{{role.name}}PreConfig
40     properties:
41       servers: {get_param: [servers, {{role.name}}]}
42       input_values:
43         update_identifier: {get_param: DeployIdentifier}
44
45   {{role.name}}Config:
46     type: OS::TripleO::{{role.name}}Config
47     properties:
48       StepConfig: {get_param: [role_data, {{role.name}}, step_config]}
49
50   # Step through a series of configuration steps
51   {{role.name}}Deployment_Step1:
52     type: OS::Heat::StructuredDeploymentGroup
53     depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
54     properties:
55       name: {{role.name}}Deployment_Step1
56       servers: {get_param: [servers, {{role.name}}]}
57       config: {get_resource: {{role.name}}Config}
58       input_values:
59         step: 1
60         update_identifier: {get_param: DeployIdentifier}
61
62   {{role.name}}Deployment_Step2:
63     type: OS::Heat::StructuredDeploymentGroup
64     depends_on:
65   {% for dep in roles %}
66       - {{dep.name}}Deployment_Step1
67   {% endfor %}
68     properties:
69       name: {{role.name}}Deployment_Step2
70       servers: {get_param: [servers, {{role.name}}]}
71       config: {get_resource: {{role.name}}Config}
72       input_values:
73         step: 2
74         update_identifier: {get_param: DeployIdentifier}
75
76   {{role.name}}Deployment_Step3:
77     type: OS::Heat::StructuredDeploymentGroup
78     depends_on:
79   {% for dep in roles %}
80       - {{dep.name}}Deployment_Step2
81   {% endfor %}
82     properties:
83       name: {{role.name}}Deployment_Step3
84       servers: {get_param: [servers, {{role.name}}]}
85       config: {get_resource: {{role.name}}Config}
86       input_values:
87         step: 3
88         update_identifier: {get_param: DeployIdentifier}
89
90   {{role.name}}Deployment_Step4:
91     type: OS::Heat::StructuredDeploymentGroup
92     depends_on:
93   {% for dep in roles %}
94       - {{dep.name}}Deployment_Step3
95   {% endfor %}
96     properties:
97       name: {{role.name}}Deployment_Step4
98       servers: {get_param: [servers, {{role.name}}]}
99       config: {get_resource: {{role.name}}Config}
100       input_values:
101         step: 4
102         update_identifier: {get_param: DeployIdentifier}
103
104   {{role.name}}Deployment_Step5:
105     type: OS::Heat::StructuredDeploymentGroup
106     depends_on:
107   {% for dep in roles %}
108       - {{dep.name}}Deployment_Step4
109   {% endfor %}
110     properties:
111       name: {{role.name}}Deployment_Step5
112       servers: {get_param: [servers, {{role.name}}]}
113       config: {get_resource: {{role.name}}Config}
114       input_values:
115         step: 5
116         update_identifier: {get_param: DeployIdentifier}
117
118   {{role.name}}PostConfig:
119     type: OS::TripleO::Tasks::{{role.name}}PostConfig
120     depends_on:
121   {% for dep in roles %}
122       - {{dep.name}}Deployment_Step5
123   {% endfor %}
124     properties:
125       servers:  {get_param: servers}
126       input_values:
127         update_identifier: {get_param: DeployIdentifier}
128
129   # Note, this should come last, so use depends_on to ensure
130   # this is created after any other resources.
131   {{role.name}}ExtraConfigPost:
132     depends_on:
133   {% for dep in roles %}
134       - {{dep.name}}PostConfig
135   {% endfor %}
136     type: OS::TripleO::NodeExtraConfigPost
137     properties:
138         servers: {get_param: [servers, {{role.name}}]}
139 {% endfor %}