a922d0ff5263c2a28e2f74f38b68859b757893d6
[sdc.git] /
1 tosca_definitions_version: tosca_simple_yaml_1_0_0
2 metadata:
3   template_name: Main
4 imports:
5 - openecomp_heat_index:
6     file: openecomp-heat/_index.yml
7 node_types:
8   org.openecomp.resource.vfc.nodes.heat.dns:
9     derived_from: org.openecomp.resource.vfc.nodes.heat.nova.Server
10 topology_template:
11   inputs:
12     vf_module_id:
13       hidden: false
14       immutable: false
15       annotations:
16         source:
17           type: org.openecomp.annotations.Source
18           properties:
19             vf_module_label:
20             - Use_Case_1_module
21             source_type: HEAT
22             param_name: vf_module_id
23       type: string
24       description: Unique ID for this VF module instance
25     dns_int_bearer_ips:
26       hidden: false
27       immutable: false
28       annotations:
29         source:
30           type: org.openecomp.annotations.Source
31           properties:
32             vf_module_label:
33             - Use_Case_1_module
34             source_type: HEAT
35             param_name: dns_int_bearer_ips
36       type: list
37       description: DNS Bearer IP list
38       entry_schema:
39         type: string
40     vnf_name:
41       hidden: false
42       immutable: false
43       annotations:
44         source:
45           type: org.openecomp.annotations.Source
46           properties:
47             vf_module_label:
48             - Use_Case_1_module
49             - Use_Case_1_base
50             source_type: HEAT
51             param_name: vnf_name
52       type: string
53       description: Unique name for this VF instance
54     security_group:
55       hidden: false
56       immutable: false
57       annotations:
58         source:
59           type: org.openecomp.annotations.Source
60           properties:
61             vf_module_label:
62             - Use_Case_1_module
63             source_type: HEAT
64             param_name: security_group
65       type: string
66       description: security group
67     oam_protected_net_name:
68       hidden: false
69       immutable: false
70       annotations:
71         source:
72           type: org.openecomp.annotations.Source
73           properties:
74             vf_module_label:
75             - Use_Case_1_module
76             source_type: HEAT
77             param_name: oam_protected_net_name
78       type: string
79       description: OAM network where instaces will connect
80     dns_oam_protected_ips:
81       hidden: false
82       immutable: false
83       annotations:
84         source:
85           type: org.openecomp.annotations.Source
86           properties:
87             vf_module_label:
88             - Use_Case_1_module
89             source_type: HEAT
90             param_name: dns_oam_protected_ips
91       type: list
92       description: DNS OAM IP list
93       entry_schema:
94         type: string
95     int_bearer_net_name:
96       hidden: false
97       immutable: false
98       annotations:
99         source:
100           type: org.openecomp.annotations.Source
101           properties:
102             vf_module_label:
103             - Use_Case_1_module
104             source_type: HEAT
105             param_name: int_bearer_net_name
106       type: string
107       description: Bearer network where instaces will connect
108     dns_oam_protected_v6_ips:
109       hidden: false
110       immutable: false
111       annotations:
112         source:
113           type: org.openecomp.annotations.Source
114           properties:
115             vf_module_label:
116             - Use_Case_1_module
117             source_type: HEAT
118             param_name: dns_oam_protected_v6_ips
119       type: list
120       description: DNS OAM IP list
121       entry_schema:
122         type: string
123     dns_names:
124       hidden: false
125       immutable: false
126       annotations:
127         source:
128           type: org.openecomp.annotations.Source
129           properties:
130             vf_module_label:
131             - Use_Case_1_module
132             source_type: HEAT
133             param_name: dns_names
134       type: list
135       description: server name
136       entry_schema:
137         type: string
138     vnf_id:
139       hidden: false
140       immutable: false
141       annotations:
142         source:
143           type: org.openecomp.annotations.Source
144           properties:
145             vf_module_label:
146             - Use_Case_1_module
147             source_type: HEAT
148             param_name: vnf_id
149       type: string
150       description: Unique ID for this VF instance
151     dns_int_bearer_v6_ips:
152       hidden: false
153       immutable: false
154       annotations:
155         source:
156           type: org.openecomp.annotations.Source
157           properties:
158             vf_module_label:
159             - Use_Case_1_module
160             source_type: HEAT
161             param_name: dns_int_bearer_v6_ips
162       type: list
163       description: fixed IPv6 assignment for VM's on the Bearer network
164       entry_schema:
165         type: string
166     availability_zone_0:
167       hidden: false
168       immutable: false
169       annotations:
170         source:
171           type: org.openecomp.annotations.Source
172           properties:
173             vf_module_label:
174             - Use_Case_1_module
175             source_type: HEAT
176             param_name: availability_zone_0
177       type: string
178       description: availability zone ID or Name
179     availability_zone_1:
180       hidden: false
181       immutable: false
182       annotations:
183         source:
184           type: org.openecomp.annotations.Source
185           properties:
186             vf_module_label:
187             - Use_Case_1_module
188             source_type: HEAT
189             param_name: availability_zone_1
190       type: string
191       description: availability zone ID or Name
192     dns_image_name:
193       hidden: false
194       immutable: false
195       annotations:
196         source:
197           type: org.openecomp.annotations.Source
198           properties:
199             vf_module_label:
200             - Use_Case_1_module
201             source_type: HEAT
202             param_name: dns_image_name
203       type: string
204       description: server image
205       default: NIMBUS_DNS_3.0.2.qcow2
206     dns_flavor_name:
207       hidden: false
208       immutable: false
209       annotations:
210         source:
211           type: org.openecomp.annotations.Source
212           properties:
213             vf_module_label:
214             - Use_Case_1_module
215             source_type: HEAT
216             param_name: dns_flavor_name
217       type: string
218       description: server flavor
219       default: nv.c4r4d80
220   node_templates:
221     dns_0_oam_protected_port_0:
222       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
223       properties:
224         ip_requirements:
225         - ip_version: 4
226           ip_count_required:
227             is_required: false
228           floating_ip_count_required:
229             is_required: true
230         - ip_version: 6
231           ip_count_required:
232             is_required: false
233           floating_ip_count_required:
234             is_required: true
235         security_groups:
236         - get_input: security_group
237         mac_requirements:
238           mac_count_required:
239             is_required: false
240         allowed_address_pairs:
241         - ip_address:
242             get_input:
243             - dns_oam_protected_ips
244             - 5
245         - ip_address:
246             get_input:
247             - dns_oam_protected_floating_v6_ip
248             - 5
249         - ip_address:
250             get_input:
251             - dns_oam_protected_ips
252             - 5
253         name:
254           str_replace:
255             template: VNF_NAME_dns_0_oam_protected_port_0
256             params:
257               VNF_NAME:
258                 get_input: vnf_name
259         network_role_tag: oam_protected
260         network:
261           get_input: oam_protected_net_name
262       requirements:
263       - binding:
264           capability: tosca.capabilities.network.Bindable
265           node: dns_server_0
266           relationship: tosca.relationships.network.BindsTo
267     dns_0_oam_protected_port_1:
268       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
269       properties:
270         ip_requirements:
271         - ip_version: 4
272           ip_count_required:
273             is_required: false
274           floating_ip_count_required:
275             is_required: false
276         - ip_version: 6
277           ip_count_required:
278             is_required: true
279           floating_ip_count_required:
280             is_required: false
281         security_groups:
282         - get_input: security_group
283         fixed_ips:
284         - ip_address:
285             get_input:
286             - dns_int_bearer_ips_v6_ips
287             - 0
288         mac_requirements:
289           mac_count_required:
290             is_required: false
291         name:
292           str_replace:
293             template: VNF_NAME_dns_0_oam_protected_port_1
294             params:
295               VNF_NAME:
296                 get_input: vnf_name
297         network_role_tag: oam_protected
298         network:
299           get_input: oam_protected_net_name
300       requirements:
301       - binding:
302           capability: tosca.capabilities.network.Bindable
303           node: dns_server_0
304           relationship: tosca.relationships.network.BindsTo
305     dns_1_int_bearer_port:
306       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
307       properties:
308         ip_requirements:
309         - ip_version: 4
310           ip_count_required:
311             is_required: true
312           floating_ip_count_required:
313             is_required: false
314         - ip_version: 6
315           ip_count_required:
316             is_required: true
317           floating_ip_count_required:
318             is_required: true
319         security_groups:
320         - get_input: security_group
321         fixed_ips:
322         - ip_address:
323             get_input:
324             - dns_int_bearer_ips
325             - 0
326         - ip_address:
327             get_input:
328             - dns_int_bearer_v6_ips
329             - 0
330         mac_requirements:
331           mac_count_required:
332             is_required: false
333         allowed_address_pairs:
334         - ip_address:
335             get_input:
336             - dns_int_bearer_floating_v6_ip
337             - 0
338         - ip_address:
339             get_input:
340             - dns_int_bearer_floating_v6_ip
341             - 0
342         name:
343           str_replace:
344             template: VNF_NAME_dns_bearer_port
345             params:
346               VNF_NAME:
347                 get_input: vnf_name
348         network_role_tag: int_bearer
349         network:
350           get_input: int_bearer_net_name
351       requirements:
352       - binding:
353           capability: tosca.capabilities.network.Bindable
354           node: dns_server_1
355           relationship: tosca.relationships.network.BindsTo
356     DNS_SECURITY_GROUP:
357       type: org.openecomp.resource.vfc.rules.nodes.heat.network.neutron.SecurityRules
358       properties:
359         name:
360           str_replace:
361             template: VF_NAME_sec_grp_DNS
362             params:
363               VF_NAME:
364                 get_input: vnf_name
365         description: security group
366         rules:
367         - protocol: tcp
368           ethertype: IPv4
369           port_range_max: 65535
370           remote_ip_prefix: 0.0.0.0/0
371           direction: egress
372           port_range_min: 1
373         - protocol: udp
374           ethertype: IPv4
375           port_range_max: 65535
376           remote_ip_prefix: 0.0.0.0/0
377           direction: egress
378           port_range_min: 1
379         - protocol: icmp
380           ethertype: IPv4
381           remote_ip_prefix: 0.0.0.0/0
382           direction: egress
383         - protocol: tcp
384           ethertype: IPv4
385           port_range_max: 65535
386           remote_ip_prefix: 0.0.0.0/0
387           direction: ingress
388           port_range_min: 1
389         - protocol: udp
390           ethertype: IPv4
391           port_range_max: 65535
392           remote_ip_prefix: 0.0.0.0/0
393           direction: ingress
394           port_range_min: 1
395         - protocol: icmp
396           ethertype: IPv4
397           remote_ip_prefix: 0.0.0.0/0
398           direction: ingress
399         - protocol: tcp
400           ethertype: IPv6
401           port_range_max: 65535
402           remote_ip_prefix: ::/0
403           direction: egress
404           port_range_min: 1
405         - protocol: udp
406           ethertype: IPv6
407           port_range_max: 65535
408           remote_ip_prefix: ::/0
409           direction: egress
410           port_range_min: 1
411         - protocol: icmp
412           ethertype: IPv6
413           remote_ip_prefix: ::/0
414           direction: egress
415         - protocol: tcp
416           ethertype: IPv6
417           port_range_max: 65535
418           remote_ip_prefix: ::/0
419           direction: ingress
420           port_range_min: 1
421         - protocol: udp
422           ethertype: IPv6
423           port_range_max: 65535
424           remote_ip_prefix: ::/0
425           direction: ingress
426           port_range_min: 1
427         - protocol: icmp
428           ethertype: IPv6
429           remote_ip_prefix: ::/0
430           direction: ingress
431     dns_server_1:
432       type: org.openecomp.resource.vfc.nodes.heat.dns
433       properties:
434         flavor:
435           get_input: dns_flavor_name
436         availability_zone:
437           get_input: availability_zone_1
438         image:
439           get_input: dns_image_name
440         metadata:
441           vf_module_id:
442             get_input: vf_module_id
443           vnf_id:
444             get_input: vnf_id
445           vnf_name:
446             get_input: vnf_name
447         name:
448           get_input:
449           - dns_names
450           - 1
451     dns_0_int_bearer_port:
452       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
453       properties:
454         ip_requirements:
455         - ip_version: 4
456           ip_count_required:
457             is_required: true
458           floating_ip_count_required:
459             is_required: true
460         - ip_version: 6
461           ip_count_required:
462             is_required: true
463           floating_ip_count_required:
464             is_required: false
465         security_groups:
466         - get_input: security_group
467         fixed_ips:
468         - ip_address:
469             get_input:
470             - dns_int_bearer_ips
471             - 0
472         - ip_address:
473             get_input:
474             - dns_int_bearer_v6_ips
475             - 0
476         mac_requirements:
477           mac_count_required:
478             is_required: false
479         allowed_address_pairs:
480         - ip_address:
481             get_input:
482             - dns_int_bearer
483             - 0
484         - ip_address:
485             get_input:
486             - dns_int_bearer
487             - 0
488         name:
489           str_replace:
490             template: VNF_NAME_dns_bearer_port
491             params:
492               VNF_NAME:
493                 get_input: vnf_name
494         network_role_tag: int_bearer
495         network:
496           get_input: int_bearer_net_name
497       requirements:
498       - binding:
499           capability: tosca.capabilities.network.Bindable
500           node: dns_server_0
501           relationship: tosca.relationships.network.BindsTo
502     dns_server_0:
503       type: org.openecomp.resource.vfc.nodes.heat.dns
504       properties:
505         flavor:
506           get_input: dns_flavor_name
507         availability_zone:
508           get_input: availability_zone_0
509         image:
510           get_input: dns_image_name
511         metadata:
512           vf_module_id:
513             get_input: vf_module_id
514           vnf_id:
515             get_input: vnf_id
516           vnf_name:
517             get_input: vnf_name
518         name:
519           get_input:
520           - dns_names
521           - 0
522     dns_1_oam_protected_port_0:
523       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
524       properties:
525         ip_requirements:
526         - ip_version: 4
527           ip_count_required:
528             is_required: true
529           floating_ip_count_required:
530             is_required: true
531         - ip_version: 6
532           ip_count_required:
533             is_required: false
534           floating_ip_count_required:
535             is_required: true
536         security_groups:
537         - get_input: security_group
538         fixed_ips:
539         - ip_address:
540             get_input:
541             - dns_oam_protected_ips
542             - 6
543         - ip_address:
544             get_input:
545             - dns_oam_protected_ips
546             - 7
547         - ip_address:
548             get_input:
549             - dns_oam_protected_ips
550             - 5
551         mac_requirements:
552           mac_count_required:
553             is_required: false
554         allowed_address_pairs:
555         - ip_address:
556             get_input:
557             - dns_oam_protected_ips
558             - 5
559         - ip_address:
560             get_input:
561             - dns_oam_protected_floating_v6_ip
562             - 5
563         - ip_address:
564             get_input:
565             - dns_oam_protected_ips
566             - 5
567         name:
568           str_replace:
569             template: VNF_NAME_dns_1_oam_protected_port_0
570             params:
571               VNF_NAME:
572                 get_input: vnf_name
573         network_role_tag: oam_protected
574         network:
575           get_input: oam_protected_net_name
576       requirements:
577       - binding:
578           capability: tosca.capabilities.network.Bindable
579           node: dns_server_1
580           relationship: tosca.relationships.network.BindsTo
581     dns_1_oam_protected_port_1:
582       type: org.openecomp.resource.cp.nodes.heat.network.neutron.Port
583       properties:
584         ip_requirements:
585         - ip_version: 4
586           ip_count_required:
587             is_required: true
588           floating_ip_count_required:
589             is_required: true
590         - ip_version: 6
591           ip_count_required:
592             is_required: true
593           floating_ip_count_required:
594             is_required: true
595         security_groups:
596         - get_input: security_group
597         fixed_ips:
598         - ip_address:
599             get_input:
600             - dns_oam_protected_v6_ips
601             - 6
602         - ip_address:
603             get_input:
604             - dns_oam_protected_ips
605             - 7
606         - ip_address:
607             get_input:
608             - dns_oam_protected_ips
609             - 5
610         mac_requirements:
611           mac_count_required:
612             is_required: false
613         allowed_address_pairs:
614         - ip_address:
615             get_input:
616             - dns_oam_protected_floating_v6_ip
617             - 4
618         - ip_address:
619             get_input:
620             - dns_oam_protected_ips
621             - 5
622         - ip_address:
623             get_input:
624             - dns_oam_protected_floating_v6_ip
625             - 5
626         name:
627           str_replace:
628             template: VNF_NAME_dns_1_oam_protected_port_1
629             params:
630               VNF_NAME:
631                 get_input: vnf_name
632         network_role_tag: oam_protected
633         network:
634           get_input: oam_protected_net_name
635       requirements:
636       - binding:
637           capability: tosca.capabilities.network.Bindable
638           node: dns_server_1
639           relationship: tosca.relationships.network.BindsTo
640   groups:
641     Use_Case_1_base_group:
642       type: org.openecomp.groups.heat.HeatStack
643       properties:
644         heat_file: ../Artifacts/Use_Case_1_base.yaml
645         description: |
646           Base HOT template to create The Security Group for the the DNS VNF
647       members:
648       - DNS_SECURITY_GROUP
649     Use_Case_1_module_group:
650       type: org.openecomp.groups.heat.HeatStack
651       properties:
652         heat_file: ../Artifacts/Use_Case_1_module.yaml
653         description: |
654           nested DNS template for a single VM
655           all parameters are passed from calling heat template of resourcegroup
656       members:
657       - dns_0_oam_protected_port_0
658       - dns_0_oam_protected_port_1
659       - dns_1_int_bearer_port
660       - dns_server_1
661       - dns_0_int_bearer_port
662       - dns_server_0
663       - dns_1_oam_protected_port_0
664       - dns_1_oam_protected_port_1
665   outputs:
666     security_group:
667       description: UUID of DNS Resource SecurityGroup
668       value: DNS_SECURITY_GROUP