582eb28df3a71ce1bad38aa4dacd122490a4ddb6
[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   {% if role.name == 'Controller' %}
51   ControllerPrePuppet:
52     type: OS::TripleO::Tasks::ControllerPrePuppet
53     properties:
54       servers: {get_param: [servers, Controller]}
55       input_values:
56         update_identifier: {get_param: DeployIdentifier}
57   {% endif %}
58
59   # Step through a series of configuration steps
60 {% for step in range(1, 6) %}
61   {% for role in roles %}
62
63   {{role.name}}Deployment_Step{{step}}:
64     type: OS::Heat::StructuredDeploymentGroup
65   {% if step == 1 %}
66     depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
67   {% else %}
68     depends_on:
69     {% for dep in roles %}
70       - {{dep.name}}Deployment_Step{{step -1}}
71     {% endfor %}
72   {% endif %}
73     properties:
74       name: {{role.name}}Deployment_Step{{step}}
75       servers: {get_param: [servers, {{role.name}}]}
76       config: {get_resource: {{role.name}}Config}
77       input_values:
78         step: {{step}}
79         update_identifier: {get_param: DeployIdentifier}
80
81   {% endfor %}
82 {% endfor %}
83
84   {{role.name}}PostConfig:
85     type: OS::TripleO::Tasks::{{role.name}}PostConfig
86     depends_on:
87   {% for dep in roles %}
88       - {{dep.name}}Deployment_Step5
89   {% endfor %}
90     properties:
91       servers:  {get_param: servers}
92       input_values:
93         update_identifier: {get_param: DeployIdentifier}
94
95   # Note, this should come last, so use depends_on to ensure
96   # this is created after any other resources.
97   {{role.name}}ExtraConfigPost:
98     depends_on:
99   {% for dep in roles %}
100       - {{dep.name}}PostConfig
101   {% endfor %}
102     type: OS::TripleO::NodeExtraConfigPost
103     properties:
104         servers: {get_param: [servers, {{role.name}}]}
105
106   {% if role.name == 'Controller' %}
107   ControllerPostPuppet:
108     depends_on:
109       - ControllerExtraConfigPost
110     type: OS::TripleO::Tasks::ControllerPostPuppet
111     properties:
112       servers: {get_param: [servers, Controller]}
113       input_values:
114         update_identifier: {get_param: DeployIdentifier}
115   {% endif %}
116
117 {% endfor %}