Merge "Remove unused nova_url from neutron config"
[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   {{role.name}}PostConfig:
126     type: OS::TripleO::Tasks::{{role.name}}PostConfig
127     depends_on:
128   {% for dep in roles %}
129       - {{dep.name}}Deployment_Step5
130   {% endfor %}
131     properties:
132       servers:  {get_param: servers}
133       input_values:
134         update_identifier: {get_param: DeployIdentifier}
135
136   # Note, this should come last, so use depends_on to ensure
137   # this is created after any other resources.
138   {{role.name}}ExtraConfigPost:
139     depends_on:
140   {% for dep in roles %}
141       - {{dep.name}}PostConfig
142   {% endfor %}
143     type: OS::TripleO::NodeExtraConfigPost
144     properties:
145         servers: {get_param: [servers, {{role.name}}]}
146
147   {% if role.name.lower() == 'compute' %}
148   CopyEtcConfig:
149     type: OS::Heat::SoftwareConfig
150     depends_on: {{role.name}}PostConfig
151     properties:
152       group: script
153       outputs:
154         - name: result
155       config: {get_file: ../docker/copy-etc.sh}
156
157   CopyEtcDeployment:
158     type: OS::Heat::SoftwareDeploymentGroup
159     properties:
160       name: CopyEtcDeployment
161       servers: {get_param: [servers, {{role.name}}]}
162       config: {get_resource: CopyEtcConfig}
163
164   {{role.name}}KollaJsonConfig:
165     type: OS::Heat::StructuredConfig
166     depends_on: CopyEtcDeployment
167     properties:
168       group: json-file
169       config:
170         {get_param: [role_data, {{role.name}}, kolla_config]}
171
172   {{role.name}}KollaJsonDeployment:
173     type: OS::Heat::SoftwareDeploymentGroup
174     properties:
175       name: {{role.name}}KollaJsonDeployment
176       config: {get_resource: {{role.name}}KollaJsonConfig}
177       servers: {get_param: [servers, {{role.name}}]}
178
179   {{role.name}}ContainersConfig_Step1:
180     type: OS::Heat::StructuredConfig
181     depends_on: {{role.name}}KollaJsonDeployment
182     properties:
183       group: docker-cmd
184       config:
185         {get_param: [role_data, {{role.name}}, docker_config, step_1]}
186
187   {{role.name}}ContainersConfig_Step2:
188     type: OS::Heat::StructuredConfig
189     depends_on: {{role.name}}KollaJsonDeployment
190     properties:
191       group: docker-cmd
192       config:
193         {get_param: [role_data, {{role.name}}, docker_config, step_2]}
194
195   {{role.name}}ContainersDeployment_Step1:
196     type: OS::Heat::StructuredDeploymentGroup
197     depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
198     properties:
199       name: {{role.name}}ContainersDeployment_Step1
200       servers: {get_param: [servers, {{role.name}}]}
201       config: {get_resource: {{role.name}}ContainersConfig_Step1}
202
203   {{role.name}}ContainersDeployment_Step2:
204     type: OS::Heat::StructuredDeploymentGroup
205     depends_on: {{role.name}}ContainersDeployment_Step1
206     properties:
207       name: {{role.name}}ContainersDeployment_Step2
208       servers: {get_param: [servers, {{role.name}}]}
209       config: {get_resource: {{role.name}}ContainersConfig_Step2}
210   {% endif %}
211 {% endfor %}