1 heat_template_version: ocata
4 Post-deploy configuration steps via puppet for all roles,
5 as defined in ../roles_data.yaml
10 description: Mapping of Role name e.g Controller to a list of servers
14 description: Mapping of Role name e.g Controller to the per-role data
20 Setting this to a unique value will re-run any deployment tasks which
21 perform configuration on a Heat stack-update.
24 description: namespace
25 default: 'tripleoupstream'
30 default: "/etc/libvirt/libvirtd.conf"
34 default: "/etc/nova/nova.conf,/etc/nova/rootwrap.conf"
36 NeutronOpenvswitchAgentConfig:
38 default: "/etc/neutron/neutron.conf,/etc/neutron/plugins/ml2/openvswitch_agent.ini"
42 {% for role in roles %}
43 # Post deployment steps for all roles
44 # A single config is re-applied with an incrementing step number
45 # {{role.name}} Role steps
46 {{role.name}}ArtifactsConfig:
47 type: ../puppet/deploy-artifacts.yaml
49 {{role.name}}ArtifactsDeploy:
50 type: OS::Heat::StructuredDeploymentGroup
52 servers: {get_param: [servers, {{role.name}}]}
53 config: {get_resource: {{role.name}}ArtifactsConfig}
55 {{role.name}}PreConfig:
56 type: OS::TripleO::Tasks::{{role.name}}PreConfig
58 servers: {get_param: [servers, {{role.name}}]}
60 update_identifier: {get_param: DeployIdentifier}
63 type: OS::TripleO::{{role.name}}Config
65 StepConfig: {get_param: [role_data, {{role.name}}, step_config]}
66 {% if role.name.lower() == 'compute' %}
67 PuppetTags: {get_param: [role_data, {{role.name}}, puppet_tags]}
70 # Step through a series of configuration steps
71 {{role.name}}Deployment_Step1:
72 type: OS::Heat::StructuredDeploymentGroup
73 depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
75 name: {{role.name}}Deployment_Step1
76 servers: {get_param: [servers, {{role.name}}]}
77 config: {get_resource: {{role.name}}Config}
80 update_identifier: {get_param: DeployIdentifier}
82 {{role.name}}Deployment_Step2:
83 type: OS::Heat::StructuredDeploymentGroup
85 {% for dep in roles %}
86 - {{dep.name}}Deployment_Step1
89 name: {{role.name}}Deployment_Step2
90 servers: {get_param: [servers, {{role.name}}]}
91 config: {get_resource: {{role.name}}Config}
94 update_identifier: {get_param: DeployIdentifier}
96 {{role.name}}Deployment_Step3:
97 type: OS::Heat::StructuredDeploymentGroup
99 {% for dep in roles %}
100 - {{dep.name}}Deployment_Step2
103 name: {{role.name}}Deployment_Step3
104 servers: {get_param: [servers, {{role.name}}]}
105 config: {get_resource: {{role.name}}Config}
108 update_identifier: {get_param: DeployIdentifier}
110 {{role.name}}Deployment_Step4:
111 type: OS::Heat::StructuredDeploymentGroup
113 {% for dep in roles %}
114 - {{dep.name}}Deployment_Step3
117 name: {{role.name}}Deployment_Step4
118 servers: {get_param: [servers, {{role.name}}]}
119 config: {get_resource: {{role.name}}Config}
122 update_identifier: {get_param: DeployIdentifier}
124 {{role.name}}Deployment_Step5:
125 type: OS::Heat::StructuredDeploymentGroup
127 {% for dep in roles %}
128 - {{dep.name}}Deployment_Step4
131 name: {{role.name}}Deployment_Step5
132 servers: {get_param: [servers, {{role.name}}]}
133 config: {get_resource: {{role.name}}Config}
136 update_identifier: {get_param: DeployIdentifier}
138 {{role.name}}PostConfig:
139 type: OS::TripleO::Tasks::{{role.name}}PostConfig
141 {% for dep in roles %}
142 - {{dep.name}}Deployment_Step5
145 servers: {get_param: servers}
147 update_identifier: {get_param: DeployIdentifier}
149 # Note, this should come last, so use depends_on to ensure
150 # this is created after any other resources.
151 {{role.name}}ExtraConfigPost:
153 {% for dep in roles %}
154 - {{dep.name}}PostConfig
156 type: OS::TripleO::NodeExtraConfigPost
158 servers: {get_param: [servers, {{role.name}}]}
160 {% if role.name.lower() == 'compute' %}
162 type: OS::Heat::SoftwareConfig
163 depends_on: {{role.name}}PostConfig
168 config: {get_file: ../docker/copy-etc.sh}
171 type: OS::Heat::SoftwareDeploymentGroup
173 name: CopyEtcDeployment
174 servers: {get_param: [servers, {{role.name}}]}
175 config: {get_resource: CopyEtcConfig}
178 type: OS::Heat::SoftwareConfig
182 - name: libvirt_config
184 - name: neutron_openvswitch_agent_config
185 config: {get_file: ../docker/copy-json.py}
188 type: OS::Heat::SoftwareDeploymentGroup
189 depends_on: CopyEtcDeployment
191 name: CopyJsonDeployment
192 config: {get_resource: CopyJsonConfig}
193 servers: {get_param: [servers, {{role.name}}]}
195 libvirt_config: {get_param: LibvirtConfig}
196 nova_config: {get_param: NovaConfig}
197 neutron_openvswitch_agent_config: {get_param: NeutronOpenvswitchAgentConfig}
199 {{role.name}}ContainersConfig_Step1:
200 type: OS::Heat::StructuredConfig
201 depends_on: CopyJsonDeployment
205 {get_param: [role_data, {{role.name}}, docker_config, step_1]}
207 {{role.name}}ContainersConfig_Step2:
208 type: OS::Heat::StructuredConfig
209 depends_on: CopyJsonDeployment
213 {get_param: [role_data, {{role.name}}, docker_config, step_2]}
215 {{role.name}}ContainersDeployment_Step1:
216 type: OS::Heat::StructuredDeploymentGroup
217 depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
219 name: {{role.name}}ContainersDeployment_Step1
220 servers: {get_param: [servers, {{role.name}}]}
221 config: {get_resource: {{role.name}}ContainersConfig_Step1}
223 {{role.name}}ContainersDeployment_Step2:
224 type: OS::Heat::StructuredDeploymentGroup
225 depends_on: {{role.name}}ContainersDeployment_Step1
227 name: {{role.name}}ContainersDeployment_Step2
228 servers: {get_param: [servers, {{role.name}}]}
229 config: {get_resource: {{role.name}}ContainersConfig_Step2}