Due to bugs in v2 driver, reverting to v1
[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   role_data:
12     type: json
13     description: Mapping of Role name e.g Controller to the per-role data
14
15   DeployIdentifier:
16     default: ''
17     type: string
18     description: >
19       Setting this to a unique value will re-run any deployment tasks which
20       perform configuration on a Heat stack-update.
21   EndpointMap:
22     default: {}
23     description: Mapping of service endpoint -> protocol. Typically set
24                  via parameter_defaults in the resource registry.
25     type: json
26
27 resources:
28
29 {% for role in roles %}
30   # Post deployment steps for all roles
31   # A single config is re-applied with an incrementing step number
32   # {{role.name}} Role steps
33   {{role.name}}ArtifactsConfig:
34     type: ../puppet/deploy-artifacts.yaml
35
36   {{role.name}}ArtifactsDeploy:
37     type: OS::Heat::StructuredDeploymentGroup
38     properties:
39       servers:  {get_param: [servers, {{role.name}}]}
40       config: {get_resource: {{role.name}}ArtifactsConfig}
41
42   {{role.name}}PreConfig:
43     type: OS::TripleO::Tasks::{{role.name}}PreConfig
44     properties:
45       servers: {get_param: [servers, {{role.name}}]}
46       input_values:
47         update_identifier: {get_param: DeployIdentifier}
48
49   {{role.name}}Config:
50     type: OS::TripleO::{{role.name}}Config
51     properties:
52       StepConfig: {get_param: [role_data, {{role.name}}, step_config]}
53   {% if role.name.lower() == 'compute' %}
54       PuppetTags: {get_param: [role_data, {{role.name}}, puppet_tags]}
55   {% endif %}
56
57   # Step through a series of configuration steps
58   {{role.name}}Deployment_Step1:
59     type: OS::Heat::StructuredDeploymentGroup
60     depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
61     properties:
62       name: {{role.name}}Deployment_Step1
63       servers: {get_param: [servers, {{role.name}}]}
64       config: {get_resource: {{role.name}}Config}
65       input_values:
66         step: 1
67         update_identifier: {get_param: DeployIdentifier}
68
69   {{role.name}}Deployment_Step2:
70     type: OS::Heat::StructuredDeploymentGroup
71     depends_on:
72   {% for dep in roles %}
73       - {{dep.name}}Deployment_Step1
74   {% endfor %}
75     properties:
76       name: {{role.name}}Deployment_Step2
77       servers: {get_param: [servers, {{role.name}}]}
78       config: {get_resource: {{role.name}}Config}
79       input_values:
80         step: 2
81         update_identifier: {get_param: DeployIdentifier}
82
83   {{role.name}}Deployment_Step3:
84     type: OS::Heat::StructuredDeploymentGroup
85     depends_on:
86   {% for dep in roles %}
87       - {{dep.name}}Deployment_Step2
88   {% endfor %}
89     properties:
90       name: {{role.name}}Deployment_Step3
91       servers: {get_param: [servers, {{role.name}}]}
92       config: {get_resource: {{role.name}}Config}
93       input_values:
94         step: 3
95         update_identifier: {get_param: DeployIdentifier}
96
97   {{role.name}}Deployment_Step4:
98     type: OS::Heat::StructuredDeploymentGroup
99     depends_on:
100   {% for dep in roles %}
101       - {{dep.name}}Deployment_Step3
102   {% endfor %}
103     properties:
104       name: {{role.name}}Deployment_Step4
105       servers: {get_param: [servers, {{role.name}}]}
106       config: {get_resource: {{role.name}}Config}
107       input_values:
108         step: 4
109         update_identifier: {get_param: DeployIdentifier}
110
111   {{role.name}}Deployment_Step5:
112     type: OS::Heat::StructuredDeploymentGroup
113     depends_on:
114   {% for dep in roles %}
115       - {{dep.name}}Deployment_Step4
116   {% endfor %}
117     properties:
118       name: {{role.name}}Deployment_Step5
119       servers: {get_param: [servers, {{role.name}}]}
120       config: {get_resource: {{role.name}}Config}
121       input_values:
122         step: 5
123         update_identifier: {get_param: DeployIdentifier}
124
125   # Note, this should be the last step to execute configuration changes.
126   # Ensure that all {{role.name}}ExtraConfigPost steps are executed
127   # after all the previous deployment steps.
128   {{role.name}}ExtraConfigPost:
129     depends_on:
130   {% for dep in roles %}
131       - {{dep.name}}Deployment_Step5
132   {% endfor %}
133     type: OS::TripleO::NodeExtraConfigPost
134     properties:
135         servers: {get_param: [servers, {{role.name}}]}
136
137   # The {{role.name}}PostConfig steps are in charge of
138   # quiescing all services, i.e. in the Controller case,
139   # we should run a full service reload.
140   {{role.name}}PostConfig:
141     type: OS::TripleO::Tasks::{{role.name}}PostConfig
142     depends_on:
143   {% for dep in roles %}
144       - {{dep.name}}ExtraConfigPost
145   {% endfor %}
146     properties:
147       servers:  {get_param: servers}
148       input_values:
149         update_identifier: {get_param: DeployIdentifier}
150
151   {% if role.name.lower() == 'compute' %}
152   CopyEtcConfig:
153     type: OS::Heat::SoftwareConfig
154     depends_on: {{role.name}}PostConfig
155     properties:
156       group: script
157       outputs:
158         - name: result
159       config: {get_file: ../docker/copy-etc.sh}
160
161   CopyEtcDeployment:
162     type: OS::Heat::SoftwareDeploymentGroup
163     properties:
164       name: CopyEtcDeployment
165       servers: {get_param: [servers, {{role.name}}]}
166       config: {get_resource: CopyEtcConfig}
167
168   {{role.name}}KollaJsonConfig:
169     type: OS::Heat::StructuredConfig
170     depends_on: CopyEtcDeployment
171     properties:
172       group: json-file
173       config:
174         {get_param: [role_data, {{role.name}}, kolla_config]}
175
176   {{role.name}}KollaJsonDeployment:
177     type: OS::Heat::SoftwareDeploymentGroup
178     properties:
179       name: {{role.name}}KollaJsonDeployment
180       config: {get_resource: {{role.name}}KollaJsonConfig}
181       servers: {get_param: [servers, {{role.name}}]}
182
183   {{role.name}}ContainersConfig_Step1:
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_1]}
190
191   {{role.name}}ContainersConfig_Step2:
192     type: OS::Heat::StructuredConfig
193     depends_on: {{role.name}}KollaJsonDeployment
194     properties:
195       group: docker-cmd
196       config:
197         {get_param: [role_data, {{role.name}}, docker_config, step_2]}
198
199   {{role.name}}ContainersDeployment_Step1:
200     type: OS::Heat::StructuredDeploymentGroup
201     depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
202     properties:
203       name: {{role.name}}ContainersDeployment_Step1
204       servers: {get_param: [servers, {{role.name}}]}
205       config: {get_resource: {{role.name}}ContainersConfig_Step1}
206
207   {{role.name}}ContainersDeployment_Step2:
208     type: OS::Heat::StructuredDeploymentGroup
209     depends_on: {{role.name}}ContainersDeployment_Step1
210     properties:
211       name: {{role.name}}ContainersDeployment_Step2
212       servers: {get_param: [servers, {{role.name}}]}
213       config: {get_resource: {{role.name}}ContainersConfig_Step2}
214   {% endif %}
215 {% endfor %}