Add skeleton for new VMs in Heat
[demo.git] / heat / ONAP / onap_openstack_light.yaml
1 ##########################################################################
2 #
3 #==================LICENSE_START==========================================
4 #
5 #
6 # Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
7 #
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
12 #
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.
18 #
19 #==================LICENSE_END============================================
20 #
21 # ECOMP is a trademark and service mark of AT&T Intellectual Property.
22 #
23 ##########################################################################
24
25 heat_template_version: 2015-10-15
26
27 description: Heat template to install ONAP components
28
29 ##############
30 #            #
31 # PARAMETERS #
32 #            #
33 ##############
34
35 parameters:
36
37   ##############################################
38   #                                            #
39   # Parameters used across all ONAP components #
40   #                                            #
41   ##############################################
42
43   public_net_id:
44     type: string
45     description: The ID of the Public network for floating IP address allocation
46
47   public_net_name:
48     type: string
49     description: The name of the Public network referred by public_net_id
50
51   ubuntu_1404_image:
52     type: string
53     description: Name of the Ubuntu 14.04 image
54
55   ubuntu_1604_image:
56     type: string
57     description: Name of the Ubuntu 16.04 image
58
59   flavor_small:
60     type: string
61     description: Name of the Small Flavor supported by the cloud provider
62
63   flavor_medium:
64     type: string
65     description: Name of the Medium Flavor supported by the cloud provider
66
67   flavor_large:
68     type: string
69     description: Name of the Large Flavor supported by the cloud provider
70
71   flavor_xlarge:
72     type: string
73     description: Name of the Extra Large Flavor supported by the cloud provider
74
75   flavor_xxlarge:
76     type: string
77     description: Name of the Extra Extra Large Flavor supported by the cloud provider
78
79   vm_base_name:
80     type: string
81     description: Base name of ONAP VMs
82
83   key_name:
84     type: string
85     description: Public/Private key pair name
86
87   pub_key:
88     type: string
89     description: Public key to be installed on the compute instance
90
91   nexus_repo:
92     type: string
93     description: Complete URL for the Nexus repository.
94
95   nexus_docker_repo:
96     type: string
97     description: Complete URL for the Nexus repository for docker images.
98
99   nexus_username:
100     type: string
101     description: Nexus Repository username
102
103   nexus_password:
104     type: string
105     description: Nexus Repository Password
106
107   artifacts_version:
108     type: string
109     description: Artifacts version of ONAP components
110
111   dmaap_topic:
112     type: string
113     description: DMaaP Topic name
114
115   openstack_tenant_id:
116     type: string
117     description: OpenStack tenant ID
118
119   openstack_tenant_name:
120     type: string
121     description: OpenStack tenant name (matching with the openstack_tenant_id)
122
123   openstack_username:
124     type: string
125     description: OpenStack username
126
127   openstack_auth_method:
128     type: string
129     description: OpenStack authentication method (password VS. api-key)
130
131   openstack_api_key:
132     type: string
133     description: OpenStack password or API Key
134
135   horizon_url:
136     type: string
137     description: URL of OpenStack Horizon
138
139   keystone_url:
140     type: string
141     description: URL of OpenStack Keystone
142
143   cloud_env:
144     type: string
145     description: Cloud Provider Name in lower case
146
147   openstack_region:
148     type: string
149     description: Region where the DCAE controller will spin the VMs
150
151   ######################
152   #                    #
153   # Network parameters #
154   #                    #
155   ######################
156
157   dns_list:
158     type: comma_delimited_list
159     description: List of External DNS for OAM ONAP network
160
161   external_dns:
162     type: string
163     description: Public IP of the external DNS for ONAP network
164
165   dns_forwarder:
166     type: string
167     description: the forwarder address for setting up ONAP's private DNS server
168
169   oam_network_cidr:
170     type: string
171     description: CIDR of the OAM ONAP network
172
173   ### Private IP addresses ###
174   aai1_ip_addr:
175     type: string
176   aai2_ip_addr:
177     type: string
178   appc_ip_addr:
179     type: string
180   dcae_ip_addr:
181     type: string
182   dns_ip_addr:
183     type: string
184   so_ip_addr:
185     type: string
186   mr_ip_addr:
187     type: string
188   policy_ip_addr:
189     type: string
190   portal_ip_addr:
191     type: string
192   robot_ip_addr:
193     type: string
194   sdc_ip_addr:
195     type: string
196   sdnc_ip_addr:
197     type: string
198   vid_ip_addr:
199     type: string
200   clamp_ip_addr:
201     type: string
202   openo_ip_addr:
203     type: string
204   music_ip_addr:
205     type: string
206   oof_ip_addr:
207     type: string
208   aaf_ip_addr:
209     type: string
210
211   ###########################
212   #                         #
213   # Parameters used by DCAE #
214   #                         #
215   ###########################
216
217   dnsaas_config_enabled:
218     type: string
219     description: whether the DNSaaS configuration section is enabled
220
221   dnsaas_region:
222     type: string
223     description: the region of the cloud instance providing the Designate DNS as a Service
224
225   dnsaas_keystone_url:
226     type: string
227     description: the keystone URL of the cloud instance providing the Designate DNS as a Service
228
229   dnsaas_username:
230     type: string
231     description: the username of the cloud instance providing the Designate DNS as a Service
232
233   dnsaas_password:
234     type: string
235     description: the password of the cloud instance providing the Designate DNS as a Service
236
237   dnsaas_tenant_name:
238     type: string
239     description: the name of the tenant in the cloud instance providing the Designate DNS as a Service
240
241   dcae_keystone_url:
242     type: string
243     description: the keystone URL for DCAE to use (via MultiCloud)
244
245   dcae_private_key:
246     type: string
247     description: the private key of the key-apir used between the DCAE bootstrap container and DCAE VMs
248
249   dcae_public_key:
250     type: string
251     description: the prublic key of the key-apir used between the DCAE bootstrap container and DCAE VMs
252
253   dcae_centos_7_image:
254     type: string
255     description: the id/name of the CentOS 7 VM imange
256
257   dcae_domain:
258     type: string
259     description: the top level domain to register DCAE VMs (the zone will be random-str.dcae_domain)
260
261   #####################
262   #                   #
263   # ONAP repositories #
264   #                   #
265   #####################
266
267   aai_repo:
268     type: string
269   appc_repo:
270     type: string
271   mr_repo:
272     type: string
273   so_repo:
274     type: string
275   policy_repo:
276     type: string
277   portal_repo:
278     type: string
279   robot_repo:
280     type: string
281   sdc_repo:
282     type: string
283   sdnc_repo:
284     type: string
285   vid_repo:
286     type: string
287   clamp_repo:
288     type: string
289   vnfsdk_repo:
290     type: string
291
292   ################################
293   #                              #
294   # Docker versions and branches #
295   #                              #
296   ################################
297
298   aai_docker:
299     type: string
300   aai_sparky_docker:
301     type: string
302   appc_docker:
303     type: string
304   so_docker:
305     type: string
306   dcae_docker:
307     type: string
308   policy_docker:
309     type: string
310   portal_docker:
311     type: string
312   robot_docker:
313     type: string
314   sdc_docker:
315     type: string
316   sdnc_docker:
317     type: string
318   vid_docker:
319     type: string
320   clamp_docker:
321     type: string
322   msb_docker:
323     type: string
324   mvim_docker:
325     type: string
326   uui_docker:
327     type: string
328   esr_docker:
329     type: string
330   dgbuilder_docker:
331     type: string
332   cli_docker:
333     type: string
334   music_docker:
335     type: string
336   oof_docker:
337     type: string
338   aaf_docker:
339     type: string
340
341   vfc_nokia_docker:
342     type: string
343   vfc_ztevnfmdriver_docker:
344     type: string
345   vfc_ztesdncdriver_docker:
346     type: string
347   vfc_vnfres_docker:
348     type: string
349   vfc_vnfmgr_docker:
350     type: string
351   vfc_vnflcm_docker:
352     type: string
353   vfc_resmanagement_docker:
354     type: string
355   vfc_nslcm_docker:
356     type: string
357   vfc_huawei_docker:
358     type: string
359   vfc_jujudriver_docker:
360     type: string
361   vfc_gvnfmdriver_docker:
362     type: string
363   vfc_emsdriver_docker:
364     type: string
365   vfc_catalog_docker:
366     type: string
367   vfc_wfengine_mgrservice_docker:
368     type: string
369   vfc_wfengine_activiti_docker:
370     type: string
371
372   aai_branch:
373     type: string
374   appc_branch:
375     type: string
376   so_branch:
377     type: string
378   mr_branch:
379     type: string
380   policy_branch:
381     type: string
382   portal_branch:
383     type: string
384   robot_branch:
385     type: string
386   sdc_branch:
387     type: string
388   sdnc_branch:
389     type: string
390   vid_branch:
391     type: string
392   clamp_branch:
393     type: string
394   vnfsdk_branch:
395     type: string
396
397
398 #############
399 #           #
400 # RESOURCES #
401 #           #
402 #############
403
404 resources:
405   random-str:
406     type: OS::Heat::RandomString
407     properties:
408       length: 4
409
410   # Public key used to access ONAP components
411   vm_key:
412     type: OS::Nova::KeyPair
413     properties:
414       name:
415         str_replace:
416           template: base_rand
417           params:
418             base: { get_param: key_name }
419             rand: { get_resource: random-str }
420       public_key: { get_param: pub_key }
421       save_private_key: false
422
423
424   # ONAP security group
425   onap_sg:
426     type: OS::Neutron::SecurityGroup
427     properties:
428       name:
429         str_replace:
430           template: base_rand
431           params:
432             base: onap_sg
433             rand: { get_resource: random-str }
434       description: security group used by ONAP
435       rules:
436         # All egress traffic
437         - direction: egress
438           ethertype: IPv4
439         - direction: egress
440           ethertype: IPv6
441         # ingress traffic
442         # ICMP
443         - protocol: icmp
444         - protocol: udp
445           port_range_min: 1
446           port_range_max: 65535
447         - protocol: tcp
448           port_range_min: 1
449           port_range_max: 65535
450
451
452
453   # ONAP management private network
454   oam_onap:
455     type: OS::Neutron::Net
456     properties:
457       name:
458         str_replace:
459           template: oam_onap_rand
460           params:
461             rand: { get_resource: random-str }
462
463   oam_onap_subnet:
464     type: OS::Neutron::Subnet
465     properties:
466       name:
467         str_replace:
468           template: oam_onap_rand
469           params:
470             rand: { get_resource: random-str }
471       network_id: { get_resource: oam_onap }
472       cidr: { get_param: oam_network_cidr }
473       dns_nameservers: { get_param: dns_list }
474
475   router:
476     type: OS::Neutron::Router
477     properties:
478       external_gateway_info:
479         network: { get_param: public_net_id }
480
481   router_interface:
482     type: OS::Neutron::RouterInterface
483     properties:
484       router_id: { get_resource: router }
485       subnet_id: { get_resource: oam_onap_subnet }
486
487
488   # DNS Server instantiation
489   dns_private_port:
490     type: OS::Neutron::Port
491     properties:
492       network: { get_resource: oam_onap }
493       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: dns_ip_addr }}]
494       security_groups:
495       - { get_resource: onap_sg }
496
497   dns_floating_ip:
498     type: OS::Neutron::FloatingIP
499     properties:
500       floating_network_id: { get_param: public_net_id }
501       port_id: { get_resource: dns_private_port }
502
503   dns_vm:
504     type: OS::Nova::Server
505     properties:
506       image: { get_param: ubuntu_1404_image }
507       flavor: { get_param: flavor_small }
508       name:
509         str_replace:
510           template: base-dns-server
511           params:
512             base: { get_param: vm_base_name }
513       key_name: { get_resource: vm_key }
514       networks:
515         - port: { get_resource: dns_private_port }
516       user_data_format: RAW
517       user_data:
518         str_replace:
519           params:
520             __nexus_repo__: { get_param: nexus_repo }
521             __artifacts_version__: { get_param: artifacts_version }
522             __oam_network_cidr__: { get_attr: [oam_onap_subnet, cidr] }
523             __dns_ip_addr__: { get_param: dns_ip_addr }
524             __aai1_ip_addr__: { get_param: aai1_ip_addr }
525             __aai2_ip_addr__: { get_param: aai2_ip_addr }
526             __appc_ip_addr__: { get_param: appc_ip_addr }
527             __dcae_ip_addr__: { get_param: dcae_ip_addr }
528             __so_ip_addr__: { get_param: so_ip_addr }
529             __mr_ip_addr__: { get_param: mr_ip_addr }
530             __policy_ip_addr__: { get_param: policy_ip_addr }
531             __portal_ip_addr__: { get_param: portal_ip_addr }
532             __robot_ip_addr__: { get_param: robot_ip_addr }
533             __sdc_ip_addr__: { get_param: sdc_ip_addr }
534             __sdnc_ip_addr__: { get_param: sdnc_ip_addr }
535             __vid_ip_addr__: { get_param: vid_ip_addr }
536             __clamp_ip_addr__: { get_param: clamp_ip_addr }
537             __openo_ip_addr__: { get_param: openo_ip_addr }
538             __music_ip_addr__: { get_param: music_ip_addr }
539             __oof_ip_addr__: { get_param: oof_ip_addr }
540             __aaf_ip_addr__: { get_param: aaf_ip_addr }
541             __cloud_env__: { get_param: cloud_env }
542             __external_dns__: { get_param: external_dns }
543             __dns_forwarder__: { get_param: dns_forwarder }
544           template: |
545             #!/bin/bash
546
547             # Create configuration files
548             mkdir -p /opt/config
549             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
550             echo "__cloud_env__" > /opt/config/cloud_env.txt
551             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
552             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
553             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
554             echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
555             echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
556             echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
557             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
558             echo "__so_ip_addr__" > /opt/config/so_ip_addr.txt
559             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
560             echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt
561             echo "__portal_ip_addr__" > /opt/config/portal_ip_addr.txt
562             echo "__robot_ip_addr__" > /opt/config/robot_ip_addr.txt
563             echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
564             echo "__sdnc_ip_addr__" > /opt/config/sdnc_ip_addr.txt
565             echo "__vid_ip_addr__" > /opt/config/vid_ip_addr.txt
566             echo "__clamp_ip_addr__" > /opt/config/clamp_ip_addr.txt
567             echo "__openo_ip_addr__" > /opt/config/openo_ip_addr.txt
568             echo "__music_ip_addr__" > /opt/config/music_ip_addr.txt
569             echo "__oof_ip_addr__" > /opt/config/oof_ip_addr.txt
570             echo "__aaf_ip_addr__" > /opt/config/aaf_ip_addr.txt
571             echo "__external_dns__" > /opt/config/external_dns.txt
572             echo "__dns_forwarder__" > /opt/config/dns_forwarder.txt
573
574             # Download and run install script
575             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/dns_install.sh -o /opt/dns_install.sh
576             cd /opt
577             chmod +x dns_install.sh
578             ./dns_install.sh
579
580
581   # A&AI instantiation (2 VMs)
582   aai1_private_port:
583     type: OS::Neutron::Port
584     properties:
585       network: { get_resource: oam_onap }
586       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: aai1_ip_addr }}]
587       security_groups:
588       - { get_resource: onap_sg }
589
590   aai1_floating_ip:
591     type: OS::Neutron::FloatingIP
592     properties:
593       floating_network_id: { get_param: public_net_id }
594       port_id: { get_resource: aai1_private_port }
595
596   aai1_vm:
597     type: OS::Nova::Server
598     depends_on: aai2_vm
599     properties:
600       image: { get_param: ubuntu_1404_image }
601       flavor: { get_param: flavor_large }
602       name:
603         str_replace:
604           template: base-aai-inst1
605           params:
606             base: { get_param: vm_base_name }
607       key_name: { get_resource: vm_key }
608       networks:
609         - port: { get_resource: aai1_private_port }
610       user_data_format: RAW
611       user_data:
612         str_replace:
613           params:
614             __nexus_repo__: { get_param: nexus_repo }
615             __nexus_docker_repo__: { get_param: nexus_docker_repo }
616             __nexus_username__: { get_param: nexus_username }
617             __nexus_password__: { get_param: nexus_password }
618             __dmaap_topic__: { get_param: dmaap_topic }
619             __artifacts_version__: { get_param: artifacts_version }
620             __dns_ip_addr__: { get_param: dns_ip_addr }
621             __docker_version__: { get_param: aai_docker }
622             __aai_sparky_docker__ : { get_param: aai_sparky_docker }
623             __gerrit_branch__: { get_param: aai_branch }
624             __cloud_env__: { get_param: cloud_env }
625             __external_dns__: { get_param: external_dns }
626             __aai_repo__: { get_param: aai_repo }
627           template: |
628             #!/bin/bash
629
630             # Create configuration files
631             mkdir -p /opt/config
632             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
633             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
634             echo "__nexus_username__" > /opt/config/nexus_username.txt
635             echo "__nexus_password__" > /opt/config/nexus_password.txt
636             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
637             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
638             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
639             echo "__docker_version__" > /opt/config/docker_version.txt
640             echo "__aai_sparky_docker__" > /opt/config/sparky_version.txt
641             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
642             echo "aai_instance_1" > /opt/config/aai_instance.txt
643             echo "__cloud_env__" > /opt/config/cloud_env.txt
644             echo "__external_dns__" > /opt/config/external_dns.txt
645             echo "__aai_repo__" > /opt/config/remote_repo.txt
646
647             # Download and run install script
648             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/aai_install.sh -o /opt/aai_install.sh
649             cd /opt
650             chmod +x aai_install.sh
651             ./aai_install.sh
652
653
654   aai2_private_port:
655     type: OS::Neutron::Port
656     properties:
657       network: { get_resource: oam_onap }
658       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: aai2_ip_addr }}]
659       security_groups:
660       - { get_resource: onap_sg }
661
662   aai2_floating_ip:
663     type: OS::Neutron::FloatingIP
664     properties:
665       floating_network_id: { get_param: public_net_id }
666       port_id: { get_resource: aai2_private_port }
667
668   aai2_vm:
669     type: OS::Nova::Server
670     properties:
671       image: { get_param: ubuntu_1404_image }
672       flavor: { get_param: flavor_large }
673       name:
674         str_replace:
675           template: base-aai-inst2
676           params:
677             base: { get_param: vm_base_name }
678       key_name: { get_resource: vm_key }
679       networks:
680         - port: { get_resource: aai2_private_port }
681       user_data_format: RAW
682       user_data:
683         str_replace:
684           params:
685             __nexus_repo__: { get_param: nexus_repo }
686             __nexus_docker_repo__: { get_param: nexus_docker_repo }
687             __nexus_username__: { get_param: nexus_username }
688             __nexus_password__: { get_param: nexus_password }
689             __dmaap_topic__: { get_param: dmaap_topic }
690             __artifacts_version__: { get_param: artifacts_version }
691             __dns_ip_addr__: { get_param: dns_ip_addr }
692             __docker_version__: { get_param: aai_docker }
693             __gerrit_branch__: { get_param: aai_branch }
694             __cloud_env__: { get_param: cloud_env }
695             __external_dns__: { get_param: external_dns }
696             __aai_repo__: { get_param: aai_repo }
697           template: |
698             #!/bin/bash
699
700             # Create configuration files
701             mkdir -p /opt/config
702             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
703             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
704             echo "__nexus_username__" > /opt/config/nexus_username.txt
705             echo "__nexus_password__" > /opt/config/nexus_password.txt
706             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
707             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
708             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
709             echo "__docker_version__" > /opt/config/docker_version.txt
710             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
711             echo "aai_instance_2" > /opt/config/aai_instance.txt
712             echo "__cloud_env__" > /opt/config/cloud_env.txt
713             echo "__external_dns__" > /opt/config/external_dns.txt
714             echo "__aai_repo__" > /opt/config/remote_repo.txt
715
716             # Download and run install script
717             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/aai_install.sh -o /opt/aai_install.sh
718             cd /opt
719             chmod +x aai_install.sh
720             ./aai_install.sh
721
722
723   # SO instantiation
724   so_private_port:
725     type: OS::Neutron::Port
726     properties:
727       network: { get_resource: oam_onap }
728       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: so_ip_addr }}]
729       security_groups:
730       - { get_resource: onap_sg }
731
732   so_floating_ip:
733     type: OS::Neutron::FloatingIP
734     properties:
735       floating_network_id: { get_param: public_net_id }
736       port_id: { get_resource: so_private_port }
737
738   so_vm:
739     type: OS::Nova::Server
740     properties:
741       image: { get_param: ubuntu_1604_image }
742       flavor: { get_param: flavor_medium }
743       name:
744         str_replace:
745           template: base-so
746           params:
747             base: { get_param: vm_base_name }
748       key_name: { get_resource: vm_key }
749       networks:
750         - port: { get_resource: so_private_port }
751       user_data_format: RAW
752       user_data:
753         str_replace:
754           params:
755             __nexus_repo__: { get_param: nexus_repo }
756             __nexus_docker_repo__: { get_param: nexus_docker_repo }
757             __nexus_username__: { get_param: nexus_username }
758             __nexus_password__: { get_param: nexus_password }
759             __openstack_username__: { get_param: openstack_username }
760             __openstack_tenant_id__: { get_param: openstack_tenant_id }
761             __openstack_api_key__: { get_param: openstack_api_key }
762             __openstack_region__: { get_param: openstack_region }
763             __keystone_url__: { get_param: keystone_url }
764             __dmaap_topic__: { get_param: dmaap_topic }
765             __artifacts_version__: { get_param: artifacts_version }
766             __dns_ip_addr__: { get_param: dns_ip_addr }
767             __openo_ip__: { get_param: openo_ip_addr }
768             __docker_version__: { get_param: so_docker }
769             __gerrit_branch__: { get_param: so_branch }
770             __cloud_env__: { get_param: cloud_env }
771             __external_dns__: { get_param: external_dns }
772             __so_repo__: { get_param: so_repo }
773           template: |
774             #!/bin/bash
775
776             # Create configuration files
777             mkdir -p /opt/config
778             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
779             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
780             echo "__nexus_username__" > /opt/config/nexus_username.txt
781             echo "__nexus_password__" > /opt/config/nexus_password.txt
782             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
783             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
784             echo "__openo_ip__" > /opt/config/openo_ip.txt
785             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
786             echo "__openstack_username__" > /opt/config/openstack_username.txt
787             echo "__openstack_tenant_id__" > /opt/config/tenant_id.txt
788             echo "__openstack_api_key__" > /opt/config/openstack_api_key.txt
789             echo "__openstack_region__" > /opt/config/openstack_region.txt
790             echo "__keystone_url__" > /opt/config/keystone.txt
791             echo "__docker_version__" > /opt/config/docker_version.txt
792             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
793             echo "__cloud_env__" > /opt/config/cloud_env.txt
794             echo "__external_dns__" > /opt/config/external_dns.txt
795             echo "__so_repo__" > /opt/config/remote_repo.txt
796
797             # Download and run install script
798             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/so_install.sh -o /opt/so_install.sh
799             cd /opt
800             chmod +x so_install.sh
801             ./so_install.sh
802
803
804   # Message Router instantiation
805   mrouter_private_port:
806     type: OS::Neutron::Port
807     properties:
808       network: { get_resource: oam_onap }
809       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: mr_ip_addr }}]
810       security_groups:
811       - { get_resource: onap_sg }
812
813   mrouter_floating_ip:
814     type: OS::Neutron::FloatingIP
815     properties:
816       floating_network_id: { get_param: public_net_id }
817       port_id: { get_resource: mrouter_private_port }
818
819   mrouter_vm:
820     type: OS::Nova::Server
821     properties:
822       image: { get_param: ubuntu_1404_image }
823       flavor: { get_param: flavor_medium }
824       name:
825         str_replace:
826           template: base-message-router
827           params:
828             base: { get_param: vm_base_name }
829       key_name: { get_resource: vm_key }
830       networks:
831         - port: { get_resource: mrouter_private_port }
832       user_data_format: RAW
833       user_data:
834         str_replace:
835           params:
836             __nexus_repo__: { get_param: nexus_repo }
837             __nexus_docker_repo__: { get_param: nexus_docker_repo }
838             __nexus_username__: { get_param: nexus_username }
839             __nexus_password__: { get_param: nexus_password }
840             __artifacts_version__: { get_param: artifacts_version }
841             __dns_ip_addr__: { get_param: dns_ip_addr }
842             __gerrit_branch__: { get_param: mr_branch }
843             __cloud_env__: { get_param: cloud_env }
844             __external_dns__: { get_param: external_dns }
845             __mr_repo__: { get_param: mr_repo }
846           template: |
847             #!/bin/bash
848
849             # Create configuration files
850             mkdir -p /opt/config
851             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
852             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
853             echo "__nexus_username__" > /opt/config/nexus_username.txt
854             echo "__nexus_password__" > /opt/config/nexus_password.txt
855             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
856             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
857             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
858             echo "__cloud_env__" > /opt/config/cloud_env.txt
859             echo "__external_dns__" > /opt/config/external_dns.txt
860             echo "__mr_repo__" > /opt/config/remote_repo.txt
861
862             # Download and run install script
863             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/mr_install.sh -o /opt/mr_install.sh
864             cd /opt
865             chmod +x mr_install.sh
866             ./mr_install.sh
867
868
869   # Robot Framework instantiation
870   robot_private_port:
871     type: OS::Neutron::Port
872     properties:
873       network: { get_resource: oam_onap }
874       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: robot_ip_addr }}]
875       security_groups:
876       - { get_resource: onap_sg }
877
878   robot_floating_ip:
879     type: OS::Neutron::FloatingIP
880     properties:
881       floating_network_id: { get_param: public_net_id }
882       port_id: { get_resource: robot_private_port }
883
884   robot_vm:
885     type: OS::Nova::Server
886     properties:
887       image: { get_param: ubuntu_1604_image }
888       flavor: { get_param: flavor_small }
889       name:
890         str_replace:
891           template: base-robot
892           params:
893             base: { get_param: vm_base_name }
894       key_name: { get_resource: vm_key }
895       networks:
896         - port: { get_resource: robot_private_port }
897       user_data_format: RAW
898       user_data:
899         str_replace:
900           params:
901             __nexus_repo__: { get_param: nexus_repo }
902             __nexus_docker_repo__: { get_param: nexus_docker_repo }
903             __nexus_username__: { get_param: nexus_username }
904             __nexus_password__: { get_param: nexus_password }
905             __network_name__: { get_attr: [oam_onap, name] }
906             __openstack_username__: { get_param: openstack_username }
907             __openstack_api_key__: { get_param : openstack_api_key }
908             __openstack_tenant_id__: { get_param: openstack_tenant_id }
909             __artifacts_version__: { get_param: artifacts_version }
910             __openstack_region__: { get_param: openstack_region }
911             __dns_ip_addr__: { get_param: dns_ip_addr }
912             __gerrit_branch__: { get_param: robot_branch }
913             __cloud_env__: { get_param: cloud_env }
914             __keystone_url__: { get_param: keystone_url }
915             __aai1_ip_addr__: { get_param: aai1_ip_addr }
916             __aai2_ip_addr__: { get_param: aai2_ip_addr }
917             __appc_ip_addr__: { get_param: appc_ip_addr }
918             __dcae_ip_addr__: { get_param: dcae_ip_addr }
919             __so_ip_addr__: { get_param: so_ip_addr }
920             __mr_ip_addr__: { get_param: mr_ip_addr }
921             __policy_ip_addr__: { get_param: policy_ip_addr }
922             __portal_ip_addr__: { get_param: portal_ip_addr }
923             __sdc_ip_addr__: { get_param: sdc_ip_addr }
924             __sdnc_ip_addr__: { get_param: sdnc_ip_addr }
925             __vid_ip_addr__: { get_param: vid_ip_addr }
926             __clamp_ip_addr__: { get_param: clamp_ip_addr }
927             __openo_ip_addr__: { get_param: openo_ip_addr }
928             __clamp_ip_addr__: { get_param: clamp_ip_addr }
929             __openo_ip_addr__: { get_param: openo_ip_addr }
930             __music_ip_addr__: { get_param: music_ip_addr }
931             __external_dns__: { get_param: external_dns }
932             __vm_image_name__: { get_param: ubuntu_1404_image }
933             __vm_flavor__: { get_param: flavor_medium }
934             __public_net_id__: { get_param: public_net_id }
935             __script_version__: { get_param: artifacts_version }
936             __robot_repo__: { get_param: robot_repo }
937             __docker_version__: { get_param: robot_docker }
938           template: |
939             #!/bin/bash
940
941             # Create configuration files
942             mkdir -p /opt/config
943             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
944             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
945             echo "__nexus_username__" > /opt/config/nexus_username.txt
946             echo "__nexus_password__" > /opt/config/nexus_password.txt
947             echo "__network_name__" > /opt/config/network.txt
948             echo "__openstack_username__" > /opt/config/openstack_username.txt
949             echo "__openstack_api_key__" > /opt/config/openstack_password.txt
950             echo "__openstack_tenant_id__" > /opt/config/openstack_tenant_id.txt
951             echo "__openstack_region__" > /opt/config/region.txt
952             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
953             echo "__docker_version__" > /opt/config/docker_version.txt
954             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
955             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
956             echo "__keystone_url__" > /opt/config/keystone.txt
957             echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
958             echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
959             echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
960             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
961             echo "__so_ip_addr__" > /opt/config/so_ip_addr.txt
962             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
963             echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt
964             echo "__portal_ip_addr__" > /opt/config/portal_ip_addr.txt
965             echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
966             echo "__sdnc_ip_addr__" > /opt/config/sdnc_ip_addr.txt
967             echo "__vid_ip_addr__" > /opt/config/vid_ip_addr.txt
968             echo "__clamp_ip_addr__" > /opt/config/clamp_ip_addr.txt
969             echo "__openo_ip_addr__" > /opt/config/openo_ip_addr.txt
970             echo "__music_ip_addr__" > /opt/config/music_ip_addr.txt
971             echo "__oof_ip_addr__" > /opt/config/oof_ip_addr.txt
972             echo "__aaf_ip_addr__" > /opt/config/aaf_ip_addr.txt
973             echo "__cloud_env__" > /opt/config/cloud_env.txt
974             echo "__external_dns__" > /opt/config/external_dns.txt
975             echo "__vm_image_name__" > /opt/config/vm_image_name.txt
976             echo "__ubuntu_1404_image__" > /opt/config/ubuntu_1404_image.txt
977             echo "__ubuntu_1604_image__" > /opt/config/ubuntu_1604_image.txt
978             echo "__script_version__" > /opt/config/script_version.txt
979             echo "__public_net_id__" > /opt/config/public_net_id.txt
980             echo "__robot_repo__" > /opt/config/remote_repo.txt
981
982             # Download and run install script
983             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/robot_install.sh -o /opt/robot_install.sh
984             cd /opt
985             chmod +x robot_install.sh
986             ./robot_install.sh
987
988
989   # VID instantiation
990   vid_private_port:
991     type: OS::Neutron::Port
992     properties:
993       network: { get_resource: oam_onap }
994       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: vid_ip_addr }}]
995       security_groups:
996       - { get_resource: onap_sg }
997
998   vid_floating_ip:
999     type: OS::Neutron::FloatingIP
1000     properties:
1001       floating_network_id: { get_param: public_net_id }
1002       port_id: { get_resource: vid_private_port }
1003
1004   vid_vm:
1005     type: OS::Nova::Server
1006     properties:
1007       image: { get_param: ubuntu_1404_image }
1008       flavor: { get_param: flavor_medium }
1009       name:
1010         str_replace:
1011           template: base-vid
1012           params:
1013             base: { get_param: vm_base_name }
1014       key_name: { get_resource: vm_key }
1015       networks:
1016         - port: { get_resource: vid_private_port }
1017       user_data_format: RAW
1018       user_data:
1019         str_replace:
1020           params:
1021             __nexus_repo__: { get_param: nexus_repo }
1022             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1023             __nexus_username__: { get_param: nexus_username }
1024             __nexus_password__: { get_param: nexus_password }
1025             __artifacts_version__: { get_param: artifacts_version }
1026             __dns_ip_addr__: { get_param: dns_ip_addr }
1027             __docker_version__: { get_param: vid_docker }
1028             __gerrit_branch__: { get_param: vid_branch }
1029             __cloud_env__: { get_param: cloud_env }
1030             __external_dns__: { get_param: external_dns }
1031             __vid_repo__: { get_param: vid_repo }
1032           template: |
1033             #!/bin/bash
1034
1035             # Create configuration files
1036             mkdir -p /opt/config
1037             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1038             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1039             echo "__nexus_username__" > /opt/config/nexus_username.txt
1040             echo "__nexus_password__" > /opt/config/nexus_password.txt
1041             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1042             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1043             echo "__docker_version__" > /opt/config/docker_version.txt
1044             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1045             echo "__cloud_env__" > /opt/config/cloud_env.txt
1046             echo "__external_dns__" > /opt/config/external_dns.txt
1047             echo "__vid_repo__" > /opt/config/remote_repo.txt
1048
1049             # Download and run install script
1050             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/vid_install.sh -o /opt/vid_install.sh
1051             cd /opt
1052             chmod +x vid_install.sh
1053             ./vid_install.sh
1054
1055
1056   # SDN-C instantiation
1057   sdnc_private_port:
1058     type: OS::Neutron::Port
1059     properties:
1060       network: { get_resource: oam_onap }
1061       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: sdnc_ip_addr }}]
1062       security_groups:
1063       - { get_resource: onap_sg }
1064
1065   sdnc_floating_ip:
1066     type: OS::Neutron::FloatingIP
1067     properties:
1068       floating_network_id: { get_param: public_net_id }
1069       port_id: { get_resource: sdnc_private_port }
1070
1071   sdnc_vm:
1072     type: OS::Nova::Server
1073     properties:
1074       image: { get_param: ubuntu_1404_image }
1075       flavor: { get_param: flavor_medium }
1076       name:
1077         str_replace:
1078           template: base-sdnc
1079           params:
1080             base: { get_param: vm_base_name }
1081       key_name: { get_resource: vm_key }
1082       networks:
1083         - port: { get_resource: sdnc_private_port }
1084       user_data_format: RAW
1085       user_data:
1086         str_replace:
1087           params:
1088             __nexus_repo__: { get_param: nexus_repo }
1089             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1090             __nexus_username__: { get_param: nexus_username }
1091             __nexus_password__: { get_param: nexus_password }
1092             __artifacts_version__: { get_param: artifacts_version }
1093             __dns_ip_addr__: { get_param: dns_ip_addr }
1094             __docker_version__: { get_param: sdnc_docker }
1095             __gerrit_branch__: { get_param: sdnc_branch }
1096             __dgbuilder_docker__: { get_param: dgbuilder_docker }
1097             __cloud_env__: { get_param: cloud_env }
1098             __external_dns__: { get_param: external_dns }
1099             __sdnc_repo__: { get_param: sdnc_repo }
1100           template: |
1101             #!/bin/bash
1102
1103             # Create configuration files
1104             mkdir -p /opt/config
1105             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1106             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1107             echo "__nexus_username__" > /opt/config/nexus_username.txt
1108             echo "__nexus_password__" > /opt/config/nexus_password.txt
1109             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1110             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1111             echo "__docker_version__" > /opt/config/docker_version.txt
1112             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1113             echo "__dgbuilder_docker__" > /opt/config/dgbuilder_version.txt
1114             echo "__cloud_env__" > /opt/config/cloud_env.txt
1115             echo "__external_dns__" > /opt/config/external_dns.txt
1116             echo "__sdnc_repo__" > /opt/config/remote_repo.txt
1117
1118             # Download and run install script
1119             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/sdnc_install.sh -o /opt/sdnc_install.sh
1120             cd /opt
1121             chmod +x sdnc_install.sh
1122             ./sdnc_install.sh
1123
1124
1125   # SDC instantiation
1126   sdc_private_port:
1127     type: OS::Neutron::Port
1128     properties:
1129       network: { get_resource: oam_onap }
1130       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: sdc_ip_addr }}]
1131       security_groups:
1132       - { get_resource: onap_sg }
1133
1134   sdc_floating_ip:
1135     type: OS::Neutron::FloatingIP
1136     properties:
1137       floating_network_id: { get_param: public_net_id }
1138       port_id: { get_resource: sdc_private_port }
1139
1140   sdc_volume_data:
1141     type: OS::Cinder::Volume
1142     properties:
1143       name: vol1-sdc-data
1144       size: 100
1145
1146   sdc_vm:
1147     type: OS::Nova::Server
1148     properties:
1149       image: { get_param: ubuntu_1604_image }
1150       flavor: { get_param: flavor_large }
1151       name:
1152         str_replace:
1153           template: base-sdc
1154           params:
1155             base: { get_param: vm_base_name }
1156       key_name: { get_resource: vm_key }
1157       networks:
1158         - port: { get_resource: sdc_private_port }
1159       block_device_mapping:
1160         - device_name: /dev/vdb
1161           volume_id: {get_resource: sdc_volume_data}
1162       user_data_format: RAW
1163       user_data:
1164         str_replace:
1165           params:
1166             __nexus_repo__: { get_param: nexus_repo }
1167             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1168             __nexus_username__: { get_param: nexus_username }
1169             __nexus_password__: { get_param: nexus_password }
1170             __env_name__: { get_param: dmaap_topic }
1171             __artifacts_version__: { get_param: artifacts_version }
1172             __dns_ip_addr__: { get_param: dns_ip_addr }
1173             __mr_ip_addr__: { get_param: mr_ip_addr }
1174             __private_ip__: { get_param: sdc_ip_addr }
1175             __docker_version__: { get_param: sdc_docker }
1176             __gerrit_branch__: { get_param: sdc_branch }
1177             __cloud_env__: { get_param: cloud_env }
1178             __external_dns__: { get_param: external_dns }
1179             __sdc_repo__: { get_param: sdc_repo }
1180           template: |
1181             #!/bin/bash
1182
1183             # Create configuration files
1184             mkdir -p /opt/config
1185             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1186             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1187             echo "__nexus_username__" > /opt/config/nexus_username.txt
1188             echo "__nexus_password__" > /opt/config/nexus_password.txt
1189             echo "__env_name__" > /opt/config/env_name.txt
1190             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
1191             echo "__private_ip__" > /opt/config/private_ip.txt
1192             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1193             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1194             echo "__docker_version__" > /opt/config/docker_version.txt
1195             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1196             echo "__cloud_env__" > /opt/config/cloud_env.txt
1197             echo "__external_dns__" > /opt/config/external_dns.txt
1198             echo "__sdc_repo__" > /opt/config/remote_repo.txt
1199
1200             # Download and run install script
1201             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/sdc_install.sh -o /opt/sdc_install.sh
1202             cd /opt
1203             chmod +x sdc_install.sh
1204             ./sdc_install.sh
1205
1206
1207   # PORTAL instantiation
1208   portal_private_port:
1209     type: OS::Neutron::Port
1210     properties:
1211       network: { get_resource: oam_onap }
1212       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: portal_ip_addr }}]
1213       security_groups:
1214       - { get_resource: onap_sg }
1215
1216   portal_floating_ip:
1217     type: OS::Neutron::FloatingIP
1218     properties:
1219       floating_network_id: { get_param: public_net_id }
1220       port_id: { get_resource: portal_private_port }
1221
1222   portal_vm:
1223     type: OS::Nova::Server
1224     properties:
1225       image: { get_param: ubuntu_1404_image }
1226       flavor: { get_param: flavor_medium }
1227       name:
1228         str_replace:
1229           template: base-portal
1230           params:
1231             base: { get_param: vm_base_name }
1232       key_name: { get_resource: vm_key }
1233       networks:
1234         - port: { get_resource: portal_private_port }
1235       user_data_format: RAW
1236       user_data:
1237         str_replace:
1238           params:
1239             __nexus_repo__: { get_param: nexus_repo }
1240             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1241             __nexus_username__: { get_param: nexus_username }
1242             __nexus_password__: { get_param: nexus_password }
1243             __artifacts_version__: { get_param: artifacts_version }
1244             __dns_ip_addr__: { get_param: dns_ip_addr }
1245             __public_ip__: { get_attr: [portal_floating_ip, floating_ip_address] }
1246             __docker_version__: { get_param: portal_docker }
1247             __gerrit_branch__: { get_param: portal_branch }
1248             __cli_docker__: { get_param: cli_docker }
1249             __cloud_env__: { get_param: cloud_env }
1250             __external_dns__: { get_param: external_dns }
1251             __portal_repo__: { get_param: portal_repo }
1252           template: |
1253             #!/bin/bash
1254
1255             # Create configuration files
1256             mkdir -p /opt/config
1257             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1258             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1259             echo "__nexus_username__" > /opt/config/nexus_username.txt
1260             echo "__nexus_password__" > /opt/config/nexus_password.txt
1261             echo "__public_ip__" > /opt/config/public_ip.txt
1262             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1263             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1264             echo "__docker_version__" > /opt/config/docker_version.txt
1265             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1266             echo "__cli_docker__" > /opt/config/cli_docker_version.txt
1267             echo "__cloud_env__" > /opt/config/cloud_env.txt
1268             echo "__external_dns__" > /opt/config/external_dns.txt
1269             echo "__portal_repo__" > /opt/config/remote_repo.txt
1270
1271             # Download and run install script
1272             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/portal_install.sh -o /opt/portal_install.sh
1273             cd /opt
1274             chmod +x portal_install.sh
1275             ./portal_install.sh
1276
1277
1278   # Policy Engine instantiation
1279   policy_private_port:
1280     type: OS::Neutron::Port
1281     properties:
1282       network: { get_resource: oam_onap }
1283       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: policy_ip_addr }}]
1284       security_groups:
1285       - { get_resource: onap_sg }
1286
1287   policy_floating_ip:
1288     type: OS::Neutron::FloatingIP
1289     properties:
1290       floating_network_id: { get_param: public_net_id }
1291       port_id: { get_resource: policy_private_port }
1292
1293   policy_vm:
1294     type: OS::Nova::Server
1295     properties:
1296       image: { get_param: ubuntu_1404_image }
1297       flavor: { get_param: flavor_medium }
1298       name:
1299         str_replace:
1300           template: base-policy
1301           params:
1302             base: { get_param: vm_base_name }
1303       key_name: { get_resource: vm_key }
1304       networks:
1305         - port: { get_resource: policy_private_port }
1306       user_data_format: RAW
1307       user_data:
1308         str_replace:
1309           params:
1310             __nexus_repo__: { get_param: nexus_repo }
1311             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1312             __nexus_username__: { get_param: nexus_username }
1313             __nexus_password__: { get_param: nexus_password }
1314             __artifacts_version__: { get_param: artifacts_version }
1315             __dns_ip_addr__: { get_param: dns_ip_addr }
1316             __public_ip__: { get_attr: [policy_floating_ip, floating_ip_address] }
1317             __docker_version__: { get_param: policy_docker }
1318             __gerrit_branch__: { get_param: policy_branch }
1319             __cloud_env__: { get_param: cloud_env }
1320             __external_dns__: { get_param: external_dns }
1321             __policy_repo__: { get_param: policy_repo }
1322           template: |
1323             #!/bin/bash
1324
1325             # Create configuration files
1326             mkdir -p /opt/config
1327             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1328             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1329             echo "__nexus_username__" > /opt/config/nexus_username.txt
1330             echo "__nexus_password__" > /opt/config/nexus_password.txt
1331             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1332             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1333             echo "__public_ip__" > /opt/config/public_ip.txt
1334             echo "__docker_version__" > /opt/config/docker_version.txt
1335             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1336             echo "__cloud_env__" > /opt/config/cloud_env.txt
1337             echo "__external_dns__" > /opt/config/external_dns.txt
1338             echo "__policy_repo__" > /opt/config/remote_repo.txt
1339
1340             # Download and run install script
1341             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/policy_install.sh -o /opt/policy_install.sh
1342             cd /opt
1343             chmod +x policy_install.sh
1344             ./policy_install.sh
1345
1346
1347   # APP-C instantiation
1348   appc_private_port:
1349     type: OS::Neutron::Port
1350     properties:
1351       network: { get_resource: oam_onap }
1352       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: appc_ip_addr }}]
1353       security_groups:
1354       - { get_resource: onap_sg }
1355
1356   appc_floating_ip:
1357     type: OS::Neutron::FloatingIP
1358     properties:
1359       floating_network_id: { get_param: public_net_id }
1360       port_id: { get_resource: appc_private_port }
1361
1362   appc_vm:
1363     type: OS::Nova::Server
1364     properties:
1365       image: { get_param: ubuntu_1404_image }
1366       flavor: { get_param: flavor_medium }
1367       name:
1368         str_replace:
1369           template: base-appc
1370           params:
1371             base: { get_param: vm_base_name }
1372       key_name: { get_resource: vm_key }
1373       networks:
1374         - port: { get_resource: appc_private_port }
1375       user_data_format: RAW
1376       user_data:
1377         str_replace:
1378           params:
1379             __nexus_repo__: { get_param: nexus_repo }
1380             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1381             __nexus_username__: { get_param: nexus_username }
1382             __nexus_password__: { get_param: nexus_password }
1383             __dmaap_topic__: { get_param: dmaap_topic }
1384             __artifacts_version__: { get_param: artifacts_version }
1385             __dns_ip_addr__: { get_param: dns_ip_addr }
1386             __docker_version__: { get_param: appc_docker }
1387             __gerrit_branch__: { get_param: appc_branch }
1388             __dgbuilder_docker__: { get_param: dgbuilder_docker }
1389             __cloud_env__: { get_param: cloud_env }
1390             __external_dns__: { get_param: external_dns }
1391             __appc_repo__: { get_param: appc_repo }
1392           template: |
1393             #!/bin/bash
1394
1395             # Create configuration files
1396             mkdir -p /opt/config
1397             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1398             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1399             echo "__nexus_username__" > /opt/config/nexus_username.txt
1400             echo "__nexus_password__" > /opt/config/nexus_password.txt
1401             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1402             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1403             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
1404             echo "__docker_version__" > /opt/config/docker_version.txt
1405             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1406             echo "__dgbuilder_docker__" > /opt/config/dgbuilder_version.txt
1407             echo "__cloud_env__" > /opt/config/cloud_env.txt
1408             echo "__external_dns__" > /opt/config/external_dns.txt
1409             echo "__appc_repo__" > /opt/config/remote_repo.txt
1410
1411             # Download and run install script
1412             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/appc_install.sh -o /opt/appc_install.sh
1413             cd /opt
1414             chmod +x appc_install.sh
1415             ./appc_install.sh
1416
1417
1418   # CLAMP instantiation
1419   clamp_private_port:
1420     type: OS::Neutron::Port
1421     properties:
1422       network: { get_resource: oam_onap }
1423       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: clamp_ip_addr }}]
1424       security_groups:
1425       - { get_resource: onap_sg }
1426
1427   clamp_floating_ip:
1428     type: OS::Neutron::FloatingIP
1429     properties:
1430       floating_network_id: { get_param: public_net_id }
1431       port_id: { get_resource: clamp_private_port }
1432
1433   clamp_vm:
1434     type: OS::Nova::Server
1435     properties:
1436       image: { get_param: ubuntu_1604_image }
1437       flavor: { get_param: flavor_medium }
1438       name:
1439         str_replace:
1440           template: base-clamp
1441           params:
1442             base: { get_param: vm_base_name }
1443       key_name: { get_resource: vm_key }
1444       networks:
1445         - port: { get_resource: clamp_private_port }
1446       user_data_format: RAW
1447       user_data:
1448         str_replace:
1449           params:
1450             __nexus_repo__: { get_param: nexus_repo }
1451             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1452             __nexus_username__: { get_param: nexus_username }
1453             __nexus_password__: { get_param: nexus_password }
1454             __openstack_username__: { get_param: openstack_username }
1455             __openstack_tenant_id__: { get_param: openstack_tenant_id }
1456             __openstack_api_key__: { get_param: openstack_api_key }
1457             __openstack_region__: { get_param: openstack_region }
1458             __keystone_url__: { get_param: keystone_url }
1459             __dmaap_topic__: { get_param: dmaap_topic }
1460             __artifacts_version__: { get_param: artifacts_version }
1461             __dns_ip_addr__: { get_param: dns_ip_addr }
1462             __docker_version__: { get_param: clamp_docker }
1463             __gerrit_branch__: { get_param: clamp_branch }
1464             __cloud_env__: { get_param: cloud_env }
1465             __external_dns__: { get_param: external_dns }
1466             __clamp_repo__: { get_param: clamp_repo }
1467           template: |
1468             #!/bin/bash
1469
1470             # Create configuration files
1471             mkdir -p /opt/config
1472             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1473             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1474             echo "__nexus_username__" > /opt/config/nexus_username.txt
1475             echo "__nexus_password__" > /opt/config/nexus_password.txt
1476             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1477             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1478             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
1479             echo "__openstack_username__" > /opt/config/openstack_username.txt
1480             echo "__openstack_tenant_id__" > /opt/config/tenant_id.txt
1481             echo "__openstack_api_key__" > /opt/config/openstack_api_key.txt
1482             echo "__openstack_region__" > /opt/config/openstack_region.txt
1483             echo "__keystone_url__" > /opt/config/keystone.txt
1484             echo "__docker_version__" > /opt/config/docker_version.txt
1485             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1486             echo "__cloud_env__" > /opt/config/cloud_env.txt
1487             echo "__external_dns__" > /opt/config/external_dns.txt
1488             echo "__clamp_repo__" > /opt/config/remote_repo.txt
1489
1490             # Download and run install script
1491             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/clamp_install.sh -o /opt/clamp_install.sh
1492             cd /opt
1493             chmod +x clamp_install.sh
1494             ./clamp_install.sh
1495
1496
1497   # OPEN-O VM instantiation
1498   openo_private_port:
1499     type: OS::Neutron::Port
1500     properties:
1501       network: { get_resource: oam_onap }
1502       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: openo_ip_addr }}]
1503       security_groups:
1504       - { get_resource: onap_sg }
1505
1506   openo_floating_ip:
1507     type: OS::Neutron::FloatingIP
1508     properties:
1509       floating_network_id: { get_param: public_net_id }
1510       port_id: { get_resource: openo_private_port }
1511
1512   openo_vm:
1513     type: OS::Nova::Server
1514     properties:
1515       image: { get_param: ubuntu_1604_image }
1516       flavor: { get_param: flavor_large }
1517       name:
1518         str_replace:
1519           template: base-multi-service
1520           params:
1521             base: { get_param: vm_base_name }
1522       key_name: { get_resource: vm_key }
1523       networks:
1524         - port: { get_resource: openo_private_port }
1525       user_data_format: RAW
1526       user_data:
1527         str_replace:
1528           params:
1529             __nexus_repo__: { get_param: nexus_repo }
1530             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1531             __nexus_username__: { get_param: nexus_username }
1532             __nexus_password__: { get_param: nexus_password }
1533             __artifacts_version__: { get_param: artifacts_version }
1534             __dns_ip_addr__: { get_param: dns_ip_addr }
1535             __oam_network_cidr__: { get_param: oam_network_cidr }
1536             __aai1_ip_addr__: { get_param: aai1_ip_addr }
1537             __aai2_ip_addr__: { get_param: aai2_ip_addr }
1538             __appc_ip_addr__: { get_param: appc_ip_addr }
1539             __dcae_ip_addr__: { get_param: dcae_ip_addr }
1540             __so_ip_addr__: { get_param: so_ip_addr }
1541             __mr_ip_addr__: { get_param: mr_ip_addr }
1542             __policy_ip_addr__: { get_param: policy_ip_addr }
1543             __portal_ip_addr__: { get_param: portal_ip_addr }
1544             __robot_ip_addr__: { get_param: robot_ip_addr }
1545             __sdc_ip_addr__: { get_param: sdc_ip_addr }
1546             __sdnc_ip_addr__: { get_param: sdnc_ip_addr }
1547             __vid_ip_addr__: { get_param: vid_ip_addr }
1548             __clamp_ip_addr__: { get_param: clamp_ip_addr }
1549             __openo_ip_addr__: { get_param: openo_ip_addr }
1550             __cloud_env__: { get_param: cloud_env }
1551             __external_dns__: { get_param: external_dns }
1552             __vnfsdk_branch__: { get_param: vnfsdk_branch }
1553             __msb_docker__: { get_param: msb_docker }
1554             __mvim_docker__: { get_param: mvim_docker }
1555             __uui_docker__: { get_param: uui_docker }
1556             __esr_docker__: { get_param: esr_docker }
1557             __vnfsdk_repo__: { get_param: vnfsdk_repo }
1558             __vfc_nokia_docker__: { get_param: vfc_nokia_docker }
1559             __vfc_ztevnfmdriver_docker__: { get_param: vfc_ztevnfmdriver_docker }
1560             __vfc_ztesdncdriver_docker__: { get_param: vfc_ztesdncdriver_docker }
1561             __vfc_vnfres_docker__: { get_param: vfc_vnfres_docker }
1562             __vfc_vnfmgr_docker__: { get_param: vfc_vnfmgr_docker }
1563             __vfc_vnflcm_docker__: { get_param: vfc_vnflcm_docker }
1564             __vfc_resmanagement_docker__: { get_param: vfc_resmanagement_docker }
1565             __vfc_nslcm_docker__: { get_param: vfc_nslcm_docker }
1566             __vfc_huawei_docker__: { get_param: vfc_huawei_docker }
1567             __vfc_jujudriver_docker__: { get_param: vfc_jujudriver_docker }
1568             __vfc_gvnfmdriver_docker__: { get_param: vfc_gvnfmdriver_docker }
1569             __vfc_emsdriver_docker__: { get_param: vfc_emsdriver_docker }
1570             __vfc_catalog_docker__: { get_param: vfc_catalog_docker }
1571             __vfc_wfengine_mgrservice_docker__: { get_param: vfc_wfengine_mgrservice_docker }
1572             __vfc_wfengine_activiti_docker__: { get_param: vfc_wfengine_activiti_docker }
1573           template: |
1574             #!/bin/bash
1575
1576             # Create configuration files
1577             mkdir -p /opt/config
1578             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1579             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1580             echo "__nexus_username__" > /opt/config/nexus_username.txt
1581             echo "__nexus_password__" > /opt/config/nexus_password.txt
1582             echo "__cloud_env__" > /opt/config/cloud_env.txt
1583             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1584             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
1585             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1586             echo "__external_dns__" > /opt/config/external_dns.txt
1587             echo "__vnfsdk_branch__" > /opt/config/vnfsdk_branch.txt
1588             echo "__msb_docker__" > /opt/config/msb_docker.txt
1589             echo "__mvim_docker__" > /opt/config/mvim_docker.txt
1590             echo "__uui_docker__" > /opt/config/uui_docker.txt
1591             echo "__esr_docker__" > /opt/config/esr_docker.txt
1592             echo "__vnfsdk_repo__" > /opt/config/vnfsdk_repo.txt
1593
1594             echo "export NOKIA_DOCKER_VER=__vfc_nokia_docker__" >> /opt/config/vfc_docker.txt
1595             echo "export ZTEVNFMDRIVER_DOCKER_VER=__vfc_ztevnfmdriver_docker__" >> /opt/config/vfc_docker.txt
1596             echo "export ZTESDNCDRIVER_DOCKER_VER=__vfc_ztesdncdriver_docker__" >> /opt/config/vfc_docker.txt
1597             echo "export VNFRES_DOCKER_VER=__vfc_vnfres_docker__" >> /opt/config/vfc_docker.txt
1598             echo "export VNFMGR_DOCKER_VER=__vfc_vnfmgr_docker__" >> /opt/config/vfc_docker.txt
1599             echo "export VNFLCM_DOCKER_VER=__vfc_vnflcm_docker__" >> /opt/config/vfc_docker.txt
1600             echo "export RESMANAGEMENT_DOCKER_VER=__vfc_resmanagement_docker__" >> /opt/config/vfc_docker.txt
1601             echo "export NSLCM_DOCKER_VER=__vfc_nslcm_docker__" >> /opt/config/vfc_docker.txt
1602             echo "export HUAWEI_DOCKER_VER=__vfc_huawei_docker__" >> /opt/config/vfc_docker.txt
1603             echo "export JUJUDRIVER_DOCKER_VER=__vfc_jujudriver_docker__" >> /opt/config/vfc_docker.txt
1604             echo "export GVNFMDRIVER_DOCKER_VER=__vfc_gvnfmdriver_docker__" >> /opt/config/vfc_docker.txt
1605             echo "export EMSDRIVER_DOCKER_VER=__vfc_emsdriver_docker__" >> /opt/config/vfc_docker.txt
1606             echo "export CATALOG_DOCKER_VER=__vfc_catalog_docker__" >> /opt/config/vfc_docker.txt
1607             echo "export MGRSERVICE_DOCKER_VER=__vfc_wfengine_mgrservice_docker__" >> /opt/config/vfc_docker.txt
1608             echo "export ACTIVITI_DOCKER_VER=__vfc_wfengine_activiti_docker__" >> /opt/config/vfc_docker.txt
1609
1610             # Create env file with the IP address of all ONAP components
1611             echo "export AAI_IP1=__aai1_ip_addr__" >> /opt/config/onap_ips.txt
1612             echo "export AAI_IP2=__aai2_ip_addr__" >> /opt/config/onap_ips.txt
1613             echo "export APPC_IP=__appc_ip_addr__" >> /opt/config/onap_ips.txt
1614             echo "export DCAE_IP=__dcae_ip_addr__" >> /opt/config/onap_ips.txt
1615             echo "export SO_IP=__so_ip_addr__" >> /opt/config/onap_ips.txt
1616             echo "export MR_IP=__mr_ip_addr__" >> /opt/config/onap_ips.txt
1617             echo "export POLICY_IP=__policy_ip_addr__" >> /opt/config/onap_ips.txt
1618             echo "export PORTAL_IP=__portal_ip_addr__" >> /opt/config/onap_ips.txt
1619             echo "export ROBOT_IP=__robot_ip_addr__" >> /opt/config/onap_ips.txt
1620             echo "export SDC_IP=__sdc_ip_addr__" >> /opt/config/onap_ips.txt
1621             echo "export SDNC_IP=__sdnc_ip_addr__" >> /opt/config/onap_ips.txt
1622             echo "export VID_IP=__vid_ip_addr__" >> /opt/config/onap_ips.txt
1623             echo "export CLAMP_IP=__clamp_ip_addr__" >> /opt/config/onap_ips.txt
1624             echo "export OPENO_IP=__openo_ip_addr__" >> /opt/config/onap_ips.txt
1625
1626             # Download and run install script
1627             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/openo_install.sh -o /opt/openo_install.sh
1628             cd /opt
1629             chmod +x openo_install.sh
1630             ./openo_install.sh
1631
1632
1633   # DCAE GEN 2 Controller instantiation
1634   dcae_c_private_port:
1635     type: OS::Neutron::Port
1636     properties:
1637       network: { get_resource: oam_onap }
1638       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: dcae_ip_addr }}]
1639       security_groups:
1640       - { get_resource: onap_sg }
1641
1642   dcae_c_floating_ip:
1643     type: OS::Neutron::FloatingIP
1644     properties:
1645       floating_network_id: { get_param: public_net_id }
1646       port_id: { get_resource: dcae_c_private_port }
1647
1648   dcae_c_vm:
1649     type: OS::Nova::Server
1650     properties:
1651       image: { get_param: ubuntu_1604_image }
1652       flavor: { get_param: flavor_small }
1653       name:
1654         str_replace:
1655           template: base-dcae-bootstrap
1656           params:
1657             base: { get_param: vm_base_name }
1658       key_name: { get_resource: vm_key }
1659       networks:
1660         - port: { get_resource: dcae_c_private_port }
1661       #security_groups:
1662       #  - { get_resource: onap_sg }
1663       user_data_format: RAW
1664       user_data:
1665         str_replace:
1666           params:
1667             __rand_str__: { get_resource: random-str }
1668             # repo related
1669             __artifacts_version__: { get_param: artifacts_version }
1670             __docker_version__: { get_param: dcae_docker }
1671             __nexus_repo__: { get_param: nexus_repo }
1672             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1673             __nexus_username__: { get_param: nexus_username }
1674             __nexus_password__: { get_param: nexus_password }
1675             # conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs
1676             __mac_addr__: { get_attr: [dcae_c_private_port, mac_address] }
1677             __dcae_ip_addr__: { get_param: dcae_ip_addr }
1678             __dcae_float_ip__: { get_attr: [dcae_c_floating_ip, floating_ip_address] }
1679             __dns_ip_addr__: { get_param: dns_ip_addr }
1680             __external_dns__: { get_param: external_dns }
1681             __dns_forwarder__: { get_param: dns_forwarder }
1682             __dcae_domain__: { get_param: dcae_domain }
1683             # conf for VMs DCAE is to bringup
1684             __openstack_keystone_url__: { get_param: keystone_url }
1685             __dcae_keystone_url__: { get_param: dcae_keystone_url }
1686             __dcaeos_cloud_env__: { get_param: cloud_env }
1687             __dcaeos_keystone_url__: { get_param: dcae_keystone_url }
1688             __dcaeos_region__: { get_param: openstack_region }
1689             __dcaeos_tenant_id__: { get_param: openstack_tenant_id }
1690             __dcaeos_tenant_name__: { get_param: openstack_tenant_name }
1691             __dcaeos_security_group__:
1692               str_replace:
1693                 template: 'onap_sg_rand'
1694                 params:
1695                   rand: { get_resource: random-str }
1696             #__dcaeos_security_group__: { get_attr: [onap_sg, name] }
1697             __dcaeos_username__: { get_param: openstack_username }
1698             __dcaeos_password__: { get_param: openstack_api_key }
1699             __dcaeos_key_name__: { get_resource: vm_key }
1700             __dcaeos_public_key__: { get_param: dcae_public_key }
1701             __dcaeos_private_key__: { get_param: dcae_private_key }
1702             __dcaeos_private_network_name__: { get_attr: [oam_onap, name] }
1703             __dcaeos_public_network_name__: { get_param: public_net_name }
1704             __dcaeos_ubuntu_1604_image__: { get_param: ubuntu_1604_image }
1705             __dcaeos_centos_7_image__: { get_param: dcae_centos_7_image }
1706             __dcaeos_flavor_id__: { get_param: flavor_medium }
1707             __dcaeos_flavor_id_cdap__: { get_param: flavor_large }
1708             __dcaeos_dnsaas_config_enabled__: { get_param: dnsaas_config_enabled }
1709             __dcaeos_dnsaas_region__: { get_param: dnsaas_region }
1710             __dcaeos_dnsaas_keystone_url__: { get_param: dnsaas_keystone_url }
1711             __dnsaas_tenant_name__: { get_param: dnsaas_tenant_name }
1712             __dcaeos_dnsaas_username__: { get_param: dnsaas_username }
1713             __dcaeos_dnsaas_password__: { get_param: dnsaas_password }
1714             # fixed private IPs
1715             __mr_ip_addr__: { get_param: mr_ip_addr }
1716             __policy_ip_addr__: { get_param: policy_ip_addr }
1717             __sdc_ip_addr__: { get_param: sdc_ip_addr }
1718             __openo_ip_addr__: { get_param: openo_ip_addr }
1719             __aai1_ip_addr__: { get_param: aai1_ip_addr }
1720             __aai2_ip_addr__: { get_param: aai2_ip_addr }
1721             # floating IPs
1722             __dns_floating_ip_addr__: { get_attr: [dns_floating_ip, floating_ip_address] }
1723             __aai1_floating_ip_addr__: { get_attr: [aai1_floating_ip, floating_ip_address] }
1724             __aai2_floating_ip_addr__: { get_attr: [aai2_floating_ip, floating_ip_address] }
1725             __mrouter_floating_ip_addr__: { get_attr: [mrouter_floating_ip, floating_ip_address] }
1726             __sdc_floating_ip_addr__: { get_attr: [sdc_floating_ip, floating_ip_address] }
1727             __policy_floating_ip_addr__: { get_attr: [policy_floating_ip, floating_ip_address] }
1728             __openo_floating_ip_addr__: { get_attr: [openo_floating_ip, floating_ip_address] }
1729             __dcae_c_floating_ip_addr__: { get_attr: [dcae_c_floating_ip, floating_ip_address] }
1730
1731           template: |
1732             #!/bin/bash
1733
1734             # Create configuration files
1735             mkdir -p /opt/config
1736             echo "__rand_str__" > /opt/config/dcae_zone.txt
1737             echo "__rand_str__" > /opt/config/rand_str.txt
1738             # repo related
1739             echo "__docker_version__" > /opt/config/docker_version.txt
1740             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1741             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1742             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1743             echo "__nexus_username__" > /opt/config/nexus_username.txt
1744             echo "__nexus_password__" > /opt/config/nexus_password.txt
1745             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1746             # conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs
1747             echo "__mac_addr__" > /opt/config/mac_addr.txt
1748             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
1749             echo "__dcae_float_ip__" > /opt/config/dcae_float_ip.txt
1750             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1751             echo "__external_dns__" > /opt/config/external_dns.txt
1752             echo "__dns_forwarder__" > /opt/config/dns_forwarder.txt
1753             echo "__dcae_domain__" > /opt/config/dcae_domain.txt
1754             # conf for the OpenStack env where DCAE is deployed
1755             echo "__openstack_keystone_url__" > /opt/config/openstack_keystone_url.txt
1756             echo "__dcaeos_cloud_env__" > /opt/config/cloud_env.txt
1757             echo "__dcaeos_keystone_url__" > /opt/config/keystone_url.txt
1758             echo "__dcaeos_region__" > /opt/config/openstack_region.txt
1759             echo "__dcaeos_tenant_id__" > /opt/config/tenant_id.txt
1760             echo "__dcaeos_tenant_name__" > /opt/config/tenant_name.txt
1761             echo "__dcaeos_username__" > /opt/config/openstack_user.txt
1762             echo "__dcaeos_password__" > /opt/config/openstack_password.txt
1763             echo "__dcaeos_key_name__" > /opt/config/key_name.txt
1764             echo "__dcaeos_public_key__" > /opt/config/pub_key.txt
1765             echo "__dcaeos_private_key__" > /opt/config/priv_key
1766             echo "__dcaeos_private_network_name__" > /opt/config/openstack_private_network_name.txt
1767             echo "__dcaeos_public_network_name__" > /opt/config/public_net_name.txt
1768             echo "__dcaeos_public_network_name__" > /opt/config/public_net_id.txt
1769             echo "__dcaeos_ubuntu_1604_image__" > /opt/config/ubuntu_1604_image.txt
1770             echo "__dcaeos_centos_7_image__" > /opt/config/centos_7_image.txt
1771             echo "__dcaeos_security_group__" > /opt/config/security_group.txt
1772             echo "__dcaeos_flavor_id__" > /opt/config/flavor_id.txt
1773             echo "__dcaeos_flavor_id_cdap__" > /opt/config/flavor_id_cdap.txt
1774             echo "__dcaeos_dnsaas_config_enabled__" > /opt/config/dnsaas_config_enabled.txt
1775             echo "__dcaeos_dnsaas_region__" > /opt/config/dnsaas_region.txt
1776             echo "__dcaeos_dnsaas_keystone_url__" > /opt/config/dnsaas_keystone_url.txt
1777             echo "__dnsaas_tenant_name__" > /opt/config/dnsaas_tenant_name.txt
1778             echo "__dcaeos_dnsaas_username__" > /opt/config/dnsaas_username.txt
1779             echo "__dcaeos_dnsaas_password__" > /opt/config/dnsaas_password.txt
1780             # fixed private IP addresses of other ONAP components
1781             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
1782             echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt
1783             echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
1784             echo "__openo_ip_addr__" > /opt/config/openo_ip_addr.txt
1785             echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
1786             echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
1787             # floating IPs
1788             echo "__dns_floating_ip_addr__" > /opt/config/dns_floating_ip_addr.txt
1789             echo "__aai1_floating_ip_addr__" > /opt/config/aai1_floating_ip_addr.txt
1790             echo "__aai2_floating_ip_addr__" > /opt/config/aai2_floating_ip_addr.txt
1791             echo "__mrouter_floating_ip_addr__" > /opt/config/mrouter_floating_ip_addr.txt
1792             echo "__sdc_floating_ip_addr__" > /opt/config/sdc_floating_ip_addr.txt
1793             echo "__policy_floating_ip_addr__" > /opt/config/policy_floating_ip_addr.txt
1794             echo "__openo_floating_ip_addr__" > /opt/config/openo_floating_ip_addr.txt
1795             echo "__dcae_c_floating_ip_addr__" > /opt/config/dcae_c_floating_ip_addr.txt
1796
1797             # Download and run install script
1798             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/dcae2_install.sh -o /opt/dcae2_install.sh
1799             cd /opt
1800             chmod +x dcae2_install.sh
1801             ./dcae2_install.sh > /tmp/dcae2_install.log 2>&1
1802
1803
1804   # MUSIC instantiation
1805   music_private_port:
1806     type: OS::Neutron::Port
1807     properties:
1808       network: { get_resource: oam_onap }
1809       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: music_ip_addr }}]
1810       security_groups:
1811       - { get_resource: onap_sg }
1812
1813   music_floating_ip:
1814     type: OS::Neutron::FloatingIP
1815     properties:
1816       floating_network_id: { get_param: public_net_id }
1817       port_id: { get_resource: music_private_port }
1818
1819   music_vm:
1820     type: OS::Nova::Server
1821     properties:
1822       image: { get_param: ubuntu_1404_image }
1823       flavor: { get_param: flavor_large }
1824       name:
1825         str_replace:
1826           template: base-music
1827           params:
1828             base: { get_param: vm_base_name }
1829       key_name: { get_resource: vm_key }
1830       networks:
1831         - port: { get_resource: music_private_port }
1832       user_data_format: RAW
1833       user_data:
1834         str_replace:
1835           params:
1836             __nexus_repo__: { get_param: nexus_repo }
1837             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1838             __nexus_username__: { get_param: nexus_username }
1839             __nexus_password__: { get_param: nexus_password }
1840             __artifacts_version__: { get_param: artifacts_version }
1841             __dns_ip_addr__: { get_param: dns_ip_addr }
1842             __docker_version__: { get_param: music_docker }
1843             __cloud_env__: { get_param: cloud_env }
1844             __external_dns__: { get_param: external_dns }
1845           template: |
1846             #!/bin/bash
1847
1848             # Create configuration files
1849             mkdir -p /opt/config
1850             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1851             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1852             echo "__nexus_username__" > /opt/config/nexus_username.txt
1853             echo "__nexus_password__" > /opt/config/nexus_password.txt
1854             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1855             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1856             echo "__docker_version__" > /opt/config/docker_version.txt
1857             echo "__cloud_env__" > /opt/config/cloud_env.txt
1858             echo "__external_dns__" > /opt/config/external_dns.txt
1859
1860             # Download and run install script
1861             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/music_install.sh -o /opt/music_install.sh
1862             cd /opt
1863             chmod +x music_install.sh
1864             ./music_install.sh
1865
1866
1867   # OOF instantiation
1868   oof_private_port:
1869     type: OS::Neutron::Port
1870     properties:
1871       network: { get_resource: oam_onap }
1872       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: oof_ip_addr }}]
1873       security_groups:
1874       - { get_resource: onap_sg }
1875
1876   oof_floating_ip:
1877     type: OS::Neutron::FloatingIP
1878     properties:
1879       floating_network_id: { get_param: public_net_id }
1880       port_id: { get_resource: oof_private_port }
1881
1882   oof_vm:
1883     type: OS::Nova::Server
1884     properties:
1885       image: { get_param: ubuntu_1404_image }
1886       flavor: { get_param: flavor_medium }
1887       name:
1888         str_replace:
1889           template: base-oof
1890           params:
1891             base: { get_param: vm_base_name }
1892       key_name: { get_resource: vm_key }
1893       networks:
1894         - port: { get_resource: oof_private_port }
1895       user_data_format: RAW
1896       user_data:
1897         str_replace:
1898           params:
1899             __nexus_repo__: { get_param: nexus_repo }
1900             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1901             __nexus_username__: { get_param: nexus_username }
1902             __nexus_password__: { get_param: nexus_password }
1903             __artifacts_version__: { get_param: artifacts_version }
1904             __dns_ip_addr__: { get_param: dns_ip_addr }
1905             __docker_version__: { get_param: oof_docker }
1906             __cloud_env__: { get_param: cloud_env }
1907             __external_dns__: { get_param: external_dns }
1908           template: |
1909             #!/bin/bash
1910
1911             # Create configuration files
1912             mkdir -p /opt/config
1913             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1914             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1915             echo "__nexus_username__" > /opt/config/nexus_username.txt
1916             echo "__nexus_password__" > /opt/config/nexus_password.txt
1917             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1918             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1919             echo "__docker_version__" > /opt/config/docker_version.txt
1920             echo "__cloud_env__" > /opt/config/cloud_env.txt
1921             echo "__external_dns__" > /opt/config/external_dns.txt
1922
1923             # Download and run install script
1924             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/oof_install.sh -o /opt/oof_install.sh
1925             cd /opt
1926             chmod +x oof_install.sh
1927             ./oof_install.sh
1928
1929
1930   # AAF instantiation
1931   aaf_private_port:
1932     type: OS::Neutron::Port
1933     properties:
1934       network: { get_resource: oam_onap }
1935       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: aaf_ip_addr }}]
1936       security_groups:
1937       - { get_resource: onap_sg }
1938
1939   aaf_floating_ip:
1940     type: OS::Neutron::FloatingIP
1941     properties:
1942       floating_network_id: { get_param: public_net_id }
1943       port_id: { get_resource: aaf_private_port }
1944
1945   aaf_vm:
1946     type: OS::Nova::Server
1947     properties:
1948       image: { get_param: ubuntu_1404_image }
1949       flavor: { get_param: flavor_medium }
1950       name:
1951         str_replace:
1952           template: base-aaf
1953           params:
1954             base: { get_param: vm_base_name }
1955       key_name: { get_resource: vm_key }
1956       networks:
1957         - port: { get_resource: aaf_private_port }
1958       user_data_format: RAW
1959       user_data:
1960         str_replace:
1961           params:
1962             __nexus_repo__: { get_param: nexus_repo }
1963             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1964             __nexus_username__: { get_param: nexus_username }
1965             __nexus_password__: { get_param: nexus_password }
1966             __artifacts_version__: { get_param: artifacts_version }
1967             __dns_ip_addr__: { get_param: dns_ip_addr }
1968             __docker_version__: { get_param: aaf_docker }
1969             __cloud_env__: { get_param: cloud_env }
1970             __external_dns__: { get_param: external_dns }
1971           template: |
1972             #!/bin/bash
1973
1974             # Create configuration files
1975             mkdir -p /opt/config
1976             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1977             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1978             echo "__nexus_username__" > /opt/config/nexus_username.txt
1979             echo "__nexus_password__" > /opt/config/nexus_password.txt
1980             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1981             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1982             echo "__docker_version__" > /opt/config/docker_version.txt
1983             echo "__cloud_env__" > /opt/config/cloud_env.txt
1984             echo "__external_dns__" > /opt/config/external_dns.txt
1985
1986             # Download and run install script
1987             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/aaf_install.sh -o /opt/aaf_install.sh
1988             cd /opt
1989             chmod +x aaf_install.sh
1990             ./aaf_install.sh