7e255db5bb15c68d99a60a557d182a3a80e8b2b0
[integration.git] / deployment / heat / onap-oom / onap-oom.yaml
1 #
2 # Generated by scripts/gen-onap-oom-yaml.sh; MANUAL CHANGES WILL BE LOST
3 #
4 heat_template_version: 2015-10-15
5 description: ONAP on Kubernetes using OOM
6
7 parameters:
8   docker_proxy:
9     type: string
10
11   apt_proxy:
12     type: string
13
14   public_net_id:
15     type: string
16     description: The ID of the Public network for floating IP address allocation
17
18   oam_network_cidr:
19     type: string
20     description: CIDR of the OAM ONAP network
21
22   ubuntu_1604_image:
23     type: string
24     description: Name of the Ubuntu 16.04 image
25
26   rancher_vm_flavor:
27     type: string
28     description: VM flavor for Rancher
29
30   k8s_vm_flavor:
31     type: string
32     description: VM flavor for k8s hosts
33
34   etcd_vm_flavor:
35     type: string
36     description: VM flavor for etcd hosts
37
38   orch_vm_flavor:
39     type: string
40     description: VM flavor for orch hosts
41
42   integration_override_yaml:
43     type: string
44     description: Content for integration_override.yaml
45
46   integration_gerrit_branch:
47     type: string
48     default: "master"
49
50   integration_gerrit_refspec:
51     type: string
52     default: "refs/heads/master"
53
54   oom_gerrit_branch:
55     type: string
56     default: "master"
57
58   oom_gerrit_refspec:
59     type: string
60     default: "refs/heads/master"
61
62   docker_manifest:
63     type: string
64     default: ""
65
66   key_name:
67     type: string
68     default: "onap_key"
69
70   docker_version:
71     type: string
72     default: "17.03.2"
73
74   rancher_version:
75     type: string
76     default: "1.6.22"
77
78   rancher_agent_version:
79     type: string
80     default: "1.2.11"
81
82   kubectl_version:
83     type: string
84     default: "1.11.2"
85
86   helm_version:
87     type: string
88     default: "2.9.1"
89
90   helm_deploy_delay:
91     type: string
92     default: "2m"
93
94   use_ramdisk:
95     type: string
96     description: Set to "true" if you want to use a RAM disk for /dockerdata-nfs/.
97     default: "false"
98
99 resources:
100   random-str:
101     type: OS::Heat::RandomString
102     properties:
103       length: 4
104
105   # ONAP security group
106   onap_sg:
107     type: OS::Neutron::SecurityGroup
108     properties:
109       name:
110         str_replace:
111           template: base_rand
112           params:
113             base: onap_sg
114             rand: { get_resource: random-str }
115       description: security group used by ONAP
116       rules:
117         # All egress traffic
118         - direction: egress
119           ethertype: IPv4
120         - direction: egress
121           ethertype: IPv6
122         # ingress traffic
123         # ICMP
124         - protocol: icmp
125         - protocol: udp
126           port_range_min: 1
127           port_range_max: 65535
128         - protocol: tcp
129           port_range_min: 1
130           port_range_max: 65535
131         # Protocols used for vLB/vDNS use case
132         - protocol: 47
133         - protocol: 53
134         - protocol: 132
135
136
137   # ONAP management private network
138   oam_network:
139     type: OS::Neutron::Net
140     properties:
141       name:
142         str_replace:
143           template: oam_network_rand
144           params:
145             rand: { get_resource: random-str }
146
147   oam_subnet:
148     type: OS::Neutron::Subnet
149     properties:
150       name:
151         str_replace:
152           template: oam_network_rand
153           params:
154             rand: { get_resource: random-str }
155       network_id: { get_resource: oam_network }
156       cidr: { get_param: oam_network_cidr }
157       dns_nameservers: [ "8.8.8.8" ]
158
159   router:
160     type: OS::Neutron::Router
161     properties:
162       name:
163         list_join: ['-', [{ get_param: 'OS::stack_name' }, 'router']]
164       external_gateway_info:
165         network: { get_param: public_net_id }
166
167   router_interface:
168     type: OS::Neutron::RouterInterface
169     properties:
170       router_id: { get_resource: router }
171       subnet_id: { get_resource: oam_subnet }
172
173   rancher_private_port:
174     type: OS::Neutron::Port
175     properties:
176       network: { get_resource: oam_network }
177       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
178       security_groups:
179       - { get_resource: onap_sg }
180
181   rancher_floating_ip:
182     type: OS::Neutron::FloatingIP
183     properties:
184       floating_network_id: { get_param: public_net_id }
185       port_id: { get_resource: rancher_private_port }
186
187   rancher_vm:
188     type: OS::Nova::Server
189     properties:
190       name:
191         list_join: ['-', [{ get_param: 'OS::stack_name' }, 'rancher']]
192       image: { get_param: ubuntu_1604_image }
193       flavor: { get_param: rancher_vm_flavor }
194       key_name: { get_param: key_name }
195       networks:
196       - port: { get_resource: rancher_private_port }
197       user_data_format: RAW
198       user_data:
199         str_replace:
200           template:
201             get_file: rancher_vm_entrypoint.sh
202           params:
203             __docker_proxy__: { get_param: docker_proxy }
204             __apt_proxy__: { get_param: apt_proxy }
205             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
206             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
207             __integration_override_yaml__: { get_param: integration_override_yaml }
208             __integration_gerrit_branch__: { get_param: integration_gerrit_branch }
209             __integration_gerrit_refspec__: { get_param: integration_gerrit_refspec }
210             __oom_gerrit_branch__: { get_param: oom_gerrit_branch }
211             __oom_gerrit_refspec__: { get_param: oom_gerrit_refspec }
212             __docker_manifest__: { get_param: docker_manifest }
213             __docker_version__: { get_param: docker_version }
214             __rancher_version__: { get_param: rancher_version }
215             __rancher_agent_version__: { get_param: rancher_agent_version }
216             __kubectl_version__: { get_param: kubectl_version }
217             __helm_version__: { get_param: helm_version }
218             __helm_deploy_delay__: { get_param: helm_deploy_delay }
219             __use_ramdisk__: { get_param: use_ramdisk }
220             __public_net_id__: { get_param: public_net_id }
221             __oam_network_cidr__: { get_param: oam_network_cidr }
222             __oam_network_id__: { get_resource: oam_network }
223             __oam_subnet_id__: { get_resource: oam_subnet }
224             __sec_group__: { get_resource: onap_sg }
225             __k8s_01_vm_ip__: { get_attr: [k8s_01_floating_ip, floating_ip_address] }
226             __k8s_vm_ips__: [
227               get_attr: [k8s_01_floating_ip, floating_ip_address],
228               get_attr: [k8s_02_floating_ip, floating_ip_address],
229               get_attr: [k8s_03_floating_ip, floating_ip_address],
230               get_attr: [k8s_04_floating_ip, floating_ip_address],
231               get_attr: [k8s_05_floating_ip, floating_ip_address],
232               get_attr: [k8s_06_floating_ip, floating_ip_address],
233               get_attr: [k8s_07_floating_ip, floating_ip_address],
234               get_attr: [k8s_08_floating_ip, floating_ip_address],
235               get_attr: [k8s_09_floating_ip, floating_ip_address],
236               get_attr: [k8s_10_floating_ip, floating_ip_address],
237               get_attr: [k8s_11_floating_ip, floating_ip_address],
238               get_attr: [k8s_12_floating_ip, floating_ip_address],
239             ]
240             __k8s_private_ips__: [
241               get_attr: [k8s_01_floating_ip, fixed_ip_address],
242               get_attr: [k8s_02_floating_ip, fixed_ip_address],
243               get_attr: [k8s_03_floating_ip, fixed_ip_address],
244               get_attr: [k8s_04_floating_ip, fixed_ip_address],
245               get_attr: [k8s_05_floating_ip, fixed_ip_address],
246               get_attr: [k8s_06_floating_ip, fixed_ip_address],
247               get_attr: [k8s_07_floating_ip, fixed_ip_address],
248               get_attr: [k8s_08_floating_ip, fixed_ip_address],
249               get_attr: [k8s_09_floating_ip, fixed_ip_address],
250               get_attr: [k8s_10_floating_ip, fixed_ip_address],
251               get_attr: [k8s_11_floating_ip, fixed_ip_address],
252               get_attr: [k8s_12_floating_ip, fixed_ip_address],
253             ]
254   k8s_01_private_port:
255     type: OS::Neutron::Port
256     properties:
257       network: { get_resource: oam_network }
258       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
259       security_groups:
260       - { get_resource: onap_sg }
261
262   k8s_01_floating_ip:
263     type: OS::Neutron::FloatingIP
264     properties:
265       floating_network_id: { get_param: public_net_id }
266       port_id: { get_resource: k8s_01_private_port }
267
268   k8s_01_vm:
269     type: OS::Nova::Server
270     properties:
271       name:
272         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '01' ] ]
273       image: { get_param: ubuntu_1604_image }
274       flavor: { get_param: k8s_vm_flavor }
275       key_name: { get_param: key_name }
276       networks:
277       - port: { get_resource: k8s_01_private_port }
278       user_data_format: RAW
279       user_data:
280         str_replace:
281           params:
282             __docker_proxy__: { get_param: docker_proxy }
283             __apt_proxy__: { get_param: apt_proxy }
284             __docker_version__: { get_param: docker_version }
285             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
286             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
287             __host_label__: 'compute'
288           template:
289             get_file: k8s_vm_entrypoint.sh
290
291   k8s_02_private_port:
292     type: OS::Neutron::Port
293     properties:
294       network: { get_resource: oam_network }
295       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
296       security_groups:
297       - { get_resource: onap_sg }
298
299   k8s_02_floating_ip:
300     type: OS::Neutron::FloatingIP
301     properties:
302       floating_network_id: { get_param: public_net_id }
303       port_id: { get_resource: k8s_02_private_port }
304
305   k8s_02_vm:
306     type: OS::Nova::Server
307     properties:
308       name:
309         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '02' ] ]
310       image: { get_param: ubuntu_1604_image }
311       flavor: { get_param: k8s_vm_flavor }
312       key_name: { get_param: key_name }
313       networks:
314       - port: { get_resource: k8s_02_private_port }
315       user_data_format: RAW
316       user_data:
317         str_replace:
318           params:
319             __docker_proxy__: { get_param: docker_proxy }
320             __apt_proxy__: { get_param: apt_proxy }
321             __docker_version__: { get_param: docker_version }
322             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
323             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
324             __host_label__: 'compute'
325           template:
326             get_file: k8s_vm_entrypoint.sh
327
328   k8s_03_private_port:
329     type: OS::Neutron::Port
330     properties:
331       network: { get_resource: oam_network }
332       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
333       security_groups:
334       - { get_resource: onap_sg }
335
336   k8s_03_floating_ip:
337     type: OS::Neutron::FloatingIP
338     properties:
339       floating_network_id: { get_param: public_net_id }
340       port_id: { get_resource: k8s_03_private_port }
341
342   k8s_03_vm:
343     type: OS::Nova::Server
344     properties:
345       name:
346         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '03' ] ]
347       image: { get_param: ubuntu_1604_image }
348       flavor: { get_param: k8s_vm_flavor }
349       key_name: { get_param: key_name }
350       networks:
351       - port: { get_resource: k8s_03_private_port }
352       user_data_format: RAW
353       user_data:
354         str_replace:
355           params:
356             __docker_proxy__: { get_param: docker_proxy }
357             __apt_proxy__: { get_param: apt_proxy }
358             __docker_version__: { get_param: docker_version }
359             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
360             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
361             __host_label__: 'compute'
362           template:
363             get_file: k8s_vm_entrypoint.sh
364
365   k8s_04_private_port:
366     type: OS::Neutron::Port
367     properties:
368       network: { get_resource: oam_network }
369       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
370       security_groups:
371       - { get_resource: onap_sg }
372
373   k8s_04_floating_ip:
374     type: OS::Neutron::FloatingIP
375     properties:
376       floating_network_id: { get_param: public_net_id }
377       port_id: { get_resource: k8s_04_private_port }
378
379   k8s_04_vm:
380     type: OS::Nova::Server
381     properties:
382       name:
383         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '04' ] ]
384       image: { get_param: ubuntu_1604_image }
385       flavor: { get_param: k8s_vm_flavor }
386       key_name: { get_param: key_name }
387       networks:
388       - port: { get_resource: k8s_04_private_port }
389       user_data_format: RAW
390       user_data:
391         str_replace:
392           params:
393             __docker_proxy__: { get_param: docker_proxy }
394             __apt_proxy__: { get_param: apt_proxy }
395             __docker_version__: { get_param: docker_version }
396             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
397             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
398             __host_label__: 'compute'
399           template:
400             get_file: k8s_vm_entrypoint.sh
401
402   k8s_05_private_port:
403     type: OS::Neutron::Port
404     properties:
405       network: { get_resource: oam_network }
406       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
407       security_groups:
408       - { get_resource: onap_sg }
409
410   k8s_05_floating_ip:
411     type: OS::Neutron::FloatingIP
412     properties:
413       floating_network_id: { get_param: public_net_id }
414       port_id: { get_resource: k8s_05_private_port }
415
416   k8s_05_vm:
417     type: OS::Nova::Server
418     properties:
419       name:
420         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '05' ] ]
421       image: { get_param: ubuntu_1604_image }
422       flavor: { get_param: k8s_vm_flavor }
423       key_name: { get_param: key_name }
424       networks:
425       - port: { get_resource: k8s_05_private_port }
426       user_data_format: RAW
427       user_data:
428         str_replace:
429           params:
430             __docker_proxy__: { get_param: docker_proxy }
431             __apt_proxy__: { get_param: apt_proxy }
432             __docker_version__: { get_param: docker_version }
433             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
434             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
435             __host_label__: 'compute'
436           template:
437             get_file: k8s_vm_entrypoint.sh
438
439   k8s_06_private_port:
440     type: OS::Neutron::Port
441     properties:
442       network: { get_resource: oam_network }
443       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
444       security_groups:
445       - { get_resource: onap_sg }
446
447   k8s_06_floating_ip:
448     type: OS::Neutron::FloatingIP
449     properties:
450       floating_network_id: { get_param: public_net_id }
451       port_id: { get_resource: k8s_06_private_port }
452
453   k8s_06_vm:
454     type: OS::Nova::Server
455     properties:
456       name:
457         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '06' ] ]
458       image: { get_param: ubuntu_1604_image }
459       flavor: { get_param: k8s_vm_flavor }
460       key_name: { get_param: key_name }
461       networks:
462       - port: { get_resource: k8s_06_private_port }
463       user_data_format: RAW
464       user_data:
465         str_replace:
466           params:
467             __docker_proxy__: { get_param: docker_proxy }
468             __apt_proxy__: { get_param: apt_proxy }
469             __docker_version__: { get_param: docker_version }
470             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
471             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
472             __host_label__: 'compute'
473           template:
474             get_file: k8s_vm_entrypoint.sh
475
476   k8s_07_private_port:
477     type: OS::Neutron::Port
478     properties:
479       network: { get_resource: oam_network }
480       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
481       security_groups:
482       - { get_resource: onap_sg }
483
484   k8s_07_floating_ip:
485     type: OS::Neutron::FloatingIP
486     properties:
487       floating_network_id: { get_param: public_net_id }
488       port_id: { get_resource: k8s_07_private_port }
489
490   k8s_07_vm:
491     type: OS::Nova::Server
492     properties:
493       name:
494         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '07' ] ]
495       image: { get_param: ubuntu_1604_image }
496       flavor: { get_param: k8s_vm_flavor }
497       key_name: { get_param: key_name }
498       networks:
499       - port: { get_resource: k8s_07_private_port }
500       user_data_format: RAW
501       user_data:
502         str_replace:
503           params:
504             __docker_proxy__: { get_param: docker_proxy }
505             __apt_proxy__: { get_param: apt_proxy }
506             __docker_version__: { get_param: docker_version }
507             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
508             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
509             __host_label__: 'compute'
510           template:
511             get_file: k8s_vm_entrypoint.sh
512
513   k8s_08_private_port:
514     type: OS::Neutron::Port
515     properties:
516       network: { get_resource: oam_network }
517       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
518       security_groups:
519       - { get_resource: onap_sg }
520
521   k8s_08_floating_ip:
522     type: OS::Neutron::FloatingIP
523     properties:
524       floating_network_id: { get_param: public_net_id }
525       port_id: { get_resource: k8s_08_private_port }
526
527   k8s_08_vm:
528     type: OS::Nova::Server
529     properties:
530       name:
531         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '08' ] ]
532       image: { get_param: ubuntu_1604_image }
533       flavor: { get_param: k8s_vm_flavor }
534       key_name: { get_param: key_name }
535       networks:
536       - port: { get_resource: k8s_08_private_port }
537       user_data_format: RAW
538       user_data:
539         str_replace:
540           params:
541             __docker_proxy__: { get_param: docker_proxy }
542             __apt_proxy__: { get_param: apt_proxy }
543             __docker_version__: { get_param: docker_version }
544             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
545             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
546             __host_label__: 'compute'
547           template:
548             get_file: k8s_vm_entrypoint.sh
549
550   k8s_09_private_port:
551     type: OS::Neutron::Port
552     properties:
553       network: { get_resource: oam_network }
554       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
555       security_groups:
556       - { get_resource: onap_sg }
557
558   k8s_09_floating_ip:
559     type: OS::Neutron::FloatingIP
560     properties:
561       floating_network_id: { get_param: public_net_id }
562       port_id: { get_resource: k8s_09_private_port }
563
564   k8s_09_vm:
565     type: OS::Nova::Server
566     properties:
567       name:
568         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '09' ] ]
569       image: { get_param: ubuntu_1604_image }
570       flavor: { get_param: k8s_vm_flavor }
571       key_name: { get_param: key_name }
572       networks:
573       - port: { get_resource: k8s_09_private_port }
574       user_data_format: RAW
575       user_data:
576         str_replace:
577           params:
578             __docker_proxy__: { get_param: docker_proxy }
579             __apt_proxy__: { get_param: apt_proxy }
580             __docker_version__: { get_param: docker_version }
581             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
582             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
583             __host_label__: 'compute'
584           template:
585             get_file: k8s_vm_entrypoint.sh
586
587   k8s_10_private_port:
588     type: OS::Neutron::Port
589     properties:
590       network: { get_resource: oam_network }
591       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
592       security_groups:
593       - { get_resource: onap_sg }
594
595   k8s_10_floating_ip:
596     type: OS::Neutron::FloatingIP
597     properties:
598       floating_network_id: { get_param: public_net_id }
599       port_id: { get_resource: k8s_10_private_port }
600
601   k8s_10_vm:
602     type: OS::Nova::Server
603     properties:
604       name:
605         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '10' ] ]
606       image: { get_param: ubuntu_1604_image }
607       flavor: { get_param: k8s_vm_flavor }
608       key_name: { get_param: key_name }
609       networks:
610       - port: { get_resource: k8s_10_private_port }
611       user_data_format: RAW
612       user_data:
613         str_replace:
614           params:
615             __docker_proxy__: { get_param: docker_proxy }
616             __apt_proxy__: { get_param: apt_proxy }
617             __docker_version__: { get_param: docker_version }
618             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
619             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
620             __host_label__: 'compute'
621           template:
622             get_file: k8s_vm_entrypoint.sh
623
624   k8s_11_private_port:
625     type: OS::Neutron::Port
626     properties:
627       network: { get_resource: oam_network }
628       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
629       security_groups:
630       - { get_resource: onap_sg }
631
632   k8s_11_floating_ip:
633     type: OS::Neutron::FloatingIP
634     properties:
635       floating_network_id: { get_param: public_net_id }
636       port_id: { get_resource: k8s_11_private_port }
637
638   k8s_11_vm:
639     type: OS::Nova::Server
640     properties:
641       name:
642         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '11' ] ]
643       image: { get_param: ubuntu_1604_image }
644       flavor: { get_param: k8s_vm_flavor }
645       key_name: { get_param: key_name }
646       networks:
647       - port: { get_resource: k8s_11_private_port }
648       user_data_format: RAW
649       user_data:
650         str_replace:
651           params:
652             __docker_proxy__: { get_param: docker_proxy }
653             __apt_proxy__: { get_param: apt_proxy }
654             __docker_version__: { get_param: docker_version }
655             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
656             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
657             __host_label__: 'compute'
658           template:
659             get_file: k8s_vm_entrypoint.sh
660
661   k8s_12_private_port:
662     type: OS::Neutron::Port
663     properties:
664       network: { get_resource: oam_network }
665       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
666       security_groups:
667       - { get_resource: onap_sg }
668
669   k8s_12_floating_ip:
670     type: OS::Neutron::FloatingIP
671     properties:
672       floating_network_id: { get_param: public_net_id }
673       port_id: { get_resource: k8s_12_private_port }
674
675   k8s_12_vm:
676     type: OS::Nova::Server
677     properties:
678       name:
679         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s', '12' ] ]
680       image: { get_param: ubuntu_1604_image }
681       flavor: { get_param: k8s_vm_flavor }
682       key_name: { get_param: key_name }
683       networks:
684       - port: { get_resource: k8s_12_private_port }
685       user_data_format: RAW
686       user_data:
687         str_replace:
688           params:
689             __docker_proxy__: { get_param: docker_proxy }
690             __apt_proxy__: { get_param: apt_proxy }
691             __docker_version__: { get_param: docker_version }
692             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
693             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
694             __host_label__: 'compute'
695           template:
696             get_file: k8s_vm_entrypoint.sh
697
698   etcd_1_private_port:
699     type: OS::Neutron::Port
700     properties:
701       network: { get_resource: oam_network }
702       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
703       security_groups:
704       - { get_resource: onap_sg }
705
706   etcd_1_floating_ip:
707     type: OS::Neutron::FloatingIP
708     properties:
709       floating_network_id: { get_param: public_net_id }
710       port_id: { get_resource: etcd_1_private_port }
711
712   etcd_1_vm:
713     type: OS::Nova::Server
714     properties:
715       name:
716         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '1' ] ]
717       image: { get_param: ubuntu_1604_image }
718       flavor: { get_param: etcd_vm_flavor }
719       key_name: { get_param: key_name }
720       networks:
721       - port: { get_resource: etcd_1_private_port }
722       user_data_format: RAW
723       user_data:
724         str_replace:
725           params:
726             __docker_proxy__: { get_param: docker_proxy }
727             __apt_proxy__: { get_param: apt_proxy }
728             __docker_version__: { get_param: docker_version }
729             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
730             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
731             __host_label__: 'etcd'
732           template:
733             get_file: k8s_vm_entrypoint.sh
734
735   etcd_2_private_port:
736     type: OS::Neutron::Port
737     properties:
738       network: { get_resource: oam_network }
739       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
740       security_groups:
741       - { get_resource: onap_sg }
742
743   etcd_2_floating_ip:
744     type: OS::Neutron::FloatingIP
745     properties:
746       floating_network_id: { get_param: public_net_id }
747       port_id: { get_resource: etcd_2_private_port }
748
749   etcd_2_vm:
750     type: OS::Nova::Server
751     properties:
752       name:
753         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '2' ] ]
754       image: { get_param: ubuntu_1604_image }
755       flavor: { get_param: etcd_vm_flavor }
756       key_name: { get_param: key_name }
757       networks:
758       - port: { get_resource: etcd_2_private_port }
759       user_data_format: RAW
760       user_data:
761         str_replace:
762           params:
763             __docker_proxy__: { get_param: docker_proxy }
764             __apt_proxy__: { get_param: apt_proxy }
765             __docker_version__: { get_param: docker_version }
766             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
767             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
768             __host_label__: 'etcd'
769           template:
770             get_file: k8s_vm_entrypoint.sh
771
772   etcd_3_private_port:
773     type: OS::Neutron::Port
774     properties:
775       network: { get_resource: oam_network }
776       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
777       security_groups:
778       - { get_resource: onap_sg }
779
780   etcd_3_floating_ip:
781     type: OS::Neutron::FloatingIP
782     properties:
783       floating_network_id: { get_param: public_net_id }
784       port_id: { get_resource: etcd_3_private_port }
785
786   etcd_3_vm:
787     type: OS::Nova::Server
788     properties:
789       name:
790         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'etcd', '3' ] ]
791       image: { get_param: ubuntu_1604_image }
792       flavor: { get_param: etcd_vm_flavor }
793       key_name: { get_param: key_name }
794       networks:
795       - port: { get_resource: etcd_3_private_port }
796       user_data_format: RAW
797       user_data:
798         str_replace:
799           params:
800             __docker_proxy__: { get_param: docker_proxy }
801             __apt_proxy__: { get_param: apt_proxy }
802             __docker_version__: { get_param: docker_version }
803             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
804             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
805             __host_label__: 'etcd'
806           template:
807             get_file: k8s_vm_entrypoint.sh
808
809   orch_1_private_port:
810     type: OS::Neutron::Port
811     properties:
812       network: { get_resource: oam_network }
813       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
814       security_groups:
815       - { get_resource: onap_sg }
816
817   orch_1_floating_ip:
818     type: OS::Neutron::FloatingIP
819     properties:
820       floating_network_id: { get_param: public_net_id }
821       port_id: { get_resource: orch_1_private_port }
822
823   orch_1_vm:
824     type: OS::Nova::Server
825     properties:
826       name:
827         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'orch', '1' ] ]
828       image: { get_param: ubuntu_1604_image }
829       flavor: { get_param: orch_vm_flavor }
830       key_name: { get_param: key_name }
831       networks:
832       - port: { get_resource: orch_1_private_port }
833       user_data_format: RAW
834       user_data:
835         str_replace:
836           params:
837             __docker_proxy__: { get_param: docker_proxy }
838             __apt_proxy__: { get_param: apt_proxy }
839             __docker_version__: { get_param: docker_version }
840             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
841             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
842             __host_label__: 'orchestration'
843           template:
844             get_file: k8s_vm_entrypoint.sh
845
846 outputs:
847   rancher_vm_ip:
848     description: The IP address of the rancher instance
849     value: { get_attr: [rancher_floating_ip, floating_ip_address] }
850
851   k8s_01_vm_ip:
852     description: The IP address of the k8s_01 instance
853     value: { get_attr: [k8s_01_floating_ip, floating_ip_address] }
854
855   k8s_02_vm_ip:
856     description: The IP address of the k8s_02 instance
857     value: { get_attr: [k8s_02_floating_ip, floating_ip_address] }
858
859   k8s_03_vm_ip:
860     description: The IP address of the k8s_03 instance
861     value: { get_attr: [k8s_03_floating_ip, floating_ip_address] }
862
863   k8s_04_vm_ip:
864     description: The IP address of the k8s_04 instance
865     value: { get_attr: [k8s_04_floating_ip, floating_ip_address] }
866
867   k8s_05_vm_ip:
868     description: The IP address of the k8s_05 instance
869     value: { get_attr: [k8s_05_floating_ip, floating_ip_address] }
870
871   k8s_06_vm_ip:
872     description: The IP address of the k8s_06 instance
873     value: { get_attr: [k8s_06_floating_ip, floating_ip_address] }
874
875   k8s_07_vm_ip:
876     description: The IP address of the k8s_07 instance
877     value: { get_attr: [k8s_07_floating_ip, floating_ip_address] }
878
879   k8s_08_vm_ip:
880     description: The IP address of the k8s_08 instance
881     value: { get_attr: [k8s_08_floating_ip, floating_ip_address] }
882
883   k8s_09_vm_ip:
884     description: The IP address of the k8s_09 instance
885     value: { get_attr: [k8s_09_floating_ip, floating_ip_address] }
886
887   k8s_10_vm_ip:
888     description: The IP address of the k8s_10 instance
889     value: { get_attr: [k8s_10_floating_ip, floating_ip_address] }
890
891   k8s_11_vm_ip:
892     description: The IP address of the k8s_11 instance
893     value: { get_attr: [k8s_11_floating_ip, floating_ip_address] }
894
895   k8s_12_vm_ip:
896     description: The IP address of the k8s_12 instance
897     value: { get_attr: [k8s_12_floating_ip, floating_ip_address] }
898