1 ##########################################################################
3 #==================LICENSE_START==========================================
6 # Copyright 2017 AT&T Intellectual Property. All rights reserved.
8 # Licensed under the Apache License, Version 2.0 (the "License");
9 # you may not use this file except in compliance with the License.
10 # You may obtain a copy of the License at
11 # http://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
19 #==================LICENSE_END============================================
21 # ECOMP is a trademark and service mark of AT&T Intellectual Property.
23 ##########################################################################
25 heat_template_version: 2013-05-23
27 description: Heat template to deploy vCPE Infrastructue emlements (vAAA, vDHCP, vDNS_DHCP, webServer_sink) for ONAP
38 label: Image name or ID
39 description: Image to be used for compute instance
43 description: Type of instance (flavor) to be used
46 label: Public network name or ID
47 description: Public network that enables remote connection to VNF
50 label: ONAP management network name or ID
51 description: Private network that connects ONAP components and the VNF
52 onap_private_subnet_id:
54 label: ONAP management sub-network name or ID
55 description: Private sub-network that connects ONAP components and the VNF
56 onap_private_net_cidr:
58 label: ONAP private network CIDR
59 description: The CIDR of the protected private network
62 label: vAAA private network name or ID
63 description: Private network that connects vAAA with vDNSs
66 label: vAAA private network CIDR
67 description: The CIDR of the vAAA private network
70 label: vCPE Public network (emulates internet) name or ID
71 description: Private network that connects vGW to emulated internet
74 label: vCPE public network CIDR
75 description: The CIDR of the vCPE public
78 label: vAAA private IP address towards the CPE_SIGNAL private network
79 description: Private IP address that is assigned to the vAAA to communicate with the vCPE components
82 label: vAAA private IP address towards the ONAP management network
83 description: Private IP address that is assigned to the vAAA to communicate with ONAP components
86 label: vDNS private IP address towards the CPE_PUBLIC private network
87 description: Private IP address that is assigned to the vDNS to communicate with the vCPE components
90 label: vDNS private IP address towards the ONAP management network
91 description: Private IP address that is assigned to the vDNS to communicate with ONAP components
94 label: vDHCP private IP address towards the CPE_SIGNAL private network
95 description: Private IP address that is assigned to the vDHCP to communicate with the vCPE components
98 label: vDNS private IP address towards the ONAP management network
99 description: Private IP address that is assigned to the vDHCP to communicate with ONAP components
102 label: vWEB private IP address towards the CPE_PUBLIC private network
103 description: Private IP address that is assigned to the vWEB to communicate with the vGWs
106 label: vWEB private IP address towards the ONAP management network
107 description: Private IP address that is assigned to the vWEB to communicate with ONAP components
111 description: Name of the vAAA
115 description: Name of the vDNS
119 description: Name of the vDHCP
123 description: Name of the vWEB
127 description: The VNF ID is provided by ONAP
130 label: vFirewall module ID
131 description: The vAAA Module ID is provided by ONAP
134 label: DCAE collector IP address
135 description: IP address of the DCAE collector
138 label: DCAE collector port
139 description: Port of the DCAE collector
142 label: Message Router IP address
143 description: IP address of the Message Router that for vDHCP configuration
147 description: Public/Private key pair name
151 description: Public key to be installed on the compute instance
154 label: Repository URL
155 description: URL of the repository that hosts the demo packages
158 label: Repository URL
159 description: URL of the repository that hosts the demo packages
160 install_script_version:
162 label: Installation script version number
163 description: Version number of the scripts that install the vFW demo app
164 demo_artifacts_version:
166 label: Artifacts version used in demo vnfs
167 description: Artifacts (jar, tar.gz) version used in demo vnfs
170 label: Cloud environment
171 description: Cloud environment (e.g., openstack, rackspace)
182 type: OS::Heat::RandomString
187 type: OS::Nova::KeyPair
193 base: { get_param: key_name }
194 rand: { get_resource: random-str }
195 public_key: { get_param: pub_key }
196 save_private_key: false
199 type: OS::Neutron::Net
201 name: { get_param: cpe_signal_net_id }
204 type: OS::Neutron::Subnet
206 name: { get_param: cpe_signal_net_id }
207 network_id: { get_resource: cpe_signal_network }
208 cidr: { get_param: cpe_signal_net_cidr }
211 type: OS::Neutron::Net
213 name: { get_param: cpe_public_net_id }
216 type: OS::Neutron::Subnet
218 name: { get_param: cpe_public_net_id }
219 network_id: { get_resource: cpe_public_network }
220 cidr: { get_param: cpe_public_net_cidr }
223 # Virtual AAA server Instantiation
225 type: OS::Neutron::Port
227 network: { get_resource: cpe_signal_network }
228 fixed_ips: [{"subnet": { get_resource: cpe_signal_subnet }, "ip_address": { get_param: vaaa_private_ip_0 }}]
231 type: OS::Neutron::Port
233 network: { get_param: onap_private_net_id }
234 fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vaaa_private_ip_1 }}]
237 type: OS::Nova::Server
239 image: { get_param: vcpe_image_name }
240 flavor: { get_param: vcpe_flavor_name }
241 name: { get_param: vaaa_name_0 }
242 key_name: { get_resource: my_keypair }
244 - network: { get_param: public_net_id }
245 - port: { get_resource: vaaa_private_0_port }
246 - port: { get_resource: vaaa_private_1_port }
247 metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
248 user_data_format: RAW
252 __dcae_collector_ip__: { get_param: dcae_collector_ip }
253 __dcae_collector_port__: { get_param: dcae_collector_port }
254 __cpe_signal_net_ipaddr__: { get_param: vaaa_private_ip_0 }
255 __oam_ipaddr__: { get_param: vaaa_private_ip_1 }
256 __oam_cidr__: { get_param: onap_private_net_cidr }
257 __cpe_signal_net_cidr__: { get_param: cpe_signal_net_cidr }
258 __repo_url_blob__ : { get_param: repo_url_blob }
259 __repo_url_artifacts__ : { get_param: repo_url_artifacts }
260 __demo_artifacts_version__ : { get_param: demo_artifacts_version }
261 __install_script_version__ : { get_param: install_script_version }
262 __cloud_env__ : { get_param: cloud_env }
266 # Create configuration files
268 echo "__dcae_collector_ip__" > /opt/config/dcae_collector_ip.txt
269 echo "__dcae_collector_port__" > /opt/config/dcae_collector_port.txt
270 echo "__cpe_signal_net_ipaddr__" > /opt/config/cpe_signal_net_ipaddr.txt
271 echo "__oam_ipaddr__" > /opt/config/oam_ipaddr.txt
272 echo "__oam_cidr__" > /opt/config/oam_cidr.txt
273 echo "__cpe_signal_net_cidr__" > /opt/config/cpe_signal_net_cidr.txt
274 echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
275 echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
276 echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
277 echo "__install_script_version__" > /opt/config/install_script_version.txt
278 echo "__cloud_env__" > /opt/config/cloud_env.txt
280 # Download and run install script
281 curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_aaa_install.sh -o /opt/v_aaa_install.sh
283 chmod +x v_aaa_install.sh
287 # Virtual DNS Instantiation
289 type: OS::Neutron::Port
291 network: { get_resource: cpe_public_network }
292 fixed_ips: [{"subnet": { get_resource: cpe_public_subnet }, "ip_address": { get_param: vdns_private_ip_0 }}]
295 type: OS::Neutron::Port
297 network: { get_param: onap_private_net_id }
298 fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vdns_private_ip_1 }}]
301 type: OS::Nova::Server
303 image: { get_param: vcpe_image_name }
304 flavor: { get_param: vcpe_flavor_name }
305 name: { get_param: vdns_name_0 }
306 key_name: { get_resource: my_keypair }
308 - network: { get_param: public_net_id }
309 - port: { get_resource: vdns_private_0_port }
310 - port: { get_resource: vdns_private_1_port }
311 metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
312 user_data_format: RAW
316 __oam_ipaddr__ : { get_param: vdns_private_ip_1 }
317 __cpe_public_net_ipaddr__: { get_param: vdns_private_ip_0 }
318 __oam_cidr__: { get_param: onap_private_net_cidr }
319 __cpe_public_net_cidr__: { get_param: cpe_public_net_cidr }
320 __repo_url_blob__ : { get_param: repo_url_blob }
321 __repo_url_artifacts__ : { get_param: repo_url_artifacts }
322 __demo_artifacts_version__ : { get_param: demo_artifacts_version }
323 __install_script_version__ : { get_param: install_script_version }
324 __cloud_env__ : { get_param: cloud_env }
328 # Create configuration files
330 echo "__oam_ipaddr__" > /opt/config/oam_ipaddr.txt
331 echo "__cpe_public_net_ipaddr__" > /opt/config/cpe_public_net_ipaddr.txt
332 echo "__oam_cidr__" > /opt/config/oam_cidr.txt
333 echo "__cpe_public_net_cidr__" > /opt/config/cpe_public_net_cidr.txt
334 echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
335 echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
336 echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
337 echo "__install_script_version__" > /opt/config/install_script_version.txt
338 echo "__cloud_env__" > /opt/config/cloud_env.txt
340 # Download and run install script
341 curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_dns_install.sh -o /opt/v_dns_install.sh
343 chmod +x v_dns_install.sh
347 # Virtual DHCP Instantiation
348 vdhcp_private_0_port:
349 type: OS::Neutron::Port
351 network: { get_resource: cpe_signal_network }
352 fixed_ips: [{"subnet": { get_resource: cpe_signal_subnet }, "ip_address": { get_param: vdhcp_private_ip_0 }}]
354 vdhcp_private_1_port:
355 type: OS::Neutron::Port
357 network: { get_param: onap_private_net_id }
358 fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vdhcp_private_ip_1 }}]
361 type: OS::Nova::Server
363 image: { get_param: vcpe_image_name }
364 flavor: { get_param: vcpe_flavor_name }
365 name: { get_param: vdhcp_name_0 }
366 key_name: { get_resource: my_keypair }
368 - network: { get_param: public_net_id }
369 - port: { get_resource: vdhcp_private_0_port }
370 - port: { get_resource: vdhcp_private_1_port }
371 metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
372 user_data_format: RAW
376 __oam_ipaddr__ : { get_param: vdhcp_private_ip_1 }
377 __cpe_signal_ipaddr__ : { get_param: vdhcp_private_ip_0 }
378 __oam_cidr__ : { get_param: onap_private_net_cidr }
379 __cpe_signal_net_cidr__ : { get_param: cpe_signal_net_cidr }
380 __mr_ip_addr__ : { get_param: mr_ip_addr }
381 __repo_url_blob__ : { get_param: repo_url_blob }
382 __repo_url_artifacts__ : { get_param: repo_url_artifacts }
383 __demo_artifacts_version__ : { get_param: demo_artifacts_version }
384 __install_script_version__ : { get_param: install_script_version }
385 __cloud_env__ : { get_param: cloud_env }
389 # Create configuration files
391 echo "__oam_ipaddr__" > /opt/config/oam_ipaddr.txt
392 echo "__cpe_signal_ipaddr__" > /opt/config/cpe_signal_ipaddr.txt
393 echo "__oam_cidr__" > /opt/config/oam_cidr.txt
394 echo "__cpe_signal_net_cidr__" > /opt/config/cpe_signal_net_cidr.txt
395 echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
396 echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
397 echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
398 echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
399 echo "__install_script_version__" > /opt/config/install_script_version.txt
400 echo "__cloud_env__" > /opt/config/cloud_env.txt
402 # Download and run install script
403 curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_dhcp_install.sh -o /opt/v_dhcp_install.sh
405 chmod +x v_dhcp_install.sh
410 type: OS::Neutron::Port
412 network: { get_resource: cpe_public_network }
413 fixed_ips: [{"subnet": { get_resource: cpe_public_subnet }, "ip_address": { get_param: vweb_private_ip_0 }}]
416 type: OS::Neutron::Port
418 network: { get_param: onap_private_net_id }
419 fixed_ips: [{"subnet": { get_param: onap_private_subnet_id }, "ip_address": { get_param: vweb_private_ip_1 }}]
423 type: OS::Nova::Server
425 image: { get_param: vcpe_image_name }
426 flavor: { get_param: vcpe_flavor_name }
427 name: { get_param: vweb_name_0 }
428 key_name: { get_resource: my_keypair }
430 - network: { get_param: public_net_id }
431 - port: { get_resource: vweb_private_0_port }
432 - port: { get_resource: vweb_private_1_port }
433 metadata: {vnf_id: { get_param: vnf_id }, vf_module_id: { get_param: vf_module_id }}
434 user_data_format: RAW
438 __oam_ipaddr__ : { get_param: vweb_private_ip_1 }
439 __cpe_public_ipaddr__: { get_param: vweb_private_ip_0 }
440 __oam_cidr__: { get_param: onap_private_net_cidr }
441 __cpe_public_net_cidr__: { get_param: cpe_public_net_cidr }
442 __repo_url_blob__ : { get_param: repo_url_blob }
443 __repo_url_artifacts__ : { get_param: repo_url_artifacts }
444 __demo_artifacts_version__ : { get_param: demo_artifacts_version }
445 __install_script_version__ : { get_param: install_script_version }
446 __cloud_env__ : { get_param: cloud_env }
450 # Create configuration files
452 echo "__oam_ipaddr__" > /opt/config/oam_ipaddr.txt
453 echo "__cpe_public_ipaddr__" > /opt/config/cpe_public_ipaddr.txt
454 echo "__oam_cidr__" > /opt/config/oam_cidr.txt
455 echo "__cpe_public_net_cidr__" > /opt/config/cpe_public_net_cidr.txt
456 echo "__repo_url_blob__" > /opt/config/repo_url_blob.txt
457 echo "__repo_url_artifacts__" > /opt/config/repo_url_artifacts.txt
458 echo "__demo_artifacts_version__" > /opt/config/demo_artifacts_version.txt
459 echo "__install_script_version__" > /opt/config/install_script_version.txt
460 echo "__cloud_env__" > /opt/config/cloud_env.txt
462 # Download and run install script
463 curl -k __repo_url_blob__/org.onap.demo/vnfs/vcpe/__install_script_version__/v_web_install.sh -o /opt/v_web_install.sh
465 chmod +x v_web_install.sh