Add skeleton for new VMs in Heat
[demo.git] / heat / ONAP / onap_openstack.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_xlarge }
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_xlarge }
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_large }
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_large }
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_medium }
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             __music_ip_addr__: { get_param: music_ip_addr }
929             __oof_ip_addr__: { get_param: oof_ip_addr }
930             __aaf_ip_addr__: { get_param: aaf_ip_addr }
931             __external_dns__: { get_param: external_dns }
932             __ubuntu_1404_image__: { get_param: ubuntu_1404_image }
933             __ubuntu_1604_image__: { get_param: ubuntu_1604_image }
934             __vm_flavor__: { get_param: flavor_medium }
935             __public_net_id__: { get_param: public_net_id }
936             __script_version__: { get_param: artifacts_version }
937             __robot_repo__: { get_param: robot_repo }
938             __docker_version__: { get_param: robot_docker }
939           template: |
940             #!/bin/bash
941
942             # Create configuration files
943             mkdir -p /opt/config
944             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
945             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
946             echo "__nexus_username__" > /opt/config/nexus_username.txt
947             echo "__nexus_password__" > /opt/config/nexus_password.txt
948             echo "__network_name__" > /opt/config/network.txt
949             echo "__openstack_username__" > /opt/config/openstack_username.txt
950             echo "__openstack_api_key__" > /opt/config/openstack_password.txt
951             echo "__openstack_tenant_id__" > /opt/config/openstack_tenant_id.txt
952             echo "__openstack_region__" > /opt/config/region.txt
953             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
954             echo "__docker_version__" > /opt/config/docker_version.txt
955             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
956             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
957             echo "__keystone_url__" > /opt/config/keystone.txt
958             echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
959             echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
960             echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
961             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
962             echo "__so_ip_addr__" > /opt/config/so_ip_addr.txt
963             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
964             echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt
965             echo "__portal_ip_addr__" > /opt/config/portal_ip_addr.txt
966             echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
967             echo "__sdnc_ip_addr__" > /opt/config/sdnc_ip_addr.txt
968             echo "__vid_ip_addr__" > /opt/config/vid_ip_addr.txt
969             echo "__clamp_ip_addr__" > /opt/config/clamp_ip_addr.txt
970             echo "__openo_ip_addr__" > /opt/config/openo_ip_addr.txt
971             echo "__music_ip_addr__" > /opt/config/music_ip_addr.txt
972             echo "__oof_ip_addr__" > /opt/config/oof_ip_addr.txt
973             echo "__aaf_ip_addr__" > /opt/config/aaf_ip_addr.txt
974             echo "__cloud_env__" > /opt/config/cloud_env.txt
975             echo "__external_dns__" > /opt/config/external_dns.txt
976             echo "__vm_image_name__" > /opt/config/vm_image_name.txt
977             echo "__ubuntu_1404_image__" > /opt/config/ubuntu_1404_image.txt
978             echo "__ubuntu_1604_image__" > /opt/config/ubuntu_1604_image.txt
979             echo "__script_version__" > /opt/config/script_version.txt
980             echo "__public_net_id__" > /opt/config/public_net_id.txt
981             echo "__robot_repo__" > /opt/config/remote_repo.txt
982
983             # Download and run install script
984             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/robot_install.sh -o /opt/robot_install.sh
985             cd /opt
986             chmod +x robot_install.sh
987             ./robot_install.sh
988
989
990   # VID instantiation
991   vid_private_port:
992     type: OS::Neutron::Port
993     properties:
994       network: { get_resource: oam_onap }
995       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: vid_ip_addr }}]
996       security_groups:
997       - { get_resource: onap_sg }
998
999   vid_floating_ip:
1000     type: OS::Neutron::FloatingIP
1001     properties:
1002       floating_network_id: { get_param: public_net_id }
1003       port_id: { get_resource: vid_private_port }
1004
1005   vid_vm:
1006     type: OS::Nova::Server
1007     properties:
1008       image: { get_param: ubuntu_1404_image }
1009       flavor: { get_param: flavor_medium }
1010       name:
1011         str_replace:
1012           template: base-vid
1013           params:
1014             base: { get_param: vm_base_name }
1015       key_name: { get_resource: vm_key }
1016       networks:
1017         - port: { get_resource: vid_private_port }
1018       user_data_format: RAW
1019       user_data:
1020         str_replace:
1021           params:
1022             __nexus_repo__: { get_param: nexus_repo }
1023             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1024             __nexus_username__: { get_param: nexus_username }
1025             __nexus_password__: { get_param: nexus_password }
1026             __artifacts_version__: { get_param: artifacts_version }
1027             __dns_ip_addr__: { get_param: dns_ip_addr }
1028             __docker_version__: { get_param: vid_docker }
1029             __gerrit_branch__: { get_param: vid_branch }
1030             __cloud_env__: { get_param: cloud_env }
1031             __external_dns__: { get_param: external_dns }
1032             __vid_repo__: { get_param: vid_repo }
1033           template: |
1034             #!/bin/bash
1035
1036             # Create configuration files
1037             mkdir -p /opt/config
1038             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1039             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1040             echo "__nexus_username__" > /opt/config/nexus_username.txt
1041             echo "__nexus_password__" > /opt/config/nexus_password.txt
1042             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1043             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1044             echo "__docker_version__" > /opt/config/docker_version.txt
1045             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1046             echo "__cloud_env__" > /opt/config/cloud_env.txt
1047             echo "__external_dns__" > /opt/config/external_dns.txt
1048             echo "__vid_repo__" > /opt/config/remote_repo.txt
1049
1050             # Download and run install script
1051             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/vid_install.sh -o /opt/vid_install.sh
1052             cd /opt
1053             chmod +x vid_install.sh
1054             ./vid_install.sh
1055
1056
1057   # SDN-C instantiation
1058   sdnc_private_port:
1059     type: OS::Neutron::Port
1060     properties:
1061       network: { get_resource: oam_onap }
1062       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: sdnc_ip_addr }}]
1063       security_groups:
1064       - { get_resource: onap_sg }
1065
1066   sdnc_floating_ip:
1067     type: OS::Neutron::FloatingIP
1068     properties:
1069       floating_network_id: { get_param: public_net_id }
1070       port_id: { get_resource: sdnc_private_port }
1071
1072   sdnc_vm:
1073     type: OS::Nova::Server
1074     properties:
1075       image: { get_param: ubuntu_1404_image }
1076       flavor: { get_param: flavor_large }
1077       name:
1078         str_replace:
1079           template: base-sdnc
1080           params:
1081             base: { get_param: vm_base_name }
1082       key_name: { get_resource: vm_key }
1083       networks:
1084         - port: { get_resource: sdnc_private_port }
1085       user_data_format: RAW
1086       user_data:
1087         str_replace:
1088           params:
1089             __nexus_repo__: { get_param: nexus_repo }
1090             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1091             __nexus_username__: { get_param: nexus_username }
1092             __nexus_password__: { get_param: nexus_password }
1093             __artifacts_version__: { get_param: artifacts_version }
1094             __dns_ip_addr__: { get_param: dns_ip_addr }
1095             __docker_version__: { get_param: sdnc_docker }
1096             __gerrit_branch__: { get_param: sdnc_branch }
1097             __dgbuilder_docker__: { get_param: dgbuilder_docker }
1098             __cloud_env__: { get_param: cloud_env }
1099             __external_dns__: { get_param: external_dns }
1100             __sdnc_repo__: { get_param: sdnc_repo }
1101           template: |
1102             #!/bin/bash
1103
1104             # Create configuration files
1105             mkdir -p /opt/config
1106             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1107             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1108             echo "__nexus_username__" > /opt/config/nexus_username.txt
1109             echo "__nexus_password__" > /opt/config/nexus_password.txt
1110             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1111             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1112             echo "__docker_version__" > /opt/config/docker_version.txt
1113             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1114             echo "__dgbuilder_docker__" > /opt/config/dgbuilder_version.txt
1115             echo "__cloud_env__" > /opt/config/cloud_env.txt
1116             echo "__external_dns__" > /opt/config/external_dns.txt
1117             echo "__sdnc_repo__" > /opt/config/remote_repo.txt
1118
1119             # Download and run install script
1120             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/sdnc_install.sh -o /opt/sdnc_install.sh
1121             cd /opt
1122             chmod +x sdnc_install.sh
1123             ./sdnc_install.sh
1124
1125
1126   # SDC instantiation
1127   sdc_private_port:
1128     type: OS::Neutron::Port
1129     properties:
1130       network: { get_resource: oam_onap }
1131       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: sdc_ip_addr }}]
1132       security_groups:
1133       - { get_resource: onap_sg }
1134
1135   sdc_floating_ip:
1136     type: OS::Neutron::FloatingIP
1137     properties:
1138       floating_network_id: { get_param: public_net_id }
1139       port_id: { get_resource: sdc_private_port }
1140
1141   sdc_volume_data:
1142     type: OS::Cinder::Volume
1143     properties:
1144       name: vol1-sdc-data
1145       size: 100
1146
1147   sdc_vm:
1148     type: OS::Nova::Server
1149     properties:
1150       image: { get_param: ubuntu_1604_image }
1151       flavor: { get_param: flavor_xlarge }
1152       name:
1153         str_replace:
1154           template: base-sdc
1155           params:
1156             base: { get_param: vm_base_name }
1157       key_name: { get_resource: vm_key }
1158       networks:
1159         - port: { get_resource: sdc_private_port }
1160       block_device_mapping:
1161         - device_name: /dev/vdb
1162           volume_id: {get_resource: sdc_volume_data}
1163       user_data_format: RAW
1164       user_data:
1165         str_replace:
1166           params:
1167             __nexus_repo__: { get_param: nexus_repo }
1168             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1169             __nexus_username__: { get_param: nexus_username }
1170             __nexus_password__: { get_param: nexus_password }
1171             __env_name__: { get_param: dmaap_topic }
1172             __artifacts_version__: { get_param: artifacts_version }
1173             __dns_ip_addr__: { get_param: dns_ip_addr }
1174             __mr_ip_addr__: { get_param: mr_ip_addr }
1175             __private_ip__: { get_param: sdc_ip_addr }
1176             __docker_version__: { get_param: sdc_docker }
1177             __gerrit_branch__: { get_param: sdc_branch }
1178             __cloud_env__: { get_param: cloud_env }
1179             __external_dns__: { get_param: external_dns }
1180             __sdc_repo__: { get_param: sdc_repo }
1181           template: |
1182             #!/bin/bash
1183
1184             # Create configuration files
1185             mkdir -p /opt/config
1186             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1187             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1188             echo "__nexus_username__" > /opt/config/nexus_username.txt
1189             echo "__nexus_password__" > /opt/config/nexus_password.txt
1190             echo "__env_name__" > /opt/config/env_name.txt
1191             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
1192             echo "__private_ip__" > /opt/config/private_ip.txt
1193             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1194             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1195             echo "__docker_version__" > /opt/config/docker_version.txt
1196             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1197             echo "__cloud_env__" > /opt/config/cloud_env.txt
1198             echo "__external_dns__" > /opt/config/external_dns.txt
1199             echo "__sdc_repo__" > /opt/config/remote_repo.txt
1200
1201             # Download and run install script
1202             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/sdc_install.sh -o /opt/sdc_install.sh
1203             cd /opt
1204             chmod +x sdc_install.sh
1205             ./sdc_install.sh
1206
1207
1208   # PORTAL instantiation
1209   portal_private_port:
1210     type: OS::Neutron::Port
1211     properties:
1212       network: { get_resource: oam_onap }
1213       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: portal_ip_addr }}]
1214       security_groups:
1215       - { get_resource: onap_sg }
1216
1217   portal_floating_ip:
1218     type: OS::Neutron::FloatingIP
1219     properties:
1220       floating_network_id: { get_param: public_net_id }
1221       port_id: { get_resource: portal_private_port }
1222
1223   portal_vm:
1224     type: OS::Nova::Server
1225     properties:
1226       image: { get_param: ubuntu_1404_image }
1227       flavor: { get_param: flavor_large }
1228       name:
1229         str_replace:
1230           template: base-portal
1231           params:
1232             base: { get_param: vm_base_name }
1233       key_name: { get_resource: vm_key }
1234       networks:
1235         - port: { get_resource: portal_private_port }
1236       user_data_format: RAW
1237       user_data:
1238         str_replace:
1239           params:
1240             __nexus_repo__: { get_param: nexus_repo }
1241             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1242             __nexus_username__: { get_param: nexus_username }
1243             __nexus_password__: { get_param: nexus_password }
1244             __artifacts_version__: { get_param: artifacts_version }
1245             __dns_ip_addr__: { get_param: dns_ip_addr }
1246             __public_ip__: { get_attr: [portal_floating_ip, floating_ip_address] }
1247             __docker_version__: { get_param: portal_docker }
1248             __gerrit_branch__: { get_param: portal_branch }
1249             __cli_docker__: { get_param: cli_docker }
1250             __cloud_env__: { get_param: cloud_env }
1251             __external_dns__: { get_param: external_dns }
1252             __portal_repo__: { get_param: portal_repo }
1253           template: |
1254             #!/bin/bash
1255
1256             # Create configuration files
1257             mkdir -p /opt/config
1258             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1259             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1260             echo "__nexus_username__" > /opt/config/nexus_username.txt
1261             echo "__nexus_password__" > /opt/config/nexus_password.txt
1262             echo "__public_ip__" > /opt/config/public_ip.txt
1263             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1264             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1265             echo "__docker_version__" > /opt/config/docker_version.txt
1266             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1267             echo "__cli_docker__" > /opt/config/cli_docker_version.txt
1268             echo "__cloud_env__" > /opt/config/cloud_env.txt
1269             echo "__external_dns__" > /opt/config/external_dns.txt
1270             echo "__portal_repo__" > /opt/config/remote_repo.txt
1271
1272             # Download and run install script
1273             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/portal_install.sh -o /opt/portal_install.sh
1274             cd /opt
1275             chmod +x portal_install.sh
1276             ./portal_install.sh
1277
1278
1279   # Policy Engine instantiation
1280   policy_private_port:
1281     type: OS::Neutron::Port
1282     properties:
1283       network: { get_resource: oam_onap }
1284       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: policy_ip_addr }}]
1285       security_groups:
1286       - { get_resource: onap_sg }
1287
1288   policy_floating_ip:
1289     type: OS::Neutron::FloatingIP
1290     properties:
1291       floating_network_id: { get_param: public_net_id }
1292       port_id: { get_resource: policy_private_port }
1293
1294   policy_vm:
1295     type: OS::Nova::Server
1296     properties:
1297       image: { get_param: ubuntu_1404_image }
1298       flavor: { get_param: flavor_xlarge }
1299       name:
1300         str_replace:
1301           template: base-policy
1302           params:
1303             base: { get_param: vm_base_name }
1304       key_name: { get_resource: vm_key }
1305       networks:
1306         - port: { get_resource: policy_private_port }
1307       user_data_format: RAW
1308       user_data:
1309         str_replace:
1310           params:
1311             __nexus_repo__: { get_param: nexus_repo }
1312             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1313             __nexus_username__: { get_param: nexus_username }
1314             __nexus_password__: { get_param: nexus_password }
1315             __artifacts_version__: { get_param: artifacts_version }
1316             __dns_ip_addr__: { get_param: dns_ip_addr }
1317             __public_ip__: { get_attr: [policy_floating_ip, floating_ip_address] }
1318             __docker_version__: { get_param: policy_docker }
1319             __gerrit_branch__: { get_param: policy_branch }
1320             __cloud_env__: { get_param: cloud_env }
1321             __external_dns__: { get_param: external_dns }
1322             __policy_repo__: { get_param: policy_repo }
1323           template: |
1324             #!/bin/bash
1325
1326             # Create configuration files
1327             mkdir -p /opt/config
1328             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1329             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1330             echo "__nexus_username__" > /opt/config/nexus_username.txt
1331             echo "__nexus_password__" > /opt/config/nexus_password.txt
1332             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1333             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1334             echo "__public_ip__" > /opt/config/public_ip.txt
1335             echo "__docker_version__" > /opt/config/docker_version.txt
1336             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1337             echo "__cloud_env__" > /opt/config/cloud_env.txt
1338             echo "__external_dns__" > /opt/config/external_dns.txt
1339             echo "__policy_repo__" > /opt/config/remote_repo.txt
1340
1341             # Download and run install script
1342             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/policy_install.sh -o /opt/policy_install.sh
1343             cd /opt
1344             chmod +x policy_install.sh
1345             ./policy_install.sh
1346
1347
1348   # APP-C instantiation
1349   appc_private_port:
1350     type: OS::Neutron::Port
1351     properties:
1352       network: { get_resource: oam_onap }
1353       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: appc_ip_addr }}]
1354       security_groups:
1355       - { get_resource: onap_sg }
1356
1357   appc_floating_ip:
1358     type: OS::Neutron::FloatingIP
1359     properties:
1360       floating_network_id: { get_param: public_net_id }
1361       port_id: { get_resource: appc_private_port }
1362
1363   appc_vm:
1364     type: OS::Nova::Server
1365     properties:
1366       image: { get_param: ubuntu_1404_image }
1367       flavor: { get_param: flavor_large }
1368       name:
1369         str_replace:
1370           template: base-appc
1371           params:
1372             base: { get_param: vm_base_name }
1373       key_name: { get_resource: vm_key }
1374       networks:
1375         - port: { get_resource: appc_private_port }
1376       user_data_format: RAW
1377       user_data:
1378         str_replace:
1379           params:
1380             __nexus_repo__: { get_param: nexus_repo }
1381             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1382             __nexus_username__: { get_param: nexus_username }
1383             __nexus_password__: { get_param: nexus_password }
1384             __dmaap_topic__: { get_param: dmaap_topic }
1385             __artifacts_version__: { get_param: artifacts_version }
1386             __dns_ip_addr__: { get_param: dns_ip_addr }
1387             __docker_version__: { get_param: appc_docker }
1388             __gerrit_branch__: { get_param: appc_branch }
1389             __dgbuilder_docker__: { get_param: dgbuilder_docker }
1390             __cloud_env__: { get_param: cloud_env }
1391             __external_dns__: { get_param: external_dns }
1392             __appc_repo__: { get_param: appc_repo }
1393           template: |
1394             #!/bin/bash
1395
1396             # Create configuration files
1397             mkdir -p /opt/config
1398             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1399             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1400             echo "__nexus_username__" > /opt/config/nexus_username.txt
1401             echo "__nexus_password__" > /opt/config/nexus_password.txt
1402             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1403             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1404             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
1405             echo "__docker_version__" > /opt/config/docker_version.txt
1406             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1407             echo "__dgbuilder_docker__" > /opt/config/dgbuilder_version.txt
1408             echo "__cloud_env__" > /opt/config/cloud_env.txt
1409             echo "__external_dns__" > /opt/config/external_dns.txt
1410             echo "__appc_repo__" > /opt/config/remote_repo.txt
1411
1412             # Download and run install script
1413             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/appc_install.sh -o /opt/appc_install.sh
1414             cd /opt
1415             chmod +x appc_install.sh
1416             ./appc_install.sh
1417
1418
1419   # CLAMP instantiation
1420   clamp_private_port:
1421     type: OS::Neutron::Port
1422     properties:
1423       network: { get_resource: oam_onap }
1424       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: clamp_ip_addr }}]
1425       security_groups:
1426       - { get_resource: onap_sg }
1427
1428   clamp_floating_ip:
1429     type: OS::Neutron::FloatingIP
1430     properties:
1431       floating_network_id: { get_param: public_net_id }
1432       port_id: { get_resource: clamp_private_port }
1433
1434   clamp_vm:
1435     type: OS::Nova::Server
1436     properties:
1437       image: { get_param: ubuntu_1604_image }
1438       flavor: { get_param: flavor_medium }
1439       name:
1440         str_replace:
1441           template: base-clamp
1442           params:
1443             base: { get_param: vm_base_name }
1444       key_name: { get_resource: vm_key }
1445       networks:
1446         - port: { get_resource: clamp_private_port }
1447       user_data_format: RAW
1448       user_data:
1449         str_replace:
1450           params:
1451             __nexus_repo__: { get_param: nexus_repo }
1452             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1453             __nexus_username__: { get_param: nexus_username }
1454             __nexus_password__: { get_param: nexus_password }
1455             __openstack_username__: { get_param: openstack_username }
1456             __openstack_tenant_id__: { get_param: openstack_tenant_id }
1457             __openstack_api_key__: { get_param: openstack_api_key }
1458             __openstack_region__: { get_param: openstack_region }
1459             __keystone_url__: { get_param: keystone_url }
1460             __dmaap_topic__: { get_param: dmaap_topic }
1461             __artifacts_version__: { get_param: artifacts_version }
1462             __dns_ip_addr__: { get_param: dns_ip_addr }
1463             __docker_version__: { get_param: clamp_docker }
1464             __gerrit_branch__: { get_param: clamp_branch }
1465             __cloud_env__: { get_param: cloud_env }
1466             __external_dns__: { get_param: external_dns }
1467             __clamp_repo__: { get_param: clamp_repo }
1468           template: |
1469             #!/bin/bash
1470
1471             # Create configuration files
1472             mkdir -p /opt/config
1473             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1474             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1475             echo "__nexus_username__" > /opt/config/nexus_username.txt
1476             echo "__nexus_password__" > /opt/config/nexus_password.txt
1477             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1478             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1479             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
1480             echo "__openstack_username__" > /opt/config/openstack_username.txt
1481             echo "__openstack_tenant_id__" > /opt/config/tenant_id.txt
1482             echo "__openstack_api_key__" > /opt/config/openstack_api_key.txt
1483             echo "__openstack_region__" > /opt/config/openstack_region.txt
1484             echo "__keystone_url__" > /opt/config/keystone.txt
1485             echo "__docker_version__" > /opt/config/docker_version.txt
1486             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1487             echo "__cloud_env__" > /opt/config/cloud_env.txt
1488             echo "__external_dns__" > /opt/config/external_dns.txt
1489             echo "__clamp_repo__" > /opt/config/remote_repo.txt
1490
1491             # Download and run install script
1492             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/clamp_install.sh -o /opt/clamp_install.sh
1493             cd /opt
1494             chmod +x clamp_install.sh
1495             ./clamp_install.sh
1496
1497
1498   # OPEN-O VM instantiation
1499   openo_private_port:
1500     type: OS::Neutron::Port
1501     properties:
1502       network: { get_resource: oam_onap }
1503       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: openo_ip_addr }}]
1504       security_groups:
1505       - { get_resource: onap_sg }
1506
1507   openo_floating_ip:
1508     type: OS::Neutron::FloatingIP
1509     properties:
1510       floating_network_id: { get_param: public_net_id }
1511       port_id: { get_resource: openo_private_port }
1512
1513   openo_vm:
1514     type: OS::Nova::Server
1515     properties:
1516       image: { get_param: ubuntu_1604_image }
1517       flavor: { get_param: flavor_xxlarge }
1518       name:
1519         str_replace:
1520           template: base-multi-service
1521           params:
1522             base: { get_param: vm_base_name }
1523       key_name: { get_resource: vm_key }
1524       networks:
1525         - port: { get_resource: openo_private_port }
1526       user_data_format: RAW
1527       user_data:
1528         str_replace:
1529           params:
1530             __nexus_repo__: { get_param: nexus_repo }
1531             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1532             __nexus_username__: { get_param: nexus_username }
1533             __nexus_password__: { get_param: nexus_password }
1534             __artifacts_version__: { get_param: artifacts_version }
1535             __dns_ip_addr__: { get_param: dns_ip_addr }
1536             __oam_network_cidr__: { get_param: oam_network_cidr }
1537             __aai1_ip_addr__: { get_param: aai1_ip_addr }
1538             __aai2_ip_addr__: { get_param: aai2_ip_addr }
1539             __appc_ip_addr__: { get_param: appc_ip_addr }
1540             __dcae_ip_addr__: { get_param: dcae_ip_addr }
1541             __so_ip_addr__: { get_param: so_ip_addr }
1542             __mr_ip_addr__: { get_param: mr_ip_addr }
1543             __policy_ip_addr__: { get_param: policy_ip_addr }
1544             __portal_ip_addr__: { get_param: portal_ip_addr }
1545             __robot_ip_addr__: { get_param: robot_ip_addr }
1546             __sdc_ip_addr__: { get_param: sdc_ip_addr }
1547             __sdnc_ip_addr__: { get_param: sdnc_ip_addr }
1548             __vid_ip_addr__: { get_param: vid_ip_addr }
1549             __clamp_ip_addr__: { get_param: clamp_ip_addr }
1550             __openo_ip_addr__: { get_param: openo_ip_addr }
1551             __cloud_env__: { get_param: cloud_env }
1552             __external_dns__: { get_param: external_dns }
1553             __vnfsdk_branch__: { get_param: vnfsdk_branch }
1554             __msb_docker__: { get_param: msb_docker }
1555             __mvim_docker__: { get_param: mvim_docker }
1556             __uui_docker__: { get_param: uui_docker }
1557             __esr_docker__: { get_param: esr_docker }
1558             __vnfsdk_repo__: { get_param: vnfsdk_repo }
1559             __vfc_nokia_docker__: { get_param: vfc_nokia_docker }
1560             __vfc_ztevnfmdriver_docker__: { get_param: vfc_ztevnfmdriver_docker }
1561             __vfc_ztesdncdriver_docker__: { get_param: vfc_ztesdncdriver_docker }
1562             __vfc_vnfres_docker__: { get_param: vfc_vnfres_docker }
1563             __vfc_vnfmgr_docker__: { get_param: vfc_vnfmgr_docker }
1564             __vfc_vnflcm_docker__: { get_param: vfc_vnflcm_docker }
1565             __vfc_resmanagement_docker__: { get_param: vfc_resmanagement_docker }
1566             __vfc_nslcm_docker__: { get_param: vfc_nslcm_docker }
1567             __vfc_huawei_docker__: { get_param: vfc_huawei_docker }
1568             __vfc_jujudriver_docker__: { get_param: vfc_jujudriver_docker }
1569             __vfc_gvnfmdriver_docker__: { get_param: vfc_gvnfmdriver_docker }
1570             __vfc_emsdriver_docker__: { get_param: vfc_emsdriver_docker }
1571             __vfc_catalog_docker__: { get_param: vfc_catalog_docker }
1572             __vfc_wfengine_mgrservice_docker__: { get_param: vfc_wfengine_mgrservice_docker }
1573             __vfc_wfengine_activiti_docker__: { get_param: vfc_wfengine_activiti_docker }
1574           template: |
1575             #!/bin/bash
1576
1577             # Create configuration files
1578             mkdir -p /opt/config
1579             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1580             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1581             echo "__nexus_username__" > /opt/config/nexus_username.txt
1582             echo "__nexus_password__" > /opt/config/nexus_password.txt
1583             echo "__cloud_env__" > /opt/config/cloud_env.txt
1584             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1585             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
1586             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1587             echo "__external_dns__" > /opt/config/external_dns.txt
1588             echo "__vnfsdk_branch__" > /opt/config/vnfsdk_branch.txt
1589             echo "__msb_docker__" > /opt/config/msb_docker.txt
1590             echo "__mvim_docker__" > /opt/config/mvim_docker.txt
1591             echo "__uui_docker__" > /opt/config/uui_docker.txt
1592             echo "__esr_docker__" > /opt/config/esr_docker.txt
1593             echo "__vnfsdk_repo__" > /opt/config/vnfsdk_repo.txt
1594
1595             echo "export NOKIA_DOCKER_VER=__vfc_nokia_docker__" >> /opt/config/vfc_docker.txt
1596             echo "export ZTEVNFMDRIVER_DOCKER_VER=__vfc_ztevnfmdriver_docker__" >> /opt/config/vfc_docker.txt
1597             echo "export ZTESDNCDRIVER_DOCKER_VER=__vfc_ztesdncdriver_docker__" >> /opt/config/vfc_docker.txt
1598             echo "export VNFRES_DOCKER_VER=__vfc_vnfres_docker__" >> /opt/config/vfc_docker.txt
1599             echo "export VNFMGR_DOCKER_VER=__vfc_vnfmgr_docker__" >> /opt/config/vfc_docker.txt
1600             echo "export VNFLCM_DOCKER_VER=__vfc_vnflcm_docker__" >> /opt/config/vfc_docker.txt
1601             echo "export RESMANAGEMENT_DOCKER_VER=__vfc_resmanagement_docker__" >> /opt/config/vfc_docker.txt
1602             echo "export NSLCM_DOCKER_VER=__vfc_nslcm_docker__" >> /opt/config/vfc_docker.txt
1603             echo "export HUAWEI_DOCKER_VER=__vfc_huawei_docker__" >> /opt/config/vfc_docker.txt
1604             echo "export JUJUDRIVER_DOCKER_VER=__vfc_jujudriver_docker__" >> /opt/config/vfc_docker.txt
1605             echo "export GVNFMDRIVER_DOCKER_VER=__vfc_gvnfmdriver_docker__" >> /opt/config/vfc_docker.txt
1606             echo "export EMSDRIVER_DOCKER_VER=__vfc_emsdriver_docker__" >> /opt/config/vfc_docker.txt
1607             echo "export CATALOG_DOCKER_VER=__vfc_catalog_docker__" >> /opt/config/vfc_docker.txt
1608             echo "export MGRSERVICE_DOCKER_VER=__vfc_wfengine_mgrservice_docker__" >> /opt/config/vfc_docker.txt
1609             echo "export ACTIVITI_DOCKER_VER=__vfc_wfengine_activiti_docker__" >> /opt/config/vfc_docker.txt
1610
1611             # Create env file with the IP address of all ONAP components
1612             echo "export AAI_IP1=__aai1_ip_addr__" >> /opt/config/onap_ips.txt
1613             echo "export AAI_IP2=__aai2_ip_addr__" >> /opt/config/onap_ips.txt
1614             echo "export APPC_IP=__appc_ip_addr__" >> /opt/config/onap_ips.txt
1615             echo "export DCAE_IP=__dcae_ip_addr__" >> /opt/config/onap_ips.txt
1616             echo "export SO_IP=__so_ip_addr__" >> /opt/config/onap_ips.txt
1617             echo "export MR_IP=__mr_ip_addr__" >> /opt/config/onap_ips.txt
1618             echo "export POLICY_IP=__policy_ip_addr__" >> /opt/config/onap_ips.txt
1619             echo "export PORTAL_IP=__portal_ip_addr__" >> /opt/config/onap_ips.txt
1620             echo "export ROBOT_IP=__robot_ip_addr__" >> /opt/config/onap_ips.txt
1621             echo "export SDC_IP=__sdc_ip_addr__" >> /opt/config/onap_ips.txt
1622             echo "export SDNC_IP=__sdnc_ip_addr__" >> /opt/config/onap_ips.txt
1623             echo "export VID_IP=__vid_ip_addr__" >> /opt/config/onap_ips.txt
1624             echo "export CLAMP_IP=__clamp_ip_addr__" >> /opt/config/onap_ips.txt
1625             echo "export OPENO_IP=__openo_ip_addr__" >> /opt/config/onap_ips.txt
1626
1627             # Download and run install script
1628             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/openo_install.sh -o /opt/openo_install.sh
1629             cd /opt
1630             chmod +x openo_install.sh
1631             ./openo_install.sh
1632
1633
1634   # DCAE GEN 2 Controller instantiation
1635   dcae_c_private_port:
1636     type: OS::Neutron::Port
1637     properties:
1638       network: { get_resource: oam_onap }
1639       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: dcae_ip_addr }}]
1640       security_groups:
1641       - { get_resource: onap_sg }
1642
1643   dcae_c_floating_ip:
1644     type: OS::Neutron::FloatingIP
1645     properties:
1646       floating_network_id: { get_param: public_net_id }
1647       port_id: { get_resource: dcae_c_private_port }
1648
1649   dcae_c_vm:
1650     type: OS::Nova::Server
1651     properties:
1652       image: { get_param: ubuntu_1604_image }
1653       flavor: { get_param: flavor_small }
1654       name:
1655         str_replace:
1656           template: base-dcae-bootstrap
1657           params:
1658             base: { get_param: vm_base_name }
1659       key_name: { get_resource: vm_key }
1660       networks:
1661         - port: { get_resource: dcae_c_private_port }
1662       #security_groups:
1663       #  - { get_resource: onap_sg }
1664       user_data_format: RAW
1665       user_data:
1666         str_replace:
1667           params:
1668             __rand_str__: { get_resource: random-str }
1669             # repo related
1670             __artifacts_version__: { get_param: artifacts_version }
1671             __docker_version__: { get_param: dcae_docker }
1672             __nexus_repo__: { get_param: nexus_repo }
1673             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1674             __nexus_username__: { get_param: nexus_username }
1675             __nexus_password__: { get_param: nexus_password }
1676             # conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs
1677             __mac_addr__: { get_attr: [dcae_c_private_port, mac_address] }
1678             __dcae_ip_addr__: { get_param: dcae_ip_addr }
1679             __dcae_float_ip__: { get_attr: [dcae_c_floating_ip, floating_ip_address] }
1680             __dns_ip_addr__: { get_param: dns_ip_addr }
1681             __external_dns__: { get_param: external_dns }
1682             __dns_forwarder__: { get_param: dns_forwarder }
1683             __dcae_domain__: { get_param: dcae_domain }
1684             # conf for VMs DCAE is to bringup
1685             __openstack_keystone_url__: { get_param: keystone_url }
1686             __dcae_keystone_url__: { get_param: dcae_keystone_url }
1687             __dcaeos_cloud_env__: { get_param: cloud_env }
1688             __dcaeos_keystone_url__: { get_param: dcae_keystone_url }
1689             __dcaeos_region__: { get_param: openstack_region }
1690             __dcaeos_tenant_id__: { get_param: openstack_tenant_id }
1691             __dcaeos_tenant_name__: { get_param: openstack_tenant_name }
1692             __dcaeos_security_group__:
1693               str_replace:
1694                 template: 'onap_sg_rand'
1695                 params:
1696                   rand: { get_resource: random-str }
1697             #__dcaeos_security_group__: { get_attr: [onap_sg, name] }
1698             __dcaeos_username__: { get_param: openstack_username }
1699             __dcaeos_password__: { get_param: openstack_api_key }
1700             __dcaeos_key_name__: { get_resource: vm_key }
1701             __dcaeos_public_key__: { get_param: dcae_public_key }
1702             __dcaeos_private_key__: { get_param: dcae_private_key }
1703             __dcaeos_private_network_name__: { get_attr: [oam_onap, name] }
1704             __dcaeos_public_network_name__: { get_param: public_net_name }
1705             __dcaeos_ubuntu_1604_image__: { get_param: ubuntu_1604_image }
1706             __dcaeos_centos_7_image__: { get_param: dcae_centos_7_image }
1707             __dcaeos_flavor_id__: { get_param: flavor_medium }
1708             __dcaeos_flavor_id_cdap__: { get_param: flavor_large }
1709             __dcaeos_dnsaas_config_enabled__: { get_param: dnsaas_config_enabled }
1710             __dcaeos_dnsaas_region__: { get_param: dnsaas_region }
1711             __dcaeos_dnsaas_keystone_url__: { get_param: dnsaas_keystone_url }
1712             __dnsaas_tenant_name__: { get_param: dnsaas_tenant_name }
1713             __dcaeos_dnsaas_username__: { get_param: dnsaas_username }
1714             __dcaeos_dnsaas_password__: { get_param: dnsaas_password }
1715             # fixed private IPs
1716             __mr_ip_addr__: { get_param: mr_ip_addr }
1717             __policy_ip_addr__: { get_param: policy_ip_addr }
1718             __sdc_ip_addr__: { get_param: sdc_ip_addr }
1719             __openo_ip_addr__: { get_param: openo_ip_addr }
1720             __aai1_ip_addr__: { get_param: aai1_ip_addr }
1721             __aai2_ip_addr__: { get_param: aai2_ip_addr }
1722             # floating IPs
1723             __dns_floating_ip_addr__: { get_attr: [dns_floating_ip, floating_ip_address] }
1724             __aai1_floating_ip_addr__: { get_attr: [aai1_floating_ip, floating_ip_address] }
1725             __aai2_floating_ip_addr__: { get_attr: [aai2_floating_ip, floating_ip_address] }
1726             __mrouter_floating_ip_addr__: { get_attr: [mrouter_floating_ip, floating_ip_address] }
1727             __sdc_floating_ip_addr__: { get_attr: [sdc_floating_ip, floating_ip_address] }
1728             __policy_floating_ip_addr__: { get_attr: [policy_floating_ip, floating_ip_address] }
1729             __openo_floating_ip_addr__: { get_attr: [openo_floating_ip, floating_ip_address] }
1730             __dcae_c_floating_ip_addr__: { get_attr: [dcae_c_floating_ip, floating_ip_address] }
1731
1732           template: |
1733             #!/bin/bash
1734
1735             # Create configuration files
1736             mkdir -p /opt/config
1737             echo "__rand_str__" > /opt/config/dcae_zone.txt
1738             echo "__rand_str__" > /opt/config/rand_str.txt
1739             # repo related
1740             echo "__docker_version__" > /opt/config/docker_version.txt
1741             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1742             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1743             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1744             echo "__nexus_username__" > /opt/config/nexus_username.txt
1745             echo "__nexus_password__" > /opt/config/nexus_password.txt
1746             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1747             # conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs
1748             echo "__mac_addr__" > /opt/config/mac_addr.txt
1749             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
1750             echo "__dcae_float_ip__" > /opt/config/dcae_float_ip.txt
1751             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1752             echo "__external_dns__" > /opt/config/external_dns.txt
1753             echo "__dns_forwarder__" > /opt/config/dns_forwarder.txt
1754             echo "__dcae_domain__" > /opt/config/dcae_domain.txt
1755             # conf for the OpenStack env where DCAE is deployed
1756             echo "__openstack_keystone_url__" > /opt/config/openstack_keystone_url.txt
1757             echo "__dcaeos_cloud_env__" > /opt/config/cloud_env.txt
1758             echo "__dcaeos_keystone_url__" > /opt/config/keystone_url.txt
1759             echo "__dcaeos_region__" > /opt/config/openstack_region.txt
1760             echo "__dcaeos_tenant_id__" > /opt/config/tenant_id.txt
1761             echo "__dcaeos_tenant_name__" > /opt/config/tenant_name.txt
1762             echo "__dcaeos_username__" > /opt/config/openstack_user.txt
1763             echo "__dcaeos_password__" > /opt/config/openstack_password.txt
1764             echo "__dcaeos_key_name__" > /opt/config/key_name.txt
1765             echo "__dcaeos_public_key__" > /opt/config/pub_key.txt
1766             echo "__dcaeos_private_key__" > /opt/config/priv_key
1767             echo "__dcaeos_private_network_name__" > /opt/config/openstack_private_network_name.txt
1768             echo "__dcaeos_public_network_name__" > /opt/config/public_net_name.txt
1769             echo "__dcaeos_public_network_name__" > /opt/config/public_net_id.txt
1770             echo "__dcaeos_ubuntu_1604_image__" > /opt/config/ubuntu_1604_image.txt
1771             echo "__dcaeos_centos_7_image__" > /opt/config/centos_7_image.txt
1772             echo "__dcaeos_security_group__" > /opt/config/security_group.txt
1773             echo "__dcaeos_flavor_id__" > /opt/config/flavor_id.txt
1774             echo "__dcaeos_flavor_id_cdap__" > /opt/config/flavor_id_cdap.txt
1775             echo "__dcaeos_dnsaas_config_enabled__" > /opt/config/dnsaas_config_enabled.txt
1776             echo "__dcaeos_dnsaas_region__" > /opt/config/dnsaas_region.txt
1777             echo "__dcaeos_dnsaas_keystone_url__" > /opt/config/dnsaas_keystone_url.txt
1778             echo "__dnsaas_tenant_name__" > /opt/config/dnsaas_tenant_name.txt
1779             echo "__dcaeos_dnsaas_username__" > /opt/config/dnsaas_username.txt
1780             echo "__dcaeos_dnsaas_password__" > /opt/config/dnsaas_password.txt
1781             # fixed private IP addresses of other ONAP components
1782             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
1783             echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt
1784             echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
1785             echo "__openo_ip_addr__" > /opt/config/openo_ip_addr.txt
1786             echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
1787             echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
1788             # floating IPs
1789             echo "__dns_floating_ip_addr__" > /opt/config/dns_floating_ip_addr.txt
1790             echo "__aai1_floating_ip_addr__" > /opt/config/aai1_floating_ip_addr.txt
1791             echo "__aai2_floating_ip_addr__" > /opt/config/aai2_floating_ip_addr.txt
1792             echo "__mrouter_floating_ip_addr__" > /opt/config/mrouter_floating_ip_addr.txt
1793             echo "__sdc_floating_ip_addr__" > /opt/config/sdc_floating_ip_addr.txt
1794             echo "__policy_floating_ip_addr__" > /opt/config/policy_floating_ip_addr.txt
1795             echo "__openo_floating_ip_addr__" > /opt/config/openo_floating_ip_addr.txt
1796             echo "__dcae_c_floating_ip_addr__" > /opt/config/dcae_c_floating_ip_addr.txt
1797
1798             # Download and run install script
1799             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/dcae2_install.sh -o /opt/dcae2_install.sh
1800             cd /opt
1801             chmod +x dcae2_install.sh
1802             ./dcae2_install.sh > /tmp/dcae2_install.log 2>&1
1803
1804
1805   # MUSIC instantiation
1806   music_private_port:
1807     type: OS::Neutron::Port
1808     properties:
1809       network: { get_resource: oam_onap }
1810       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: music_ip_addr }}]
1811       security_groups:
1812       - { get_resource: onap_sg }
1813
1814   music_floating_ip:
1815     type: OS::Neutron::FloatingIP
1816     properties:
1817       floating_network_id: { get_param: public_net_id }
1818       port_id: { get_resource: music_private_port }
1819
1820   music_vm:
1821     type: OS::Nova::Server
1822     properties:
1823       image: { get_param: ubuntu_1404_image }
1824       flavor: { get_param: flavor_large }
1825       name:
1826         str_replace:
1827           template: base-music
1828           params:
1829             base: { get_param: vm_base_name }
1830       key_name: { get_resource: vm_key }
1831       networks:
1832         - port: { get_resource: music_private_port }
1833       user_data_format: RAW
1834       user_data:
1835         str_replace:
1836           params:
1837             __nexus_repo__: { get_param: nexus_repo }
1838             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1839             __nexus_username__: { get_param: nexus_username }
1840             __nexus_password__: { get_param: nexus_password }
1841             __artifacts_version__: { get_param: artifacts_version }
1842             __dns_ip_addr__: { get_param: dns_ip_addr }
1843             __docker_version__: { get_param: music_docker }
1844             __cloud_env__: { get_param: cloud_env }
1845             __external_dns__: { get_param: external_dns }
1846           template: |
1847             #!/bin/bash
1848
1849             # Create configuration files
1850             mkdir -p /opt/config
1851             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1852             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1853             echo "__nexus_username__" > /opt/config/nexus_username.txt
1854             echo "__nexus_password__" > /opt/config/nexus_password.txt
1855             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1856             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1857             echo "__docker_version__" > /opt/config/docker_version.txt
1858             echo "__cloud_env__" > /opt/config/cloud_env.txt
1859             echo "__external_dns__" > /opt/config/external_dns.txt
1860
1861             # Download and run install script
1862             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/music_install.sh -o /opt/music_install.sh
1863             cd /opt
1864             chmod +x music_install.sh
1865             ./music_install.sh
1866
1867
1868   # OOF instantiation
1869   oof_private_port:
1870     type: OS::Neutron::Port
1871     properties:
1872       network: { get_resource: oam_onap }
1873       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: oof_ip_addr }}]
1874       security_groups:
1875       - { get_resource: onap_sg }
1876
1877   oof_floating_ip:
1878     type: OS::Neutron::FloatingIP
1879     properties:
1880       floating_network_id: { get_param: public_net_id }
1881       port_id: { get_resource: oof_private_port }
1882
1883   oof_vm:
1884     type: OS::Nova::Server
1885     properties:
1886       image: { get_param: ubuntu_1404_image }
1887       flavor: { get_param: flavor_medium }
1888       name:
1889         str_replace:
1890           template: base-oof
1891           params:
1892             base: { get_param: vm_base_name }
1893       key_name: { get_resource: vm_key }
1894       networks:
1895         - port: { get_resource: oof_private_port }
1896       user_data_format: RAW
1897       user_data:
1898         str_replace:
1899           params:
1900             __nexus_repo__: { get_param: nexus_repo }
1901             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1902             __nexus_username__: { get_param: nexus_username }
1903             __nexus_password__: { get_param: nexus_password }
1904             __artifacts_version__: { get_param: artifacts_version }
1905             __dns_ip_addr__: { get_param: dns_ip_addr }
1906             __docker_version__: { get_param: oof_docker }
1907             __cloud_env__: { get_param: cloud_env }
1908             __external_dns__: { get_param: external_dns }
1909           template: |
1910             #!/bin/bash
1911
1912             # Create configuration files
1913             mkdir -p /opt/config
1914             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1915             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1916             echo "__nexus_username__" > /opt/config/nexus_username.txt
1917             echo "__nexus_password__" > /opt/config/nexus_password.txt
1918             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1919             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1920             echo "__docker_version__" > /opt/config/docker_version.txt
1921             echo "__cloud_env__" > /opt/config/cloud_env.txt
1922             echo "__external_dns__" > /opt/config/external_dns.txt
1923
1924             # Download and run install script
1925             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/oof_install.sh -o /opt/oof_install.sh
1926             cd /opt
1927             chmod +x oof_install.sh
1928             ./oof_install.sh
1929
1930
1931   # AAF instantiation
1932   aaf_private_port:
1933     type: OS::Neutron::Port
1934     properties:
1935       network: { get_resource: oam_onap }
1936       fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: aaf_ip_addr }}]
1937       security_groups:
1938       - { get_resource: onap_sg }
1939
1940   aaf_floating_ip:
1941     type: OS::Neutron::FloatingIP
1942     properties:
1943       floating_network_id: { get_param: public_net_id }
1944       port_id: { get_resource: aaf_private_port }
1945
1946   aaf_vm:
1947     type: OS::Nova::Server
1948     properties:
1949       image: { get_param: ubuntu_1404_image }
1950       flavor: { get_param: flavor_medium }
1951       name:
1952         str_replace:
1953           template: base-aaf
1954           params:
1955             base: { get_param: vm_base_name }
1956       key_name: { get_resource: vm_key }
1957       networks:
1958         - port: { get_resource: aaf_private_port }
1959       user_data_format: RAW
1960       user_data:
1961         str_replace:
1962           params:
1963             __nexus_repo__: { get_param: nexus_repo }
1964             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1965             __nexus_username__: { get_param: nexus_username }
1966             __nexus_password__: { get_param: nexus_password }
1967             __artifacts_version__: { get_param: artifacts_version }
1968             __dns_ip_addr__: { get_param: dns_ip_addr }
1969             __docker_version__: { get_param: aaf_docker }
1970             __cloud_env__: { get_param: cloud_env }
1971             __external_dns__: { get_param: external_dns }
1972           template: |
1973             #!/bin/bash
1974
1975             # Create configuration files
1976             mkdir -p /opt/config
1977             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1978             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1979             echo "__nexus_username__" > /opt/config/nexus_username.txt
1980             echo "__nexus_password__" > /opt/config/nexus_password.txt
1981             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1982             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1983             echo "__docker_version__" > /opt/config/docker_version.txt
1984             echo "__cloud_env__" > /opt/config/cloud_env.txt
1985             echo "__external_dns__" > /opt/config/external_dns.txt
1986
1987             # Download and run install script
1988             curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/aaf_install.sh -o /opt/aaf_install.sh
1989             cd /opt
1990             chmod +x aaf_install.sh
1991             ./aaf_install.sh