d4590c8a4b3e1b72e518a3c147b75176a78b1053
[sdc.git] /
1 heat_template_version: 2013-05-23
2
3 description: >
4   Version 2.0 02-09-2016 (Authors: John Doe, user PROD)
5
6 parameters:
7   aap_address_mode:
8     description: "Address mode for the vDBE cluster IP"
9     type: string
10   control_int_net_forwarding_mode:
11     description: "forwarding mode of the control virtual network"
12     type: string
13   control_int_net_rpf:
14     description: "Reverse Path Filtering enable or disable for the control virtual network"
15     type: string
16   control_int_net_shared:
17     description: "control virtual network shared"
18     type: boolean
19   control_int_net_flood_unknown_unicast:
20     description: "forwarding mode of the control virtual network"
21     type: boolean
22   fabric_int_net_flood_unknown_unicast:
23     description: "forwarding mode of the fabric virtual network"
24     type: boolean
25   fabric_int_net_forwarding_mode:
26     description: "forwarding mode of the fabric virtual network"
27     type: string
28   fabric_int_net_rpf:
29     description: "Reverse Path Filtering enable or disable for the fabric virtual network"
30     type: string
31   fabric_int_net_shared:
32     description: "fabric virtual network shared"
33   oam_net_name:
34     description: "Name of NSDNet network from which the management IP addresses will be allocated"
35     type: string
36   untrusted_net_name:
37     description: "Name of public untrusted network into which this vDBE HA cluster is deployed"
38     type: string
39   untrusted_num_vn:
40     constraints:
41       -
42         range:
43           max: 77
44           min: 1
45     description: "Number of vDBE subinterface virtual Networks"
46     type: number
47   untrusted_vlan_tags:
48     description: "List of subinterface vlan tags"
49     type: comma_delimited_list
50   untrusted_vn_networks:
51     description: "List of subinterface virtual networks"
52     type: comma_delimited_list
53   vdbe_aap_sec_untrusted_ip_prefix:
54     description: "ip prefix for secondary vDBE VM aap on the VAN untrusted network"
55     type: string
56   vdbe_aap_sec_untrusted_ip_prefix_len:
57     description: "ip prefix length for the secondary DBE VM aap on the VAN untrusted network"
58     type: string
59   vdbe_aap_untrusted_ip_prefix:
60     description: "ip prefix for primary vDBE VM on the VAN untrusted network"
61     type: string
62   vdbe_aap_untrusted_ip_prefix_len:
63     description: "ip prefix length for the primary vDBE VM on the VAN untrusted network"
64     type: string
65   vdbe_aap_untrusted_v6_ip_prefix:
66     description: "ipv6 prefix for the primary vDBE VM on the VAN untrusted network"
67     type: string
68   vdbe_aap_untrusted_v6_ip_prefix_len:
69     description: "ipv6 prefix length for the primary vDBE VM on the VAN untrusted network"
70     type: string
71   vdbe_device_name:
72     description: "VDBE device Name for this vdbe VNF"
73     type: string
74   vdbe_hw_untr_mac_1:
75     description: "Secondary MAC address of the secondary vDBE VM on the VAN untrusted network"
76     type: string
77   vdbe_name_1:
78     description: "VM Name for this vdbe node 1"
79     type: string
80   vdbe_untrusted_ip_1:
81     description: "IPV4 address of the secondary vDBE VM on the VAN untrusted network"
82     type: string
83   vdbe_untrusted_v6_ip_1:
84     description: "IPV6 address of the secondary vDBE VM on the VAN untrusted network"
85     type: string
86   vdbe_untrusted_vmac_address:
87     description: "Virtual MAC of the primary vDBE VM on the VAN untrusted network"
88     type: string
89   vdbe_flavor_name:
90     description: "Flavor to use for vDBE"
91     type: string
92   vdbe_image_name:
93     description: "Image to use for vDBE"
94     type: string
95   vnf_id:
96     description: "Unique ID for this VF inst"
97     type: string
98   vnf_name:
99     description: "Unique name for this VF instance"
100     type: string
101   vf_module_id:
102     description: "Unique ID for this VF module inst"
103     type: string
104   availability_zone_1:
105     description: "The availability zone of secondary node1 vDBE vm in the local HA pair."
106     type: string
107   counter:
108     description: "Counter."
109     type: number
110 resources:
111   vdbe_untr_1_subports:
112     type: OS::Heat::ResourceGroup
113     depends_on: control_int_net
114     properties:
115       count:
116         get_param: untrusted_num_vn
117       resource_def:
118         type: vlan1.yml
119         properties:
120           aap_address_mode:
121             get_param: aap_address_mode
122           aap_sec_untrusted_ip_prefix:
123             get_param: vdbe_aap_sec_untrusted_ip_prefix
124           aap_sec_untrusted_ip_prefix_len:
125             get_param: vdbe_aap_sec_untrusted_ip_prefix_len
126           aap_untrusted_ip_prefix:
127             get_param: vdbe_aap_untrusted_ip_prefix
128           aap_untrusted_ip_prefix_len:
129             get_param: vdbe_aap_untrusted_ip_prefix_len
130           aap_untrusted_v6_ip_prefix:
131             get_param: vdbe_aap_untrusted_v6_ip_prefix
132           aap_untrusted_v6_ip_prefix_len:
133             get_param: vdbe_aap_untrusted_v6_ip_prefix_len
134           counter:
135             get_param: counter
136           ip_address:
137             get_param: vdbe_untrusted_ip_1
138           ip_v6_address:
139             get_param: vdbe_untrusted_v6_ip_1
140           mac_address:
141             get_param: vdbe_hw_untr_mac_1
142           parent_interface:
143             get_resource: vdbe_untr_1_port_1
144           subinterfaces_name_prefix:
145             str_replace:
146               params:
147                 DBE:
148                   get_param: vdbe_device_name
149                 VM_NAME:
150                   get_param: vdbe_name_1
151               template: VM_NAMEDBE001p1n004
152           vlan_tag_list:
153             get_param: untrusted_vlan_tags
154           vmac_address:
155             {get_attr: [vdbe_node_1, accessIPv4]}
156           vn_network_list:
157              get_resource: control_int_net
158           optional_property_1: OPTIONAL_VALUE_SUBPORT_1
159   vdbe_node_1:
160     type: OS::Nova::Server
161     properties:
162       availability_zone:
163         get_param: availability_zone_1
164       flavor:
165         get_param: vdbe_flavor_name
166       image:
167         get_param: vdbe_image_name
168       metadata:
169         vf_module_id:
170           get_param: vf_module_id
171         vnf_id:
172           get_param: vnf_id
173         vnf_name:
174           get_param: vnf_name
175       name:
176         get_param: vdbe_name_1
177       networks:
178         - port: {get_resource: vdbe_untr_1_port_1}
179         - port: {get_resource: vdbe_untr_2_port_1}
180   vdbe_node_2:
181     type: OS::Nova::Server
182     properties:
183       availability_zone:
184         get_param: availability_zone_1
185       flavor:
186         get_param: vdbe_flavor_name
187       image:
188         get_param: vdbe_image_name
189       metadata:
190         vf_module_id:
191           get_param: vf_module_id
192         vnf_id:
193           get_param: vnf_id
194         vnf_name:
195           get_param: vnf_name
196       name:
197         get_param: vdbe_name_1
198       networks:
199         - port: {get_resource: vdbe_untr_1_port_2}
200         - port: {get_resource: vdbe_untr_2_port_2}
201   vdbe_untr_1_port_1:
202     type: OS::ContrailV2::VirtualMachineInterface
203     properties:
204       name:
205         str_replace:
206           params:
207             DBE:
208               get_param: vdbe_device_name
209             VM_NAME:
210               get_param: vdbe_name_1
211           template: VM_NAMEDBE001p1n004
212       virtual_machine_interface_allowed_address_pairs:
213         virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
214           -
215             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
216               get_param: aap_address_mode
217             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
218               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
219                 get_param: vdbe_aap_untrusted_ip_prefix
220               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
221                 get_param: vdbe_aap_untrusted_ip_prefix_len
222             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
223               get_param: vdbe_untrusted_vmac_address
224           -
225             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
226               get_param: aap_address_mode
227             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
228               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
229                 get_param: vdbe_aap_sec_untrusted_ip_prefix
230               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
231                 get_param: vdbe_aap_sec_untrusted_ip_prefix_len
232             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
233               get_param: vdbe_hw_untr_mac_1
234           -
235             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
236               get_param: aap_address_mode
237             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
238               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
239                 get_param: vdbe_aap_untrusted_v6_ip_prefix
240               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
241                 get_param: vdbe_aap_untrusted_v6_ip_prefix_len
242             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
243                 get_param: vdbe_untrusted_vmac_address
244       virtual_machine_interface_mac_addresses:
245         virtual_machine_interface_mac_addresses_mac_address:
246           -
247             get_param: vdbe_hw_untr_mac_1
248       virtual_network_refs:
249         -
250           get_resource: control_int_net
251   vdbe_untr_2_port_1:
252     type: OS::ContrailV2::VirtualMachineInterface
253     properties:
254       name: Port_2
255       virtual_machine_interface_allowed_address_pairs:
256         virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
257           -
258             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
259               get_param: aap_address_mode
260             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
261               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
262                 get_param: vdbe_aap_untrusted_ip_prefix
263               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
264                 get_param: vdbe_aap_untrusted_ip_prefix_len
265             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
266               get_param: vdbe_untrusted_vmac_address
267           -
268             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
269               get_param: aap_address_mode
270             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
271               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
272                 get_param: vdbe_aap_sec_untrusted_ip_prefix
273               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
274                 get_param: vdbe_aap_sec_untrusted_ip_prefix_len
275             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
276               get_param: vdbe_hw_untr_mac_1
277           -
278             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
279               get_param: aap_address_mode
280             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
281               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
282                 get_param: vdbe_aap_untrusted_v6_ip_prefix
283               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
284                 get_param: vdbe_aap_untrusted_v6_ip_prefix_len
285             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
286               get_param: vdbe_untrusted_vmac_address
287       virtual_machine_interface_mac_addresses:
288         virtual_machine_interface_mac_addresses_mac_address:
289           -
290             get_param: vdbe_hw_untr_mac_1
291       virtual_network_refs:
292         -
293           get_resource: fabric_int_net
294
295
296
297   vdbe_untr_1_port_2:
298     type: OS::ContrailV2::VirtualMachineInterface
299     properties:
300       name:
301         str_replace:
302           params:
303             DBE:
304               get_param: vdbe_device_name
305             VM_NAME:
306               get_param: vdbe_name_1
307           template: Port 3
308       virtual_machine_interface_allowed_address_pairs:
309         virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
310           -
311             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
312               get_param: aap_address_mode
313             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
314               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
315                 get_param: vdbe_aap_untrusted_ip_prefix
316               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
317                 get_param: vdbe_aap_untrusted_ip_prefix_len
318             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
319               get_param: vdbe_untrusted_vmac_address
320           -
321             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
322               get_param: aap_address_mode
323             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
324               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
325                 get_param: vdbe_aap_sec_untrusted_ip_prefix
326               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
327                 get_param: vdbe_aap_sec_untrusted_ip_prefix_len
328             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
329               get_param: vdbe_hw_untr_mac_1
330           -
331             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
332               get_param: aap_address_mode
333             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
334               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
335                 get_param: vdbe_aap_untrusted_v6_ip_prefix
336               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
337                 get_param: vdbe_aap_untrusted_v6_ip_prefix_len
338             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
339               get_param: vdbe_untrusted_vmac_address
340       virtual_machine_interface_mac_addresses:
341         virtual_machine_interface_mac_addresses_mac_address:
342           -
343             get_param: vdbe_hw_untr_mac_1
344       virtual_network_refs:
345         -
346           get_resource: control_int_net
347   vdbe_untr_2_port_2:
348     type: OS::ContrailV2::VirtualMachineInterface
349     properties:
350       name: Port_4
351       virtual_machine_interface_allowed_address_pairs:
352         virtual_machine_interface_allowed_address_pairs_allowed_address_pair:
353           -
354             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
355               get_param: aap_address_mode
356             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
357               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
358                 get_param: vdbe_aap_untrusted_ip_prefix
359               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
360                 get_param: vdbe_aap_untrusted_ip_prefix_len
361             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
362               get_param: vdbe_untrusted_vmac_address
363           -
364             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
365               get_param: aap_address_mode
366             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
367               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
368                 get_param: vdbe_aap_sec_untrusted_ip_prefix
369               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
370                 get_param: vdbe_aap_sec_untrusted_ip_prefix_len
371             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
372               get_param: vdbe_hw_untr_mac_1
373           -
374             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_address_mode:
375               get_param: aap_address_mode
376             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip:
377               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix:
378                 get_param: vdbe_aap_untrusted_v6_ip_prefix
379               virtual_machine_interface_allowed_address_pairs_allowed_address_pair_ip_ip_prefix_len:
380                 get_param: vdbe_aap_untrusted_v6_ip_prefix_len
381             virtual_machine_interface_allowed_address_pairs_allowed_address_pair_mac:
382               get_param: vdbe_untrusted_vmac_address
383       virtual_machine_interface_mac_addresses:
384         virtual_machine_interface_mac_addresses_mac_address:
385           -
386             get_param: vdbe_hw_untr_mac_1
387       virtual_network_refs:
388         -
389           get_resource: fabric_int_net
390
391   vdbe_untr_2_subports:
392     type: OS::Heat::ResourceGroup
393     depends_on: control_int_net
394     properties:
395       count:
396         get_param: untrusted_num_vn
397       resource_def:
398         type: vlan1.yml
399         properties:
400           aap_address_mode:
401             get_param: aap_address_mode
402           aap_sec_untrusted_ip_prefix:
403             get_param: vdbe_aap_sec_untrusted_ip_prefix
404           aap_sec_untrusted_ip_prefix_len:
405             get_param: vdbe_aap_sec_untrusted_ip_prefix_len
406           aap_untrusted_ip_prefix:
407             get_param: vdbe_aap_untrusted_ip_prefix
408           aap_untrusted_ip_prefix_len:
409             get_param: vdbe_aap_untrusted_ip_prefix_len
410           aap_untrusted_v6_ip_prefix:
411             get_param: vdbe_aap_untrusted_v6_ip_prefix
412           aap_untrusted_v6_ip_prefix_len:
413             get_param: vdbe_aap_untrusted_v6_ip_prefix_len
414           counter:
415             get_param: counter
416           ip_address:
417             get_param: vdbe_untrusted_ip_1
418           ip_v6_address:
419             get_param: vdbe_untrusted_v6_ip_1
420           mac_address:
421             get_param: vdbe_hw_untr_mac_1
422           parent_interface:
423             get_resource: vdbe_untr_1_port_2
424           subinterfaces_name_prefix:
425             str_replace:
426               params:
427                 DBE:
428                   get_param: vdbe_device_name
429                 VM_NAME:
430                   get_param: vdbe_name_1
431               template: VM_NAMEDBE001p1n004
432           vlan_tag_list:
433             get_param: untrusted_vlan_tags
434           vmac_address:
435             {get_attr: [vdbe_node_1, accessIPv4]}
436           vn_network_list:
437              get_resource: control_int_net
438           optional_property_2: OPTIONAL_VALUE_SUBPORT_2
439
440   control_int_net:
441     type: OS::ContrailV2::VirtualNetwork
442     properties:
443       flood_unknown_unicast:
444         get_param: control_int_net_flood_unknown_unicast
445       is_shared:
446         get_param: control_int_net_shared
447       name:
448         str_replace:
449           params:
450             VNF_NAME:
451               get_param: vnf_name
452           template: VNF_NAME_control_net
453       virtual_network_properties:
454         virtual_network_properties_forwarding_mode:
455           get_param: control_int_net_forwarding_mode
456         virtual_network_properties_rpf:
457           get_param: control_int_net_rpf
458   fabric_int_net:
459     type: OS::ContrailV2::VirtualNetwork
460     depends_on:
461     - vdbe_untr_1_subports
462     - vdbe_untr_2_subports
463     properties:
464       flood_unknown_unicast:
465         get_param: fabric_int_net_flood_unknown_unicast
466       is_shared:
467         get_param: fabric_int_net_shared
468       name:
469         str_replace:
470           params:
471             VNF_NAME:
472               get_param: vnf_name
473           template: template-fabric-int
474       virtual_network_properties:
475         virtual_network_properties_forwarding_mode:
476           get_param: fabric_int_net_forwarding_mode
477         virtual_network_properties_rpf:
478           get_param: fabric_int_net_rpf
479
480 outputs:
481   out1:
482       description: output param connectivity
483       value: {get_attr: [vdbe_untr_1_subports, aap_address_mode]}