1 heat_template_version: 2013-05-23
2 #################################
5 # - Unique availability zone for each VM
6 # - LAN8 and SLAN networks removed according to latest Prod/Type I diagram
9 # - VM start-up order: SMP->DB->BE->FE (no error handling yet)
10 # - Provisioning scripts placeholders
12 #################################
14 description: ASC Template
17 # availability_zone_smp0:
20 # availability_zone_smp1:
23 # availability_zone_fe0:
26 # availability_zone_fe1:
29 # availability_zone_db0:
32 # availability_zone_db1:
35 # availability_zone_be0:
38 # availability_zone_be1:
41 # availability_zone_be2:
44 # availability_zone_be3:
47 # availability_zone_be4:
53 description: Unique name for this VNF instance
54 label: be4 port 5 OAM ip address
57 # scp_be_wait_condition:
58 # type: OS::Heat::WaitCondition
60 # handle: { get_resource: scp_be_wait_handle }
64 # type: OS::Heat::WaitConditionHandle
66 # scp_fe_wait_condition:
67 # type: OS::Heat::WaitCondition
69 # handle: { get_resource: scp_fe_wait_handle }
73 # type: OS::Heat::WaitConditionHandle
76 # type: OS::Heat::WaitCondition
78 # handle: { get_resource: smp_wait_handle }
82 # type: OS::Heat::WaitConditionHandle
85 # type: OS::Heat::WaitCondition
87 # handle: { get_resource: db_wait_handle }
91 # type: OS::Heat::WaitConditionHandle
94 type: OS::Nova::ServerGroup
96 policies: ["anti-affinity"]
98 type: OS::Nova::ServerGroup
100 policies: ["anti-affinity"]
102 type: OS::Nova::ServerGroup
104 policies: ["anti-affinity"]
106 type: OS::Nova::ServerGroup
108 policies: ["anti-affinity"]
111 type: OS::Contrail::VirtualNetwork
113 name: { get_param: int_vscp_fe_cluster_net_id }
115 FE_Clustering_subnet:
116 type: OS::Neutron::Subnet
118 network_id: { get_resource: FE_Clustering_KA }
119 cidr: { get_param: int_vscp_fe_cluster_cidr }
122 type: OS::Contrail::VirtualNetwork
124 name: { get_param: int_vscp_cluster_net_id }
126 Clustering_Network_subnet:
127 type: OS::Neutron::Subnet
129 network_id: { get_resource: Clustering_Network }
130 cidr: { get_param: int_vscp_cluster_cidr }
133 type: OS::Contrail::VirtualNetwork
135 name: { get_param: int_vscp_db_network_net_id }
138 type: OS::Neutron::Subnet
140 network_id: { get_resource: DB_Network }
141 cidr: { get_param: int_vscp_db_network_cidr }
144 type: OS::Nova::Server
145 # depends on: db_wait_condition
147 name: { get_param: vm_scp_be0_name }
148 image: { get_param: image_scp_be_id }
149 # availability_zone: { get_param: availability_zone_be0 }
150 flavor: { get_param: flavor_scp_be_id }
151 scheduler_hints: { group: { get_resource: BE_Affinity } }
153 - port: { get_resource: be0_port_3 }
154 - port: { get_resource: be0_port_4 }
155 - port: { get_resource: be0_port_5 }
156 - port: { get_resource: be0_port_7 }
158 vnf_id: { get_param: vnf_id }
163 #todo: provision $vm_name
164 wc_notify --data-binary '{"status": "SUCCESS"}'
166 $vm_name: {get_param: vm_scp_be0_name}
167 # wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
170 type: OS::Neutron::Port
172 network_id: { get_resource: Clustering_Network }
175 type: OS::Neutron::Port
177 network_id: { get_resource: DB_Network }
180 type: OS::Neutron::Port
182 network: { get_param: Cricket_OCS_protected_net_id }
183 fixed_ips: [{"ip_address": {get_param: be0_Cricket_OCS_protected_ips}}]
186 type: OS::Neutron::Port
188 network: { get_param: OAM_direct_net_id }
189 fixed_ips: [{"ip_address": {get_param: be0_OAM_direct_ips}}]
192 type: OS::Nova::Server
193 # depends on: db_wait_condition
195 name: { get_param: vm_scp_be1_name }
196 image: { get_param: image_scp_be_id }
197 # availability_zone: { get_param: availability_zone_be1 }
198 flavor: { get_param: flavor_scp_be_id }
199 scheduler_hints: { group: { get_resource: BE_Affinity } }
201 - port: { get_resource: be1_port_3 }
202 - port: { get_resource: be1_port_4 }
203 - port: { get_resource: be1_port_5 }
204 - port: { get_resource: be1_port_7 }
206 vnf_id: { get_param: vnf_id }
211 #todo: provision $vm_name
212 wc_notify --data-binary '{"status": "SUCCESS"}'
214 $vm_name: {get_param: vm_scp_be1_name}
215 # wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
218 type: OS::Neutron::Port
220 network_id: { get_resource: Clustering_Network }
223 type: OS::Neutron::Port
225 network_id: { get_resource: DB_Network }
228 type: OS::Neutron::Port
230 network: { get_param: Cricket_OCS_protected_net_id }
231 fixed_ips: [{"ip_address": {get_param: be1_Cricket_OCS_protected_ips}}]
234 type: OS::Neutron::Port
236 network: { get_param: OAM_direct_net_id }
237 fixed_ips: [{"ip_address": {get_param: be1_OAM_direct_ips}}]
240 type: OS::Nova::Server
241 # depends on: db_wait_condition
243 name: { get_param: vm_scp_be2_name }
244 image: { get_param: image_scp_be_id }
245 # availability_zone: { get_param: availability_zone_be2 }
246 flavor: { get_param: flavor_scp_be_id }
247 scheduler_hints: { group: { get_resource: BE_Affinity } }
249 - port: { get_resource: be2_port_3 }
250 - port: { get_resource: be2_port_4 }
251 - port: { get_resource: be2_port_5 }
252 - port: { get_resource: be2_port_7 }
254 vnf_id: { get_param: vnf_id }
259 #todo: provision $vm_name
260 wc_notify --data-binary '{"status": "SUCCESS"}'
262 $vm_name: {get_param: vm_scp_be2_name}
263 # wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
266 type: OS::Neutron::Port
268 network_id: { get_resource: Clustering_Network }
271 type: OS::Neutron::Port
273 network_id: { get_resource: DB_Network }
276 type: OS::Neutron::Port
278 network: { get_param: Cricket_OCS_protected_net_id }
279 fixed_ips: [{"ip_address": {get_param: be2_Cricket_OCS_protected_ips}}]
282 type: OS::Neutron::Port
284 network: { get_param: OAM_direct_net_id }
285 fixed_ips: [{"ip_address": {get_param: be2_OAM_direct_ips}}]
288 type: OS::Nova::Server
289 # depends on: db_wait_condition
291 name: { get_param: vm_scp_be3_name }
292 image: { get_param: image_scp_be_id }
293 # availability_zone: { get_param: availability_zone_be3 }
294 flavor: { get_param: flavor_scp_be_id }
295 scheduler_hints: { group: { get_resource: BE_Affinity } }
297 - port: { get_resource: be3_port_3 }
298 - port: { get_resource: be3_port_4 }
299 - port: { get_resource: be3_port_5 }
300 - port: { get_resource: be3_port_7 }
302 vnf_id: { get_param: vnf_id }
307 #todo: provision $vm_name
308 wc_notify --data-binary '{"status": "SUCCESS"}'
310 $vm_name: {get_param: vm_scp_be3_name}
311 # wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
314 type: OS::Neutron::Port
316 network_id: { get_resource: Clustering_Network }
319 type: OS::Neutron::Port
321 network_id: { get_resource: DB_Network }
324 type: OS::Neutron::Port
326 network: { get_param: Cricket_OCS_protected_net_id }
327 fixed_ips: [{"ip_address": {get_param: be3_Cricket_OCS_protected_ips}}]
330 type: OS::Neutron::Port
332 network: { get_param: OAM_direct_net_id }
333 fixed_ips: [{"ip_address": {get_param: be3_OAM_direct_ips}}]
336 type: OS::Nova::Server
337 # depends on: db_wait_condition
339 name: { get_param: vm_scp_be4_name }
340 image: { get_param: image_scp_be_id }
341 # availability_zone: { get_param: availability_zone_be4 }
342 flavor: { get_param: flavor_scp_be_id }
343 scheduler_hints: { group: { get_resource: BE_Affinity } }
345 - port: { get_resource: be4_port_3 }
346 - port: { get_resource: be4_port_4 }
347 - port: { get_resource: be4_port_5 }
348 - port: { get_resource: be4_port_7 }
350 vnf_id: { get_param: vnf_id }
355 #todo: provision $vm_name
356 wc_notify --data-binary '{"status": "SUCCESS"}'
358 $vm_name: {get_param: vm_scp_be4_name}
359 # wc_notify: { get_attr: ['scp_be_wait_handle', 'curl_cli'] }
362 type: OS::Neutron::Port
364 network_id: { get_resource: Clustering_Network }
367 type: OS::Neutron::Port
369 network_id: { get_resource: DB_Network }
372 type: OS::Neutron::Port
374 network: { get_param: Cricket_OCS_protected_net_id }
375 fixed_ips: [{"ip_address": {get_param: be4_Cricket_OCS_protected_ips}}]
378 type: OS::Neutron::Port
380 network: { get_param: OAM_direct_net_id }
381 fixed_ips: [{"ip_address": {get_param: be4_OAM_direct_ips}}]
384 type: OS::Nova::Server
385 # depends on: scp_be_wait_condition
387 name: { get_param: vm_scp_fe0_name }
388 image: { get_param: image_scp_fe_id }
389 # availability_zone: { get_param: availability_zone_fe0 }
390 flavor: { get_param: flavor_scp_fe_id }
391 scheduler_hints: { group: { get_resource: FE_Affinity } }
393 - port: { get_resource: fe0_port_0 }
394 - port: { get_resource: fe0_port_2 }
395 - port: { get_resource: fe0_port_3 }
396 - port: { get_resource: fe0_port_7 }
398 vnf_id: { get_param: vnf_id }
403 #todo: provision $vm_name
404 wc_notify --data-binary '{"status": "SUCCESS"}'
406 $vm_name: {get_param: vm_scp_fe0_name}
407 # wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
410 type: OS::Neutron::Port
412 network: { get_param: SIGNET_vrf_A1_direct_net_id }
413 fixed_ips: [{"ip_address": {get_param: fe0_SIGNET_vrf_A1_direct_ips}}]
416 type: OS::Neutron::Port
418 network_id: { get_resource: FE_Clustering_KA }
421 type: OS::Neutron::Port
423 network_id: { get_resource: Clustering_Network }
426 type: OS::Neutron::Port
428 network: { get_param: OAM_direct_net_id }
429 fixed_ips: [{"ip_address": {get_param: fe0_OAM_direct_ips}}]
432 type: OS::Nova::Server
433 # depends on: scp_be_wait_condition
435 name: { get_param: vm_scp_fe1_name }
436 image: { get_param: image_scp_fe_id }
437 # availability_zone: { get_param: availability_zone_fe1 }
438 flavor: { get_param: flavor_scp_fe_id }
439 scheduler_hints: { group: { get_resource: FE_Affinity } }
441 - port: { get_resource: fe1_port_1 }
442 - port: { get_resource: fe1_port_2 }
443 - port: { get_resource: fe1_port_3 }
444 - port: { get_resource: fe1_port_7 }
446 vnf_id: { get_param: vnf_id }
451 #todo: provision $vm_name
452 wc_notify --data-binary '{"status": "SUCCESS"}'
454 $vm_name: {get_param: vm_scp_fe1_name}
455 # wc_notify: { get_attr: ['scp_fe_wait_handle', 'curl_cli'] }
458 type: OS::Neutron::Port
460 network: { get_param: SIGNET_vrf_B1_direct_net_id }
461 fixed_ips: [{"ip_address": {get_param: fe1_SIGNET_vrf_B1_direct_ips}}]
464 type: OS::Neutron::Port
466 network_id: { get_resource: FE_Clustering_KA }
469 type: OS::Neutron::Port
471 network_id: { get_resource: Clustering_Network }
474 type: OS::Neutron::Port
476 network: { get_param: OAM_direct_net_id }
477 fixed_ips: [{"ip_address": {get_param: fe1_OAM_direct_ips}}]
480 type: OS::Nova::Server
482 name: { get_param: vm_smp0_name }
483 image: { get_param: image_smp_id }
484 # availability_zone: { get_param: availability_zone_smp0 }
485 flavor: { get_param: flavor_smp_id }
486 scheduler_hints: { group: { get_resource: SMP_Affinity } }
488 - port: { get_resource: smp0_port_7 }
490 vnf_id: { get_param: vnf_id }
495 #todo: provision $vm_name
496 wc_notify --data-binary '{"status": "SUCCESS"}'
498 $vm_name: {get_param: vm_smp0_name}
499 # wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
502 type: OS::Neutron::Port
504 network: { get_param: OAM_direct_net_id }
505 fixed_ips: [{"ip_address": {get_param: smp0_OAM_direct_ips}}]
508 type: OS::Nova::Server
510 name: { get_param: vm_smp1_name }
511 image: { get_param: image_smp_id }
512 # availability_zone: { get_param: availability_zone_smp1 }
513 flavor: { get_param: flavor_smp_id }
514 scheduler_hints: { group: { get_resource: SMP_Affinity } }
516 - port: { get_resource: smp1_port_7 }
518 vnf_id: { get_param: vnf_id }
523 #todo: provision $vm_name
524 wc_notify --data-binary '{"status": "SUCCESS"}'
526 $vm_name: {get_param: vm_smp1_name}
527 # wc_notify: { get_attr: ['smp_wait_handle', 'curl_cli'] }
530 type: OS::Neutron::Port
532 network: { get_param: OAM_direct_net_id }
533 fixed_ips: [{"ip_address": {get_param: smp1_OAM_direct_ips}}]
536 type: OS::Nova::Server
537 # depends_on: smp_wait_condition
539 name: { get_param: vm_db0_name }
540 image: { get_param: image_db_id }
541 # availability_zone: { get_param: availability_zone_db0 }
542 flavor: { get_param: flavor_db_id }
543 scheduler_hints: { group: { get_resource: DB_Affinity } }
545 - port: { get_resource: db0_port_4 }
546 - port: { get_resource: db0_port_7 }
548 vnf_id: { get_param: vnf_id }
553 #todo: provision $vm_name
554 wc_notify --data-binary '{"status": "SUCCESS"}'
556 $vm_name: {get_param: vm_db0_name}
557 # wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
560 type: OS::Neutron::Port
562 network_id: { get_resource: DB_Network }
565 type: OS::Neutron::Port
567 network: { get_param: OAM_direct_net_id }
568 fixed_ips: [{"ip_address": {get_param: db0_OAM_direct_ips}}]
571 type: OS::Nova::Server
572 # depends_on: smp_wait_condition
574 name: { get_param: vm_db1_name }
575 image: { get_param: image_db_id }
576 # availability_zone: { get_param: availability_zone_db1 }
577 flavor: { get_param: flavor_db_id }
578 scheduler_hints: { group: { get_resource: DB_Affinity } }
580 - port: { get_resource: db1_port_4 }
581 - port: { get_resource: db1_port_7 }
583 vnf_id: { get_param: vnf_id }
588 #todo: provision $vm_name
589 wc_notify --data-binary '{"status": "SUCCESS"}'
591 $vm_name: {get_param: vm_db1_name}
592 # wc_notify: { get_attr: ['db_wait_handle', 'curl_cli'] }
595 type: OS::Neutron::Port
597 network_id: { get_resource: DB_Network }
600 type: OS::Neutron::Port
602 network: { get_param: OAM_direct_net_id }
603 fixed_ips: [{"ip_address": {get_param: db1_OAM_direct_ips}}]