eff4cc8ea450a2cec8a97b4a7689b6b2627df657
[demo.git] / heat / OpenECOMP / onap_openstack_float.yaml
1 ##########################################################################
2 #
3 #==================LICENSE_START==========================================
4
5 #
6 # Copyright © 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: Public network for floating IP address allocation
46
47   public_subnet_id:
48     type: string
49     description: Public network subnet id
50
51   router_gateway_ip:
52     type: string
53     description: Public network gateway IP address
54
55   ubuntu_1404_image:
56     type: string
57     description: Name of the Ubuntu 14.04 image
58
59   ubuntu_1604_image:
60     type: string
61     description: Name of the Ubuntu 16.04 image
62
63   flavor_small:
64     type: string
65     description: Name of the Small Flavor supported by the cloud provider
66
67   flavor_medium:
68     type: string
69     description: Name of the Medium Flavor supported by the cloud provider
70
71   flavor_large:
72     type: string
73     description: Name of the Large Flavor supported by the cloud provider
74
75   flavor_xlarge:
76     type: string
77     description: Name of the 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   docker_version:
112     type: string
113     label: Version number of ONAP docker images
114
115   gerrit_branch:
116     type: string
117     label: Gerrit code branch
118     description: Gerrit branch where to download the code from
119
120   dmaap_topic:
121     type: string
122     description: DMaaP Topic name
123
124   openstack_tenant_id:
125     type: string
126     description: Openstack tenant ID
127
128   openstack_username:
129     type: string
130     description: Openstack username
131
132   openstack_auth_method:
133     type: string
134     description: Openstack authentication method (password VS. api-key)
135
136   openstack_api_key:
137     type: string
138     description: Openstack API Key
139
140   horizon_url:
141     type: string
142     description: URL of Openstack Horizon
143
144   keystone_url:
145     type: string
146     description: URL of Openstack Keystone
147
148   cloud_env:
149     type: string
150     description: Cloud Provider Name
151
152   ######################
153   #                    #
154   # Network parameters #
155   #                    #
156   ######################
157
158   dns_list:
159     type: comma_delimited_list
160     description: List of External DNS for OAM ONAP network
161
162   external_dns:
163     type: string
164     description: First element of the dns_list for ONAP network
165
166   ### Floating IP addresses ###
167   aai1_float_ip:
168     type: string
169     description: AAI Instance 1 Floating IP Address
170
171   aai2_float_ip:
172     type: string
173     description: AAI Instance 2 Floating IP Address
174
175   appc_float_ip:
176     type: string
177     description: APP-C Floating IP Address
178
179   dcae_float_ip:
180     type: string
181     description: DCAE Floating IP Address
182
183   dcae_coll_float_ip:
184     type: string
185     description: DCAE Collector Floating IP Address
186
187   dcae_db_float_ip:
188     type: string
189     description: DCAE Collector Database Floating IP Address
190
191   dcae_hdp1_float_ip:
192     type: string
193     description: Hadoop VM1 Floating IP Address
194
195   dcae_hdp2_float_ip:
196     type: string
197     description: Hadoop VM2 Floating IP Address
198
199   dcae_hdp3_float_ip:
200     type: string
201     description: Hadoop VM3 Floating IP Address
202
203   dns_float_ip:
204     type: string
205     description: DNS Floating IP Address
206
207   mso_float_ip:
208     type: string
209     description: MSO Floating IP Address
210
211   mr_float_ip:
212     type: string
213     description: Message Router Floating IP Address
214
215   policy_float_ip:
216     type: string
217     description: Policy Engine Floating IP Address
218
219   portal_float_ip:
220     type: string
221     description: Portal Floating IP Address
222
223   robot_float_ip:
224     type: string
225     description: Robot Framework Floating IP Address
226
227   sdc_float_ip:
228     type: string
229     description: SDC Floating IP Address
230
231   sdnc_float_ip:
232     type: string
233     description: SDN-C Floating IP Address
234
235   vid_float_ip:
236     type: string
237     description: VID Floating IP Address
238
239   ### Private IP addresses ###
240   oam_network_cidr:
241     type: string
242     description: CIDR of the OAM ONAP network
243
244   aai1_ip_addr:
245     type: string
246     description: AAI Instance 1 IP Address
247
248   aai2_ip_addr:
249     type: string
250     description: AAI Instance 2 IP Address
251
252   appc_ip_addr:
253     type: string
254     description: APP-C IP Address
255
256   dcae_ip_addr:
257     type: string
258     description: DCAE IP Address
259  
260   dcae_coll_ip_addr:
261     type: string
262     description: DCAE Collector IP Address
263
264   dcae_db_ip_addr:
265     type: string
266     description: DCAE Database IP Address
267
268   dcae_hdp1_ip_addr:
269     type: string
270     description: Hadoop VM1 IP Address
271
272   dcae_hdp2_ip_addr:
273     type: string
274     description: Hadoop VM2 IP Address
275
276   dcae_hdp3_ip_addr:
277     type: string
278     description: Hadoop VM3 IP Address
279
280   dns_ip_addr:
281     type: string
282     description: DNS IP Address
283
284   mso_ip_addr:
285     type: string
286     description: MSO IP Address
287
288   mr_ip_addr:
289     type: string
290     description: Message Router IP Address
291
292   policy_ip_addr:
293     type: string
294     description: Policy Engine IP Address
295
296   portal_ip_addr:
297     type: string
298     description: Portal IP Address
299
300   robot_ip_addr:
301     type: string
302     description: Robot Framework IP Address
303
304   sdc_ip_addr:
305     type: string
306     description: SDC IP Address
307
308   sdnc_ip_addr:
309     type: string
310     description: SDN-C IP Address
311
312   vid_ip_addr:
313     type: string
314     description: VID IP Address
315
316
317   ###########################
318   #                         #
319   # Parameters used by DCAE #
320   #                         #
321   ###########################
322
323   dcae_base_environment:
324     type: string
325     description: DCAE Base Environment configuration (RACKSPACE/2-NIC/1-NIC-FLOATING-IPS)
326
327   dcae_zone:
328     type: string
329     description: DCAE Zone to use in VM names created by DCAE controller
330
331   dcae_state:
332     type: string
333     description: DCAE State to use in VM names created by DCAE controller
334
335   nexus_repo_root:
336     type: string
337     description: Root URL of Nexus repository
338
339   nexus_url_snapshot:
340     type: string
341     description: Snapshot of Maven repository for DCAE deployment
342
343   openstack_region:
344     type: string
345     description: Region where the DCAE controller will spin the VMs
346
347   gitlab_branch:
348     type: string
349     description: Branch of the Gitlab repository
350     
351   dcae_code_version:
352     type: string
353     description: DCAE Code Version Number
354
355
356 #############
357 #           #
358 # RESOURCES #
359 #           #
360 #############
361
362 resources:
363   random-str:
364     type: OS::Heat::RandomString
365     properties:
366       length: 4
367
368
369   # Public key used to access ONAP components
370   vm_key:
371     type: OS::Nova::KeyPair
372     properties:
373       name:
374         str_replace:
375           template: base_rand
376           params:
377             base: { get_param: key_name }
378             rand: { get_resource: random-str }
379       public_key: { get_param: pub_key }
380       save_private_key: false
381
382
383   # ONAP management private network
384   oam_ecomp:
385     type: OS::Neutron::Net
386     properties:
387       name:
388         str_replace:
389           template: oam_ecomp_rand
390           params:
391             rand: { get_resource: random-str }
392
393   oam_ecomp_subnet:
394     type: OS::Neutron::Subnet
395     properties:
396       name:
397         str_replace:
398           template: oam_ecomp_rand
399           params:
400             rand: { get_resource: random-str }
401       network_id: { get_resource: oam_ecomp }
402       cidr: { get_param: oam_network_cidr }
403       dns_nameservers: { get_param: dns_list }
404
405   router:
406     type: OS::Neutron::Router
407     properties:
408       external_gateway_info:
409         network: { get_param: public_net_id }
410         external_fixed_ips:
411           - ip_address: { get_param: router_gateway_ip }
412             subnet: { get_param: public_subnet_id }
413
414   router_interface:
415     type: OS::Neutron::RouterInterface
416     properties:
417       router_id: { get_resource: router }
418       subnet_id: { get_resource: oam_ecomp_subnet }
419
420
421   # DNS Server instantiation
422   dns_private_port:
423     type: OS::Neutron::Port
424     properties:
425       network: { get_resource: oam_ecomp }
426       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: dns_ip_addr }}]
427
428   dns_floating_ip:
429     type: OS::Neutron::FloatingIP
430     properties:
431       floating_network_id: { get_param: public_net_id }
432       port_id: { get_resource: dns_private_port }
433       floating_ip_address: { get_param: dns_float_ip }
434
435   dns_vm:
436     type: OS::Nova::Server
437     properties:
438       image: { get_param: ubuntu_1404_image }
439       flavor: { get_param: flavor_small }
440       name:
441         str_replace:
442           template: base-dns-server
443           params:
444             base: { get_param: vm_base_name }
445       key_name: { get_resource: vm_key }
446       networks:
447         - port: { get_resource: dns_private_port }
448       user_data_format: RAW
449       user_data:
450         str_replace:
451           params:
452             __nexus_repo__: { get_param: nexus_repo }
453             __artifacts_version__: { get_param: artifacts_version }
454             __oam_network_cidr__: { get_attr: [oam_ecomp_subnet, cidr] }
455             __dns_ip_addr__: { get_param: dns_ip_addr }
456             __aai1_ip_addr__: { get_param: aai1_ip_addr }
457             __aai2_ip_addr__: { get_param: aai2_ip_addr }
458             __appc_ip_addr__: { get_param: appc_ip_addr }
459             __dcae_ip_addr__: { get_param: dcae_ip_addr }
460             __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
461             __mso_ip_addr__: { get_param: mso_ip_addr }
462             __mr_ip_addr__: { get_param: mr_ip_addr }
463             __policy_ip_addr__: { get_param: policy_ip_addr }
464             __portal_ip_addr__: { get_param: portal_ip_addr }
465             __robot_ip_addr__: { get_param: robot_ip_addr }
466             __sdc_ip_addr__: { get_param: sdc_ip_addr }
467             __sdnc_ip_addr__: { get_param: sdnc_ip_addr }
468             __vid_ip_addr__: { get_param: vid_ip_addr }
469             __cloud_env__: { get_param: cloud_env }
470             __external_dns__: { get_param: external_dns }
471           template: |
472             #!/bin/bash
473
474             # Create configuration files
475             mkdir -p /opt/config
476             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
477             echo "__cloud_env__" > /opt/config/cloud_env.txt
478             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
479             echo "__oam_network_cidr__" > /opt/config/oam_network_cidr.txt
480             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
481             echo "__aai1_ip_addr__" > /opt/config/aai1_ip_addr.txt
482             echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
483             echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
484             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
485             echo "__dcae_coll_ip_addr__" > /opt/config/dcae_coll_ip_addr.txt
486             echo "__mso_ip_addr__" > /opt/config/mso_ip_addr.txt
487             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
488             echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt
489             echo "__portal_ip_addr__" > /opt/config/portal_ip_addr.txt
490             echo "__robot_ip_addr__" > /opt/config/robot_ip_addr.txt
491             echo "__sdc_ip_addr__" > /opt/config/sdc_ip_addr.txt
492             echo "__sdnc_ip_addr__" > /opt/config/sdnc_ip_addr.txt
493             echo "__vid_ip_addr__" > /opt/config/vid_ip_addr.txt
494             echo "__external_dns__" > /opt/config/external_dns.txt
495
496             # Download and run install script
497             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/dns_install.sh -o /opt/dns_install.sh
498             cd /opt
499             chmod +x dns_install.sh
500             ./dns_install.sh
501
502
503   # A&AI instantiation (2 VMs)
504   aai1_private_port:
505     type: OS::Neutron::Port
506     properties:
507       network: { get_resource: oam_ecomp }
508       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai1_ip_addr }}]
509
510   aai1_floating_ip:
511     type: OS::Neutron::FloatingIP
512     properties:
513       floating_network_id: { get_param: public_net_id }
514       port_id: { get_resource: aai1_private_port }
515       floating_ip_address: { get_param: aai1_float_ip }
516
517   aai1_vm:
518     type: OS::Nova::Server
519     depends_on: aai2_vm
520     properties:
521       image: { get_param: ubuntu_1404_image }
522       flavor: { get_param: flavor_xlarge }
523       name:
524         str_replace:
525           template: base-aai-inst1
526           params:
527             base: { get_param: vm_base_name }      
528       key_name: { get_resource: vm_key }
529       networks:
530         - port: { get_resource: aai1_private_port }
531       user_data_format: RAW
532       user_data:
533         str_replace:
534           params:
535             __nexus_repo__: { get_param: nexus_repo }
536             __nexus_docker_repo__: { get_param: nexus_docker_repo }
537             __nexus_username__: { get_param: nexus_username }
538             __nexus_password__: { get_param: nexus_password }
539             __dmaap_topic__: { get_param: dmaap_topic }
540             __artifacts_version__: { get_param: artifacts_version }
541             __dns_ip_addr__: { get_param: dns_ip_addr }
542             __docker_version__: { get_param: docker_version }
543             __cloud_env__: { get_param: cloud_env }
544             __gerrit_branch__: { get_param: gerrit_branch }
545             __external_dns__: { get_param: external_dns }
546           template: |
547             #!/bin/bash
548
549             # Create configuration files
550             mkdir -p /opt/config
551             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
552             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
553             echo "__nexus_username__" > /opt/config/nexus_username.txt
554             echo "__nexus_password__" > /opt/config/nexus_password.txt
555             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
556             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
557             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
558             echo "__docker_version__" > /opt/config/docker_version.txt
559             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
560             echo "aai_instance_1" > /opt/config/aai_instance.txt
561             echo "__cloud_env__" > /opt/config/cloud_env.txt
562             echo "__external_dns__" > /opt/config/external_dns.txt
563
564             # Download and run install script
565             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
566             cd /opt
567             chmod +x aai2_install.sh
568             ./aai2_install.sh
569
570
571   aai2_private_port:
572     type: OS::Neutron::Port
573     properties:
574       network: { get_resource: oam_ecomp }
575       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: aai2_ip_addr }}]
576
577   aai2_floating_ip:
578     type: OS::Neutron::FloatingIP
579     properties:
580       floating_network_id: { get_param: public_net_id }
581       port_id: { get_resource: aai2_private_port }
582       floating_ip_address: { get_param: aai2_float_ip }
583
584   aai2_vm:
585     type: OS::Nova::Server
586     properties:
587       image: { get_param: ubuntu_1404_image }
588       flavor: { get_param: flavor_xlarge }
589       name:
590         str_replace:
591           template: base-aai-inst2
592           params:
593             base: { get_param: vm_base_name }      
594       key_name: { get_resource: vm_key }
595       networks:
596         - port: { get_resource: aai2_private_port }
597       user_data_format: RAW
598       user_data:
599         str_replace:
600           params:
601             __nexus_repo__: { get_param: nexus_repo }
602             __nexus_docker_repo__: { get_param: nexus_docker_repo }
603             __nexus_username__: { get_param: nexus_username }
604             __nexus_password__: { get_param: nexus_password }
605             __dmaap_topic__: { get_param: dmaap_topic }
606             __artifacts_version__: { get_param: artifacts_version }
607             __dns_ip_addr__: { get_param: dns_ip_addr }
608             __docker_version__: { get_param: docker_version }
609             __cloud_env__: { get_param: cloud_env }
610             __gerrit_branch__: { get_param: gerrit_branch }
611             __external_dns__: { get_param: external_dns }
612           template: |
613             #!/bin/bash
614
615             # Create configuration files
616             mkdir -p /opt/config
617             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
618             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
619             echo "__nexus_username__" > /opt/config/nexus_username.txt
620             echo "__nexus_password__" > /opt/config/nexus_password.txt
621             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
622             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
623             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
624             echo "__docker_version__" > /opt/config/docker_version.txt
625             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
626             echo "aai_instance_2" > /opt/config/aai_instance.txt
627             echo "__cloud_env__" > /opt/config/cloud_env.txt
628             echo "__external_dns__" > /opt/config/external_dns.txt
629
630             # Download and run install script
631             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/aai2_install.sh -o /opt/aai2_install.sh
632             cd /opt
633             chmod +x aai2_install.sh
634             ./aai2_install.sh
635
636
637   # MSO instantiation
638   mso_private_port:
639     type: OS::Neutron::Port
640     properties:
641       network: { get_resource: oam_ecomp }
642       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: mso_ip_addr }}]
643
644   mso_floating_ip:
645     type: OS::Neutron::FloatingIP
646     properties:
647       floating_network_id: { get_param: public_net_id }
648       port_id: { get_resource: mso_private_port }
649       floating_ip_address: { get_param: mso_float_ip }
650
651   mso_vm:
652     type: OS::Nova::Server
653     properties:
654       image: { get_param: ubuntu_1604_image }
655       flavor: { get_param: flavor_large }
656       name:
657         str_replace:
658           template: base-mso
659           params:
660             base: { get_param: vm_base_name }      
661       key_name: { get_resource: vm_key }
662       networks:
663         - port: { get_resource: mso_private_port }
664       user_data_format: RAW
665       user_data:
666         str_replace:
667           params:
668             __nexus_repo__: { get_param: nexus_repo }
669             __nexus_docker_repo__: { get_param: nexus_docker_repo }
670             __nexus_username__: { get_param: nexus_username }
671             __nexus_password__: { get_param: nexus_password }
672             __openstack_username__: { get_param: openstack_username }
673             __openstack_tenant_id__: { get_param: openstack_tenant_id }
674             __openstack_api_key__: { get_param: openstack_api_key }
675             __openstack_region__: { get_param: openstack_region }
676             __keystone_url__: { get_param: keystone_url }
677             __dmaap_topic__: { get_param: dmaap_topic }
678             __artifacts_version__: { get_param: artifacts_version }
679             __dns_ip_addr__: { get_param: dns_ip_addr }
680             __docker_version__: { get_param: docker_version }
681             __gerrit_branch__: { get_param: gerrit_branch }
682             __cloud_env__: { get_param: cloud_env }
683             __external_dns__: { get_param: external_dns }
684           template: |
685             #!/bin/bash
686
687             # Create configuration files
688             mkdir -p /opt/config
689             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
690             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
691             echo "__nexus_username__" > /opt/config/nexus_username.txt
692             echo "__nexus_password__" > /opt/config/nexus_password.txt
693             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
694             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
695             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
696             echo "__openstack_username__" > /opt/config/openstack_username.txt
697             echo "__openstack_tenant_id__" > /opt/config/tenant_id.txt
698             echo "__openstack_api_key__" > /opt/config/openstack_api_key.txt
699             echo "__openstack_region__" > /opt/config/openstack_region.txt
700             echo "__keystone_url__" > /opt/config/keystone.txt
701             echo "__docker_version__" > /opt/config/docker_version.txt
702             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
703             echo "__cloud_env__" > /opt/config/cloud_env.txt
704             echo "__external_dns__" > /opt/config/external_dns.txt
705
706             # Download and run install script
707             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/mso_install.sh -o /opt/mso_install.sh
708             cd /opt
709             chmod +x mso_install.sh
710             ./mso_install.sh
711
712
713   # Message Router instantiation
714   mrouter_private_port:
715     type: OS::Neutron::Port
716     properties:
717       network: { get_resource: oam_ecomp }
718       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: mr_ip_addr }}]
719
720   mrouter_floating_ip:
721     type: OS::Neutron::FloatingIP
722     properties:
723       floating_network_id: { get_param: public_net_id }
724       port_id: { get_resource: mrouter_private_port }
725       floating_ip_address: { get_param: mr_float_ip }
726
727   mrouter_vm:
728     type: OS::Nova::Server
729     properties:
730       image: { get_param: ubuntu_1404_image }
731       flavor: { get_param: flavor_large }
732       name:
733         str_replace: 
734           template: base-message-router
735           params:
736             base: { get_param: vm_base_name }
737       key_name: { get_resource: vm_key }
738       networks:
739         - port: { get_resource: mrouter_private_port }
740       user_data_format: RAW
741       user_data:
742         str_replace:
743           params:
744             __nexus_repo__: { get_param: nexus_repo }
745             __nexus_docker_repo__: { get_param: nexus_docker_repo }
746             __nexus_username__: { get_param: nexus_username }
747             __nexus_password__: { get_param: nexus_password }
748             __artifacts_version__: { get_param: artifacts_version }
749             __dns_ip_addr__: { get_param: dns_ip_addr }
750             __gerrit_branch__: { get_param: gerrit_branch }
751             __cloud_env__: { get_param: cloud_env }
752             __external_dns__: { get_param: external_dns }
753           template: |
754             #!/bin/bash
755
756             # Create configuration files
757             mkdir -p /opt/config
758             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
759             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
760             echo "__nexus_username__" > /opt/config/nexus_username.txt
761             echo "__nexus_password__" > /opt/config/nexus_password.txt
762             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
763             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
764             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
765             echo "__cloud_env__" > /opt/config/cloud_env.txt
766             echo "__external_dns__" > /opt/config/external_dns.txt
767
768             # Download and run install script
769             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/mr_install.sh -o /opt/mr_install.sh
770             cd /opt
771             chmod +x mr_install.sh
772             ./mr_install.sh
773
774
775   # Robot Framework instantiation
776   robot_private_port:
777     type: OS::Neutron::Port
778     properties:
779       network: { get_resource: oam_ecomp }
780       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: robot_ip_addr }}]
781
782   robot_floating_ip:
783     type: OS::Neutron::FloatingIP
784     properties:
785       floating_network_id: { get_param: public_net_id }
786       port_id: { get_resource: robot_private_port }
787       floating_ip_address: { get_param: robot_float_ip }
788  
789   robot_vm:
790     type: OS::Nova::Server
791     properties:
792       image: { get_param: ubuntu_1604_image }
793       flavor: { get_param: flavor_small }
794       name:
795         str_replace: 
796           template: base-robot
797           params:
798             base: { get_param: vm_base_name }
799       key_name: { get_resource: vm_key }
800       networks:
801         - port: { get_resource: robot_private_port }
802       user_data_format: RAW
803       user_data:
804         str_replace:
805           params:
806             __nexus_repo__: { get_param: nexus_repo }
807             __nexus_docker_repo__: { get_param: nexus_docker_repo }
808             __nexus_username__: { get_param: nexus_username }
809             __nexus_password__: { get_param: nexus_password }
810             __network_name__: { get_attr: [oam_ecomp, name] }
811             __openstack_username__: { get_param: openstack_username }
812             __openstack_api_key__: { get_param : openstack_api_key }
813             __artifacts_version__: { get_param: artifacts_version }
814             __openstack_region__: { get_param: openstack_region }
815             __dns_ip_addr__: { get_param: dns_ip_addr }
816             __docker_version__: { get_param: docker_version }
817             __gerrit_branch__: { get_param: gerrit_branch }
818             __cloud_env__: { get_param: cloud_env }
819             __external_dns__: { get_param: external_dns }
820           template: |
821             #!/bin/bash
822
823             # Create configuration files
824             mkdir -p /opt/config
825             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
826             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
827             echo "__nexus_username__" > /opt/config/nexus_username.txt
828             echo "__nexus_password__" > /opt/config/nexus_password.txt
829             echo "__network_name__" > /opt/config/network.txt
830             echo "__openstack_username__" > /opt/config/openstack_username.txt
831             echo "__openstack_api_key__" > /opt/config/openstack_password.txt
832             echo "__openstack_region__" > /opt/config/region.txt
833             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
834             echo "__docker_version__" > /opt/config/docker_version.txt
835             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
836             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
837             echo "__cloud_env__" > /opt/config/cloud_env.txt
838             echo "__external_dns__" > /opt/config/external_dns.txt
839
840             # Download and run install script
841             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/robot_install.sh -o /opt/robot_install.sh
842             cd /opt
843             chmod +x robot_install.sh
844             ./robot_install.sh
845
846
847   # VID instantiation
848   vid_private_port:
849     type: OS::Neutron::Port
850     properties:
851       network: { get_resource: oam_ecomp }
852       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: vid_ip_addr }}]
853
854   vid_floating_ip:
855     type: OS::Neutron::FloatingIP
856     properties:
857       floating_network_id: { get_param: public_net_id }
858       port_id: { get_resource: vid_private_port }
859       floating_ip_address: { get_param: vid_float_ip }
860
861   vid_vm:
862     type: OS::Nova::Server
863     properties:
864       image: { get_param: ubuntu_1404_image }
865       flavor: { get_param: flavor_medium }
866       name:
867         str_replace: 
868           template: base-vid
869           params:
870             base: { get_param: vm_base_name }
871       key_name: { get_resource: vm_key }
872       networks:
873         - port: { get_resource: vid_private_port }
874       user_data_format: RAW
875       user_data:
876         str_replace:
877           params:
878             __nexus_repo__: { get_param: nexus_repo }
879             __nexus_docker_repo__: { get_param: nexus_docker_repo }
880             __nexus_username__: { get_param: nexus_username }
881             __nexus_password__: { get_param: nexus_password }
882             __artifacts_version__: { get_param: artifacts_version }
883             __dns_ip_addr__: { get_param: dns_ip_addr }
884             __docker_version__: { get_param: docker_version }
885             __gerrit_branch__: { get_param: gerrit_branch }
886             __cloud_env__: { get_param: cloud_env }
887             __external_dns__: { get_param: external_dns }
888           template: |
889             #!/bin/bash
890
891             # Create configuration files
892             mkdir -p /opt/config
893             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
894             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
895             echo "__nexus_username__" > /opt/config/nexus_username.txt
896             echo "__nexus_password__" > /opt/config/nexus_password.txt
897             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
898             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
899             echo "__docker_version__" > /opt/config/docker_version.txt
900             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
901             echo "__cloud_env__" > /opt/config/cloud_env.txt
902             echo "__external_dns__" > /opt/config/external_dns.txt
903
904             # Download and run install script
905             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/vid_install.sh -o /opt/vid_install.sh
906             cd /opt
907             chmod +x vid_install.sh
908             ./vid_install.sh
909
910  
911   # SDN-C instantiation
912   sdnc_private_port:
913     type: OS::Neutron::Port
914     properties:
915       network: { get_resource: oam_ecomp }
916       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: sdnc_ip_addr }}]
917
918   sdnc_floating_ip:
919     type: OS::Neutron::FloatingIP
920     properties:
921       floating_network_id: { get_param: public_net_id }
922       port_id: { get_resource: sdnc_private_port }
923       floating_ip_address: { get_param: sdnc_float_ip }
924
925   sdnc_vm:
926     type: OS::Nova::Server
927     properties:
928       image: { get_param: ubuntu_1404_image }
929       flavor: { get_param: flavor_large }
930       name:
931         str_replace: 
932           template: base-sdnc
933           params:
934             base: { get_param: vm_base_name }
935       key_name: { get_resource: vm_key }
936       networks:
937         - port: { get_resource: sdnc_private_port }
938       user_data_format: RAW
939       user_data:
940         str_replace:
941           params:
942             __nexus_repo__: { get_param: nexus_repo }
943             __nexus_docker_repo__: { get_param: nexus_docker_repo }
944             __nexus_username__: { get_param: nexus_username }
945             __nexus_password__: { get_param: nexus_password }
946             __artifacts_version__: { get_param: artifacts_version }
947             __dns_ip_addr__: { get_param: dns_ip_addr }
948             __docker_version__: { get_param: docker_version }
949             __gerrit_branch__: { get_param: gerrit_branch }
950             __cloud_env__: { get_param: cloud_env }
951             __external_dns__: { get_param: external_dns }
952           template: |
953             #!/bin/bash
954
955             # Create configuration files
956             mkdir -p /opt/config
957             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
958             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
959             echo "__nexus_username__" > /opt/config/nexus_username.txt
960             echo "__nexus_password__" > /opt/config/nexus_password.txt
961             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
962             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
963             echo "__docker_version__" > /opt/config/docker_version.txt
964             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
965             echo "__cloud_env__" > /opt/config/cloud_env.txt
966             echo "__external_dns__" > /opt/config/external_dns.txt
967
968             # Download and run install script
969             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/sdnc_install.sh -o /opt/sdnc_install.sh
970             cd /opt
971             chmod +x sdnc_install.sh
972             ./sdnc_install.sh
973
974
975   # SDC instantiation
976   sdc_private_port:
977     type: OS::Neutron::Port
978     properties:
979       network: { get_resource: oam_ecomp }
980       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: sdc_ip_addr }}]
981
982   sdc_floating_ip:
983     type: OS::Neutron::FloatingIP
984     properties:
985       floating_network_id: { get_param: public_net_id }
986       port_id: { get_resource: sdc_private_port }
987       floating_ip_address: { get_param: sdc_float_ip }
988
989   sdc_volume_data:
990     type: OS::Cinder::Volume
991     properties:
992       name: vol1-sdc-data
993       size: 100
994
995   sdc_vm:
996     type: OS::Nova::Server
997     properties:
998       image: { get_param: ubuntu_1604_image }
999       flavor: { get_param: flavor_xlarge }
1000       name:
1001         str_replace: 
1002           template: base-sdc
1003           params:
1004             base: { get_param: vm_base_name }
1005       key_name: { get_resource: vm_key }
1006       networks:
1007         - port: { get_resource: sdc_private_port }
1008       block_device_mapping:
1009         - device_name: /dev/vdb
1010           volume_id: {get_resource: sdc_volume_data}
1011       user_data_format: RAW
1012       user_data:
1013         str_replace:
1014           params:
1015             __nexus_repo__: { get_param: nexus_repo }
1016             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1017             __nexus_username__: { get_param: nexus_username }
1018             __nexus_password__: { get_param: nexus_password }
1019             __env_name__: { get_param: dmaap_topic }
1020             __artifacts_version__: { get_param: artifacts_version }
1021             __dns_ip_addr__: { get_param: dns_ip_addr }
1022             __mr_ip_addr__: { get_param: mr_ip_addr }
1023             __public_ip__: { get_attr: [sdc_floating_ip, floating_ip_address] }
1024             __docker_version__: { get_param: docker_version }
1025             __gerrit_branch__: { get_param: gerrit_branch }
1026             __cloud_env__: { get_param: cloud_env }
1027             __external_dns__: { get_param: external_dns }
1028           template: |
1029             #!/bin/bash
1030
1031             # Create configuration files
1032             mkdir -p /opt/config
1033             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1034             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1035             echo "__nexus_username__" > /opt/config/nexus_username.txt
1036             echo "__nexus_password__" > /opt/config/nexus_password.txt
1037             echo "__env_name__" > /opt/config/env_name.txt
1038             echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
1039             echo "__public_ip__" > /opt/config/public_ip.txt
1040             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1041             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1042             echo "__docker_version__" > /opt/config/docker_version.txt
1043             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1044             echo "__cloud_env__" > /opt/config/cloud_env.txt
1045             echo "__external_dns__" > /opt/config/external_dns.txt
1046
1047             # Download and run install script
1048             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/asdc_install.sh -o /opt/asdc_install.sh
1049             cd /opt
1050             chmod +x asdc_install.sh
1051             ./asdc_install.sh
1052
1053
1054   # PORTAL instantiation
1055   portal_private_port:
1056     type: OS::Neutron::Port
1057     properties:
1058       network: { get_resource: oam_ecomp }
1059       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: portal_ip_addr }}]
1060
1061   portal_floating_ip:
1062     type: OS::Neutron::FloatingIP
1063     properties:
1064       floating_network_id: { get_param: public_net_id }
1065       port_id: { get_resource: portal_private_port }
1066       floating_ip_address: { get_param: portal_float_ip }
1067
1068   portal_vm:
1069     type: OS::Nova::Server
1070     properties:
1071       image: { get_param: ubuntu_1404_image }
1072       flavor: { get_param: flavor_large }
1073       name:
1074         str_replace: 
1075           template: base-portal
1076           params:
1077             base: { get_param: vm_base_name }
1078       key_name: { get_resource: vm_key }
1079       networks:
1080         - port: { get_resource: portal_private_port }
1081       user_data_format: RAW
1082       user_data:
1083         str_replace:
1084           params:
1085             __nexus_repo__: { get_param: nexus_repo }
1086             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1087             __nexus_username__: { get_param: nexus_username }
1088             __nexus_password__: { get_param: nexus_password }
1089             __artifacts_version__: { get_param: artifacts_version }
1090             __dns_ip_addr__: { get_param: dns_ip_addr }
1091             __public_ip__: { get_attr: [portal_floating_ip, floating_ip_address] }
1092             __docker_version__: { get_param: docker_version }
1093             __gerrit_branch__: { get_param: gerrit_branch }
1094             __cloud_env__: { get_param: cloud_env }
1095             __external_dns__: { get_param: external_dns }
1096           template: |
1097             #!/bin/bash
1098
1099             # Create configuration files
1100             mkdir -p /opt/config
1101             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1102             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1103             echo "__nexus_username__" > /opt/config/nexus_username.txt
1104             echo "__nexus_password__" > /opt/config/nexus_password.txt
1105             echo "__public_ip__" > /opt/config/public_ip.txt
1106             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1107             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1108             echo "__docker_version__" > /opt/config/docker_version.txt
1109             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1110             echo "__cloud_env__" > /opt/config/cloud_env.txt
1111             echo "__external_dns__" > /opt/config/external_dns.txt
1112
1113             # Download and run install script
1114             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/portal_install.sh -o /opt/portal_install.sh
1115             cd /opt
1116             chmod +x portal_install.sh
1117             ./portal_install.sh
1118
1119
1120   # DCAE Controller instantiation
1121   dcae_c_private_port:
1122     type: OS::Neutron::Port
1123     properties:
1124       network: { get_resource: oam_ecomp }
1125       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: dcae_ip_addr }}]
1126
1127   dcae_c_floating_ip:
1128     type: OS::Neutron::FloatingIP
1129     properties:
1130       floating_network_id: { get_param: public_net_id }
1131       port_id: { get_resource: dcae_c_private_port }
1132       floating_ip_address: { get_param: dcae_float_ip }
1133
1134   dcae_c_vm:
1135     type: OS::Nova::Server
1136     properties:
1137       image: { get_param: ubuntu_1404_image }
1138       flavor: { get_param: flavor_medium }
1139       name:
1140         str_replace: 
1141           template: base-dcae-controller
1142           params:
1143             base: { get_param: vm_base_name }
1144       key_name: { get_resource: vm_key }
1145       networks:
1146         - port: { get_resource: dcae_c_private_port }
1147       user_data_format: RAW
1148       user_data:
1149         str_replace:
1150           params:
1151             __nexus_repo__: { get_param: nexus_repo }
1152             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1153             __nexus_username__: { get_param: nexus_username }
1154             __nexus_password__: { get_param: nexus_password }
1155             __nexus_url_snapshots__: { get_param: nexus_url_snapshot }
1156             __gitlab_branch__: { get_param: gitlab_branch }
1157             __dns_ip_addr__: { get_param: dns_ip_addr }
1158             __dcae_zone__: { get_param: dcae_zone }
1159             __dcae_state__: { get_param: dcae_state }
1160             __artifacts_version__: { get_param: artifacts_version }
1161             __tenant_id__: { get_param: openstack_tenant_id }
1162             __openstack_private_network_name__: { get_attr: [oam_ecomp, name] }
1163             __openstack_user__: { get_param: openstack_username }
1164             __openstack_password__: { get_param: openstack_api_key }
1165             __openstack_auth_method__: { get_param: openstack_auth_method }
1166             __key_name__: { get_param: key_name }
1167             __rand_str__: { get_resource: random-str }
1168             __pub_key__: { get_param: pub_key }
1169             __nexus_repo_root__: { get_param: nexus_repo_root }
1170             __openstack_region__: { get_param: openstack_region }
1171             __horizon_url__: { get_param: horizon_url }
1172             __keystone_url__: { get_param: keystone_url }
1173             __docker_version__: { get_param: docker_version }
1174             __gerrit_branch__: { get_param: gerrit_branch }
1175             __dcae_code_version__: { get_param: dcae_code_version }
1176             __cloud_env__: { get_param: cloud_env }
1177             __public_net_id__: { get_param: public_net_id }
1178             __dcae_base_environment__: { get_param: dcae_base_environment }
1179             __dcae_ip_addr__: { get_param: dcae_ip_addr }
1180             __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
1181             __dcae_db_ip_addr__: { get_param: dcae_db_ip_addr }
1182             __dcae_hdp1_ip_addr__: { get_param: dcae_hdp1_ip_addr }
1183             __dcae_hdp2_ip_addr__: { get_param: dcae_hdp2_ip_addr }
1184             __dcae_hdp3_ip_addr__: { get_param: dcae_hdp3_ip_addr }
1185             __dcae_float_ip__: { get_param: dcae_float_ip }
1186             __dcae_coll_float_ip__: { get_param: dcae_coll_float_ip }
1187             __dcae_db_float_ip__: { get_param: dcae_db_float_ip }
1188             __dcae_hdp1_float_ip__: { get_param: dcae_hdp1_float_ip }
1189             __dcae_hdp2_float_ip__: { get_param: dcae_hdp2_float_ip }
1190             __dcae_hdp3_float_ip__: { get_param: dcae_hdp3_float_ip }
1191             __external_dns__: { get_param: external_dns }
1192             __ubuntu_1404_image__: { get_param: ubuntu_1404_image }
1193             __ubuntu_1604_image__: { get_param: ubuntu_1604_image }
1194             __flavor_small__: { get_param: flavor_small }
1195             __flavor_medium__: { get_param: flavor_medium }
1196             __flavor_large__: { get_param: flavor_large }
1197             __flavor_xlarge__: { get_param: flavor_xlarge }
1198           template: |
1199             #!/bin/bash
1200
1201             # Create configuration files
1202             mkdir -p /opt/config
1203             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1204             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1205             echo "__nexus_username__" > /opt/config/nexus_username.txt
1206             echo "__nexus_password__" > /opt/config/nexus_password.txt
1207             echo "__nexus_url_snapshots__" > /opt/config/nexus_url_snapshots.txt
1208             echo "__gitlab_branch__" > /opt/config/gitlab_branch.txt
1209             echo "__docker_version__" > /opt/config/docker_version.txt
1210             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1211             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1212             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1213             echo "__dcae_zone__" > /opt/config/dcae_zone.txt
1214             echo "__dcae_state__" > /opt/config/dcae_state.txt
1215             echo "__tenant_id__" > /opt/config/tenant_id.txt
1216             echo "__openstack_private_network_name__" > /opt/config/openstack_private_network_name.txt
1217             echo "__openstack_user__" > /opt/config/openstack_user.txt
1218             echo "__openstack_password__" > /opt/config/openstack_password.txt
1219             echo "__openstack_auth_method__" > /opt/config/openstack_auth_method.txt
1220             echo "__key_name__" > /opt/config/key_name.txt
1221             echo "__rand_str__" > /opt/config/rand_str.txt
1222             echo "__pub_key__" > /opt/config/pub_key.txt
1223             echo "__nexus_repo_root__" > /opt/config/nexus_repo_root.txt
1224             echo "__openstack_region__" > /opt/config/openstack_region.txt
1225             echo "__horizon_url__" > /opt/config/horizon_url.txt
1226             echo "__keystone_url__" > /opt/config/keystone_url.txt
1227             echo "__cloud_env__" > /opt/config/cloud_env.txt
1228             echo "__public_net_id__" > /opt/config/public_net_id.txt
1229             echo "__dcae_base_environment__" > /opt/config/dcae_base_environment.txt
1230             echo "__dcae_code_version__" > /opt/config/dcae_code_version.txt
1231             echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
1232             echo "__dcae_coll_ip_addr__" > /opt/config/dcae_coll_ip_addr.txt
1233             echo "__dcae_db_ip_addr__" > /opt/config/dcae_db_ip_addr.txt
1234             echo "__dcae_hdp1_ip_addr__" > /opt/config/dcae_hdp1_ip_addr.txt
1235             echo "__dcae_hdp2_ip_addr__" > /opt/config/dcae_hdp2_ip_addr.txt
1236             echo "__dcae_hdp3_ip_addr__" > /opt/config/dcae_hdp3_ip_addr.txt
1237             echo "__dcae_float_ip__" > /opt/config/dcae_float_ip.txt
1238             echo "__dcae_coll_float_ip__" > /opt/config/dcae_coll_float_ip.txt
1239             echo "__dcae_db_float_ip__" > /opt/config/dcae_db_float_ip.txt
1240             echo "__dcae_hdp1_float_ip__" > /opt/config/dcae_hdp1_float_ip.txt
1241             echo "__dcae_hdp2_float_ip__" > /opt/config/dcae_hdp2_float_ip.txt
1242             echo "__dcae_hdp3_float_ip__" > /opt/config/dcae_hdp3_float_ip.txt
1243             echo "__external_dns__" > /opt/config/external_dns.txt
1244             echo "__ubuntu_1404_image__" > /opt/config/ubuntu_1404_image.txt
1245             echo "__ubuntu_1604_image__" > /opt/config/ubuntu_1604_image.txt
1246             echo "__flavor_small__" > /opt/config/flavor_small.txt
1247             echo "__flavor_medium__" > /opt/config/flavor_medium.txt
1248             echo "__flavor_large__" > /opt/config/flavor_large.txt
1249             echo "__flavor_xlarge__" > /opt/config/flavor_xlarge.txt
1250
1251             # Download and run install script
1252             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/dcae_install.sh -o /opt/dcae_install.sh
1253             cd /opt
1254             chmod +x dcae_install.sh
1255             ./dcae_install.sh
1256
1257
1258   # Policy Engine instantiation
1259   policy_private_port:
1260     type: OS::Neutron::Port
1261     properties:
1262       network: { get_resource: oam_ecomp }
1263       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: policy_ip_addr }}]
1264
1265   policy_floating_ip:
1266     type: OS::Neutron::FloatingIP
1267     properties:
1268       floating_network_id: { get_param: public_net_id }
1269       port_id: { get_resource: policy_private_port }
1270       floating_ip_address: { get_param: policy_float_ip }
1271
1272   policy_vm:
1273     type: OS::Nova::Server
1274     properties:
1275       image: { get_param: ubuntu_1404_image }
1276       flavor: { get_param: flavor_xlarge }
1277       name:
1278         str_replace: 
1279           template: base-policy
1280           params:
1281             base: { get_param: vm_base_name }
1282       key_name: { get_resource: vm_key }
1283       networks:
1284         - port: { get_resource: policy_private_port }
1285       user_data_format: RAW
1286       user_data:
1287         str_replace:
1288           params:
1289             __nexus_repo__: { get_param: nexus_repo }
1290             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1291             __nexus_username__: { get_param: nexus_username }
1292             __nexus_password__: { get_param: nexus_password }
1293             __artifacts_version__: { get_param: artifacts_version }
1294             __dns_ip_addr__: { get_param: dns_ip_addr }
1295             __public_ip__: { get_attr: [policy_floating_ip, floating_ip_address] }
1296             __docker_version__: { get_param: docker_version }
1297             __gerrit_branch__: { get_param: gerrit_branch }
1298             __cloud_env__: { get_param: cloud_env }
1299             __external_dns__: { get_param: external_dns }
1300           template: |
1301             #!/bin/bash
1302
1303             # Create configuration files
1304             mkdir -p /opt/config
1305             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1306             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1307             echo "__nexus_username__" > /opt/config/nexus_username.txt
1308             echo "__nexus_password__" > /opt/config/nexus_password.txt
1309             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1310             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1311             echo "__public_ip__" > /opt/config/public_ip.txt
1312             echo "__docker_version__" > /opt/config/docker_version.txt
1313             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1314             echo "__cloud_env__" > /opt/config/cloud_env.txt
1315             echo "__external_dns__" > /opt/config/external_dns.txt
1316
1317             # Download and run install script
1318             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/policy_install.sh -o /opt/policy_install.sh
1319             cd /opt
1320             chmod +x policy_install.sh
1321             ./policy_install.sh
1322
1323
1324   # APP-C instantiation
1325   appc_private_port:
1326     type: OS::Neutron::Port
1327     properties:
1328       network: { get_resource: oam_ecomp }
1329       fixed_ips: [{"subnet": { get_resource: oam_ecomp_subnet }, "ip_address": { get_param: appc_ip_addr }}]
1330
1331   appc_floating_ip:
1332     type: OS::Neutron::FloatingIP
1333     properties:
1334       floating_network_id: { get_param: public_net_id }
1335       port_id: { get_resource: appc_private_port }
1336       floating_ip_address: { get_param: appc_float_ip }
1337
1338   appc_vm:
1339     type: OS::Nova::Server
1340     properties:
1341       image: { get_param: ubuntu_1404_image }
1342       flavor: { get_param: flavor_large }
1343       name:
1344         str_replace: 
1345           template: base-appc
1346           params:
1347             base: { get_param: vm_base_name }
1348       key_name: { get_resource: vm_key }
1349       networks:
1350         - port: { get_resource: appc_private_port }
1351       user_data_format: RAW
1352       user_data:
1353         str_replace:
1354           params:
1355             __nexus_repo__: { get_param: nexus_repo }
1356             __nexus_docker_repo__: { get_param: nexus_docker_repo }
1357             __nexus_username__: { get_param: nexus_username }
1358             __nexus_password__: { get_param: nexus_password }
1359             __dmaap_topic__: { get_param: dmaap_topic }
1360             __artifacts_version__: { get_param: artifacts_version }
1361             __dns_ip_addr__: { get_param: dns_ip_addr }
1362             __docker_version__: { get_param: docker_version }
1363             __gerrit_branch__: { get_param: gerrit_branch }
1364             __cloud_env__: { get_param: cloud_env }
1365             __external_dns__: { get_param: external_dns }
1366           template: |
1367             #!/bin/bash
1368
1369             # Create configuration files
1370             mkdir -p /opt/config
1371             echo "__nexus_repo__" > /opt/config/nexus_repo.txt
1372             echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
1373             echo "__nexus_username__" > /opt/config/nexus_username.txt
1374             echo "__nexus_password__" > /opt/config/nexus_password.txt
1375             echo "__artifacts_version__" > /opt/config/artifacts_version.txt
1376             echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
1377             echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
1378             echo "__docker_version__" > /opt/config/docker_version.txt
1379             echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
1380             echo "__cloud_env__" > /opt/config/cloud_env.txt
1381             echo "__external_dns__" > /opt/config/external_dns.txt
1382
1383             # Download and run install script
1384             curl -k __nexus_repo__/org.openecomp.demo/boot/__artifacts_version__/appc_install.sh -o /opt/appc_install.sh
1385             cd /opt
1386             chmod +x appc_install.sh
1387             ./appc_install.sh