1 heat_template_version: 2016-10-14
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'
28 DockerOpenvswitchDBImage:
30 default: 'centos-binary-openvswitch-db-server'
33 DockerOvsVswitchdImage:
35 default: 'centos-binary-openvswitch-vswitchd'
40 default: "/etc/libvirt/libvirtd.conf"
44 default: "/etc/nova/nova.conf,/etc/nova/rootwrap.conf"
46 NeutronOpenvswitchAgentConfig:
48 default: "/etc/neutron/neutron.conf,/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini"
52 {% for role in roles %}
53 # Post deployment steps for all roles
54 # A single config is re-applied with an incrementing step number
55 # {{role.name}} Role steps
56 {{role.name}}ArtifactsConfig:
57 type: ../puppet/deploy-artifacts.yaml
59 {{role.name}}ArtifactsDeploy:
60 type: OS::Heat::StructuredDeploymentGroup
62 servers: {get_param: [servers, {{role.name}}]}
63 config: {get_resource: {{role.name}}ArtifactsConfig}
65 {{role.name}}PreConfig:
66 type: OS::TripleO::Tasks::{{role.name}}PreConfig
68 servers: {get_param: [servers, {{role.name}}]}
70 update_identifier: {get_param: DeployIdentifier}
73 type: OS::TripleO::{{role.name}}Config
75 StepConfig: {get_param: [role_data, {{role.name}}, step_config]}
76 {% if role.name.lower() == 'compute' %}
77 PuppetTags: {get_param: [role_data, {{role.name}}, puppet_tags]}
80 # Step through a series of configuration steps
81 {{role.name}}Deployment_Step1:
82 type: OS::Heat::StructuredDeploymentGroup
83 depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
85 name: {{role.name}}Deployment_Step1
86 servers: {get_param: [servers, {{role.name}}]}
87 config: {get_resource: {{role.name}}Config}
90 update_identifier: {get_param: DeployIdentifier}
92 {{role.name}}Deployment_Step2:
93 type: OS::Heat::StructuredDeploymentGroup
95 {% for dep in roles %}
96 - {{dep.name}}Deployment_Step1
99 name: {{role.name}}Deployment_Step2
100 servers: {get_param: [servers, {{role.name}}]}
101 config: {get_resource: {{role.name}}Config}
104 update_identifier: {get_param: DeployIdentifier}
106 {{role.name}}Deployment_Step3:
107 type: OS::Heat::StructuredDeploymentGroup
109 {% for dep in roles %}
110 - {{dep.name}}Deployment_Step2
113 name: {{role.name}}Deployment_Step3
114 servers: {get_param: [servers, {{role.name}}]}
115 config: {get_resource: {{role.name}}Config}
118 update_identifier: {get_param: DeployIdentifier}
120 {{role.name}}Deployment_Step4:
121 type: OS::Heat::StructuredDeploymentGroup
123 {% for dep in roles %}
124 - {{dep.name}}Deployment_Step3
127 name: {{role.name}}Deployment_Step4
128 servers: {get_param: [servers, {{role.name}}]}
129 config: {get_resource: {{role.name}}Config}
132 update_identifier: {get_param: DeployIdentifier}
134 {{role.name}}Deployment_Step5:
135 type: OS::Heat::StructuredDeploymentGroup
137 {% for dep in roles %}
138 - {{dep.name}}Deployment_Step4
141 name: {{role.name}}Deployment_Step5
142 servers: {get_param: [servers, {{role.name}}]}
143 config: {get_resource: {{role.name}}Config}
146 update_identifier: {get_param: DeployIdentifier}
148 {{role.name}}PostConfig:
149 type: OS::TripleO::Tasks::{{role.name}}PostConfig
151 {% for dep in roles %}
152 - {{dep.name}}Deployment_Step5
155 servers: {get_param: servers}
157 update_identifier: {get_param: DeployIdentifier}
159 # Note, this should come last, so use depends_on to ensure
160 # this is created after any other resources.
161 {{role.name}}ExtraConfigPost:
163 {% for dep in roles %}
164 - {{dep.name}}PostConfig
166 type: OS::TripleO::NodeExtraConfigPost
168 servers: {get_param: [servers, {{role.name}}]}
170 {% if role.name.lower() == 'compute' %}
172 type: OS::Heat::SoftwareConfig
173 depends_on: {{role.name}}PostConfig
178 config: {get_file: ../docker/copy-etc.sh}
181 type: OS::Heat::SoftwareDeploymentGroup
183 name: CopyEtcDeployment
184 servers: {get_param: [servers, {{role.name}}]}
185 config: {get_resource: CopyEtcConfig}
188 type: OS::Heat::SoftwareConfig
192 - name: libvirt_config
194 - name: neutron_openvswitch_agent_config
195 config: {get_file: ../docker/copy-json.py}
198 type: OS::Heat::SoftwareDeploymentGroup
199 depends_on: CopyEtcDeployment
201 name: CopyJsonDeployment
202 config: {get_resource: CopyJsonConfig}
203 servers: {get_param: [servers, {{role.name}}]}
205 libvirt_config: {get_param: LibvirtConfig}
206 nova_config: {get_param: NovaConfig}
207 neutron_openvswitch_agent_config: {get_param: NeutronOpenvswitchAgentConfig}
209 NovaComputeContainersDeploymentOVS:
210 type: OS::Heat::StructuredDeploymentGroup
211 depends_on: CopyJsonDeployment
213 name: NovaComputeContainersDeploymentOVS
214 config: {get_resource: NovaComputeContainersConfigOVS}
215 servers: {get_param: [servers, {{role.name}}]}
217 NovaComputeContainersConfigOVS:
218 type: OS::Heat::StructuredConfig
226 - [ {get_param: DockerNamespace}, {get_param: DockerOpenvswitchDBImage} ]
230 - /var/lib/etc-data/json-config/ovsdb-server.json:/var/lib/kolla/config_files/config.json
231 - /etc/localtime:/etc/localtime:ro
233 - logs:/var/log/kolla/
234 - openvswitch_db:/var/lib/openvswitch/
236 - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
242 - [ {get_param: DockerNamespace}, {get_param: DockerOvsVswitchdImage} ]
247 - /var/lib/etc-data/json-config/ovs-vswitchd.json:/var/lib/kolla/config_files/config.json
248 - /etc/localtime:/etc/localtime:ro
249 - /lib/modules:/lib/modules:ro
251 - logs:/var/log/kolla/
253 - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
255 NovaComputeContainersDeploymentNetconfig:
256 type: OS::Heat::SoftwareDeploymentGroup
257 depends_on: NovaComputeContainersDeploymentOVS
259 name: NovaComputeContainersDeploymentNetconfig
260 config: {get_resource: NovaComputeContainersConfigNetconfig}
261 servers: {get_param: [servers, {{role.name}}]}
263 # We run os-net-config here because we depend on the ovs containers to be up
264 # and running before we configure the network. This allows explicit timing
265 # of the network configuration.
266 NovaComputeContainersConfigNetconfig:
267 type: OS::Heat::SoftwareConfig
274 /usr/local/bin/run-os-net-config
276 {{role.name}}ContainersConfig_Step1:
277 type: OS::Heat::StructuredConfig
278 depends_on: CopyJsonDeployment
282 {get_param: [role_data, {{role.name}}, docker_config, step_1]}
284 {{role.name}}ContainersConfig_Step2:
285 type: OS::Heat::StructuredConfig
286 depends_on: CopyJsonDeployment
290 {get_param: [role_data, {{role.name}}, docker_config, step_2]}
292 {{role.name}}ContainersDeployment_Step1:
293 type: OS::Heat::StructuredDeploymentGroup
294 depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy, NovaComputeContainersDeploymentNetconfig]
296 name: {{role.name}}ContainersDeployment_Step1
297 servers: {get_param: [servers, {{role.name}}]}
298 config: {get_resource: {{role.name}}ContainersConfig_Step1}
300 {{role.name}}ContainersDeployment_Step2:
301 type: OS::Heat::StructuredDeploymentGroup
302 depends_on: {{role.name}}ContainersDeployment_Step1
304 name: {{role.name}}ContainersDeployment_Step2
305 servers: {get_param: [servers, {{role.name}}]}
306 config: {get_resource: {{role.name}}ContainersConfig_Step2}