Merge "Add Ceph RGW to capabilities map"
[apex-tripleo-heat-templates.git] / docker / post.j2.yaml
1 heat_template_version: ocata
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: ../puppet/deploy-artifacts.yaml
31
32   {{role.name}}ArtifactsDeploy:
33     type: OS::Heat::StructuredDeploymentGroup
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   {% if role.name.lower() == 'compute' %}
50       PuppetTags: {get_param: [role_data, {{role.name}}, puppet_tags]}
51   {% endif %}
52
53   # Step through a series of configuration steps
54   {{role.name}}Deployment_Step1:
55     type: OS::Heat::StructuredDeploymentGroup
56     depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
57     properties:
58       name: {{role.name}}Deployment_Step1
59       servers: {get_param: [servers, {{role.name}}]}
60       config: {get_resource: {{role.name}}Config}
61       input_values:
62         step: 1
63         update_identifier: {get_param: DeployIdentifier}
64
65   {{role.name}}Deployment_Step2:
66     type: OS::Heat::StructuredDeploymentGroup
67     depends_on:
68   {% for dep in roles %}
69       - {{dep.name}}Deployment_Step1
70   {% endfor %}
71     properties:
72       name: {{role.name}}Deployment_Step2
73       servers: {get_param: [servers, {{role.name}}]}
74       config: {get_resource: {{role.name}}Config}
75       input_values:
76         step: 2
77         update_identifier: {get_param: DeployIdentifier}
78
79   {{role.name}}Deployment_Step3:
80     type: OS::Heat::StructuredDeploymentGroup
81     depends_on:
82   {% for dep in roles %}
83       - {{dep.name}}Deployment_Step2
84   {% endfor %}
85     properties:
86       name: {{role.name}}Deployment_Step3
87       servers: {get_param: [servers, {{role.name}}]}
88       config: {get_resource: {{role.name}}Config}
89       input_values:
90         step: 3
91         update_identifier: {get_param: DeployIdentifier}
92
93   {{role.name}}Deployment_Step4:
94     type: OS::Heat::StructuredDeploymentGroup
95     depends_on:
96   {% for dep in roles %}
97       - {{dep.name}}Deployment_Step3
98   {% endfor %}
99     properties:
100       name: {{role.name}}Deployment_Step4
101       servers: {get_param: [servers, {{role.name}}]}
102       config: {get_resource: {{role.name}}Config}
103       input_values:
104         step: 4
105         update_identifier: {get_param: DeployIdentifier}
106
107   {{role.name}}Deployment_Step5:
108     type: OS::Heat::StructuredDeploymentGroup
109     depends_on:
110   {% for dep in roles %}
111       - {{dep.name}}Deployment_Step4
112   {% endfor %}
113     properties:
114       name: {{role.name}}Deployment_Step5
115       servers: {get_param: [servers, {{role.name}}]}
116       config: {get_resource: {{role.name}}Config}
117       input_values:
118         step: 5
119         update_identifier: {get_param: DeployIdentifier}
120
121   {{role.name}}PostConfig:
122     type: OS::TripleO::Tasks::{{role.name}}PostConfig
123     depends_on:
124   {% for dep in roles %}
125       - {{dep.name}}Deployment_Step5
126   {% endfor %}
127     properties:
128       servers:  {get_param: servers}
129       input_values:
130         update_identifier: {get_param: DeployIdentifier}
131
132   # Note, this should come last, so use depends_on to ensure
133   # this is created after any other resources.
134   {{role.name}}ExtraConfigPost:
135     depends_on:
136   {% for dep in roles %}
137       - {{dep.name}}PostConfig
138   {% endfor %}
139     type: OS::TripleO::NodeExtraConfigPost
140     properties:
141         servers: {get_param: [servers, {{role.name}}]}
142
143   {% if role.name.lower() == 'compute' %}
144   CopyEtcConfig:
145     type: OS::Heat::SoftwareConfig
146     depends_on: {{role.name}}PostConfig
147     properties:
148       group: script
149       outputs:
150         - name: result
151       config: {get_file: ../docker/copy-etc.sh}
152
153   CopyEtcDeployment:
154     type: OS::Heat::SoftwareDeploymentGroup
155     properties:
156       name: CopyEtcDeployment
157       servers: {get_param: [servers, {{role.name}}]}
158       config: {get_resource: CopyEtcConfig}
159
160   {{role.name}}KollaJsonConfig:
161     type: OS::Heat::StructuredConfig
162     depends_on: CopyEtcDeployment
163     properties:
164       group: json-file
165       config:
166         {get_param: [role_data, {{role.name}}, kolla_config]}
167
168   {{role.name}}KollaJsonDeployment:
169     type: OS::Heat::SoftwareDeploymentGroup
170     properties:
171       name: {{role.name}}KollaJsonDeployment
172       config: {get_resource: {{role.name}}KollaJsonConfig}
173       servers: {get_param: [servers, {{role.name}}]}
174
175   {{role.name}}ContainersConfig_Step1:
176     type: OS::Heat::StructuredConfig
177     depends_on: {{role.name}}KollaJsonDeployment
178     properties:
179       group: docker-cmd
180       config:
181         {get_param: [role_data, {{role.name}}, docker_config, step_1]}
182
183   {{role.name}}ContainersConfig_Step2:
184     type: OS::Heat::StructuredConfig
185     depends_on: {{role.name}}KollaJsonDeployment
186     properties:
187       group: docker-cmd
188       config:
189         {get_param: [role_data, {{role.name}}, docker_config, step_2]}
190
191   {{role.name}}ContainersDeployment_Step1:
192     type: OS::Heat::StructuredDeploymentGroup
193     depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
194     properties:
195       name: {{role.name}}ContainersDeployment_Step1
196       servers: {get_param: [servers, {{role.name}}]}
197       config: {get_resource: {{role.name}}ContainersConfig_Step1}
198
199   {{role.name}}ContainersDeployment_Step2:
200     type: OS::Heat::StructuredDeploymentGroup
201     depends_on: {{role.name}}ContainersDeployment_Step1
202     properties:
203       name: {{role.name}}ContainersDeployment_Step2
204       servers: {get_param: [servers, {{role.name}}]}
205       config: {get_resource: {{role.name}}ContainersConfig_Step2}
206   {% endif %}
207 {% endfor %}