Merge "Update NBI docker for master (Casablanca)"
[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   integration_override_yaml:
35     type: string
36     description: Content for integration_override.yaml
37
38   integration_gerrit_branch:
39     type: string
40     default: "master"
41
42   integration_gerrit_refspec:
43     type: string
44     default: "refs/heads/master"
45
46   oom_gerrit_branch:
47     type: string
48     default: "master"
49
50   oom_gerrit_refspec:
51     type: string
52     default: "refs/heads/master"
53
54   docker_manifest:
55     type: string
56     default: ""
57
58   key_name:
59     type: string
60     default: "onap_key"
61
62   docker_version:
63     type: string
64     default: "17.03"
65
66   rancher_version:
67     type: string
68     default: "1.6.18"
69
70   rancher_agent_version:
71     type: string
72     default: "1.2.10"
73
74   kubectl_version:
75     type: string
76     default: "1.8.10"
77
78   helm_version:
79     type: string
80     default: "2.9.1"
81
82 resources:
83   random-str:
84     type: OS::Heat::RandomString
85     properties:
86       length: 4
87
88   # ONAP security group
89   onap_sg:
90     type: OS::Neutron::SecurityGroup
91     properties:
92       name:
93         str_replace:
94           template: base_rand
95           params:
96             base: onap_sg
97             rand: { get_resource: random-str }
98       description: security group used by ONAP
99       rules:
100         # All egress traffic
101         - direction: egress
102           ethertype: IPv4
103         - direction: egress
104           ethertype: IPv6
105         # ingress traffic
106         # ICMP
107         - protocol: icmp
108         - protocol: udp
109           port_range_min: 1
110           port_range_max: 65535
111         - protocol: tcp
112           port_range_min: 1
113           port_range_max: 65535
114
115
116   # ONAP management private network
117   oam_network:
118     type: OS::Neutron::Net
119     properties:
120       name:
121         str_replace:
122           template: oam_network_rand
123           params:
124             rand: { get_resource: random-str }
125
126   oam_subnet:
127     type: OS::Neutron::Subnet
128     properties:
129       name:
130         str_replace:
131           template: oam_network_rand
132           params:
133             rand: { get_resource: random-str }
134       network_id: { get_resource: oam_network }
135       cidr: { get_param: oam_network_cidr }
136       dns_nameservers: [ "8.8.8.8" ]
137
138   router:
139     type: OS::Neutron::Router
140     properties:
141       name:
142         list_join: ['-', [{ get_param: 'OS::stack_name' }, 'router']]
143       external_gateway_info:
144         network: { get_param: public_net_id }
145
146   router_interface:
147     type: OS::Neutron::RouterInterface
148     properties:
149       router_id: { get_resource: router }
150       subnet_id: { get_resource: oam_subnet }
151
152   rancher_private_port:
153     type: OS::Neutron::Port
154     properties:
155       network: { get_resource: oam_network }
156       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
157       security_groups:
158       - { get_resource: onap_sg }
159
160   rancher_floating_ip:
161     type: OS::Neutron::FloatingIP
162     properties:
163       floating_network_id: { get_param: public_net_id }
164       port_id: { get_resource: rancher_private_port }
165
166   rancher_vm:
167     type: OS::Nova::Server
168     properties:
169       name:
170         list_join: ['-', [{ get_param: 'OS::stack_name' }, 'rancher']]
171       image: { get_param: ubuntu_1604_image }
172       flavor: { get_param: rancher_vm_flavor }
173       key_name: { get_param: key_name }
174       networks:
175       - port: { get_resource: rancher_private_port }
176       user_data_format: RAW
177       user_data:
178         str_replace:
179           template:
180             get_file: rancher_vm_entrypoint.sh
181           params:
182             __docker_proxy__: { get_param: docker_proxy }
183             __apt_proxy__: { get_param: apt_proxy }
184             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
185             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
186             __integration_override_yaml__: { get_param: integration_override_yaml }
187             __integration_gerrit_branch__: { get_param: integration_gerrit_branch }
188             __integration_gerrit_refspec__: { get_param: integration_gerrit_refspec }
189             __oom_gerrit_branch__: { get_param: oom_gerrit_branch }
190             __oom_gerrit_refspec__: { get_param: oom_gerrit_refspec }
191             __docker_manifest__: { get_param: docker_manifest }
192             __docker_version__: { get_param: docker_version }
193             __rancher_version__: { get_param: rancher_version }
194             __rancher_agent_version__: { get_param: rancher_agent_version }
195             __kubectl_version__: { get_param: kubectl_version }
196             __helm_version__: { get_param: helm_version }
197             __public_net_id__: { get_param: public_net_id }
198             __oam_network_cidr__: { get_param: oam_network_cidr }
199             __oam_network_id__: { get_resource: oam_network }
200             __oam_subnet_id__: { get_resource: oam_subnet }
201             __k8s_1_vm_ip__: { get_attr: [k8s_1_floating_ip, floating_ip_address] }
202             __k8s_vm_ips__: [
203               get_attr: [k8s_1_floating_ip, floating_ip_address],
204               get_attr: [k8s_2_floating_ip, floating_ip_address],
205               get_attr: [k8s_3_floating_ip, floating_ip_address],
206               get_attr: [k8s_4_floating_ip, floating_ip_address],
207               get_attr: [k8s_5_floating_ip, floating_ip_address],
208               get_attr: [k8s_6_floating_ip, floating_ip_address],
209             ]
210             __k8s_private_ips__: [
211               get_attr: [k8s_1_floating_ip, fixed_ip_address],
212               get_attr: [k8s_2_floating_ip, fixed_ip_address],
213               get_attr: [k8s_3_floating_ip, fixed_ip_address],
214               get_attr: [k8s_4_floating_ip, fixed_ip_address],
215               get_attr: [k8s_5_floating_ip, fixed_ip_address],
216               get_attr: [k8s_6_floating_ip, fixed_ip_address],
217             ]
218   k8s_1_private_port:
219     type: OS::Neutron::Port
220     properties:
221       network: { get_resource: oam_network }
222       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
223       security_groups:
224       - { get_resource: onap_sg }
225
226   k8s_1_floating_ip:
227     type: OS::Neutron::FloatingIP
228     properties:
229       floating_network_id: { get_param: public_net_id }
230       port_id: { get_resource: k8s_1_private_port }
231
232   k8s_1_vm:
233     type: OS::Nova::Server
234     properties:
235       name:
236         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_1']]
237       image: { get_param: ubuntu_1604_image }
238       flavor: { get_param: k8s_vm_flavor }
239       key_name: { get_param: key_name }
240       networks:
241       - port: { get_resource: k8s_1_private_port }
242       user_data_format: RAW
243       user_data:
244         str_replace:
245           params:
246             __docker_proxy__: { get_param: docker_proxy }
247             __apt_proxy__: { get_param: apt_proxy }
248             __docker_version__: { get_param: docker_version }
249             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
250             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
251           template:
252             get_file: k8s_vm_entrypoint.sh
253
254   k8s_2_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_2_floating_ip:
263     type: OS::Neutron::FloatingIP
264     properties:
265       floating_network_id: { get_param: public_net_id }
266       port_id: { get_resource: k8s_2_private_port }
267
268   k8s_2_vm:
269     type: OS::Nova::Server
270     properties:
271       name:
272         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_2']]
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_2_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           template:
288             get_file: k8s_vm_entrypoint.sh
289
290   k8s_3_private_port:
291     type: OS::Neutron::Port
292     properties:
293       network: { get_resource: oam_network }
294       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
295       security_groups:
296       - { get_resource: onap_sg }
297
298   k8s_3_floating_ip:
299     type: OS::Neutron::FloatingIP
300     properties:
301       floating_network_id: { get_param: public_net_id }
302       port_id: { get_resource: k8s_3_private_port }
303
304   k8s_3_vm:
305     type: OS::Nova::Server
306     properties:
307       name:
308         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_3']]
309       image: { get_param: ubuntu_1604_image }
310       flavor: { get_param: k8s_vm_flavor }
311       key_name: { get_param: key_name }
312       networks:
313       - port: { get_resource: k8s_3_private_port }
314       user_data_format: RAW
315       user_data:
316         str_replace:
317           params:
318             __docker_proxy__: { get_param: docker_proxy }
319             __apt_proxy__: { get_param: apt_proxy }
320             __docker_version__: { get_param: docker_version }
321             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
322             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
323           template:
324             get_file: k8s_vm_entrypoint.sh
325
326   k8s_4_private_port:
327     type: OS::Neutron::Port
328     properties:
329       network: { get_resource: oam_network }
330       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
331       security_groups:
332       - { get_resource: onap_sg }
333
334   k8s_4_floating_ip:
335     type: OS::Neutron::FloatingIP
336     properties:
337       floating_network_id: { get_param: public_net_id }
338       port_id: { get_resource: k8s_4_private_port }
339
340   k8s_4_vm:
341     type: OS::Nova::Server
342     properties:
343       name:
344         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_4']]
345       image: { get_param: ubuntu_1604_image }
346       flavor: { get_param: k8s_vm_flavor }
347       key_name: { get_param: key_name }
348       networks:
349       - port: { get_resource: k8s_4_private_port }
350       user_data_format: RAW
351       user_data:
352         str_replace:
353           params:
354             __docker_proxy__: { get_param: docker_proxy }
355             __apt_proxy__: { get_param: apt_proxy }
356             __docker_version__: { get_param: docker_version }
357             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
358             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
359           template:
360             get_file: k8s_vm_entrypoint.sh
361
362   k8s_5_private_port:
363     type: OS::Neutron::Port
364     properties:
365       network: { get_resource: oam_network }
366       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
367       security_groups:
368       - { get_resource: onap_sg }
369
370   k8s_5_floating_ip:
371     type: OS::Neutron::FloatingIP
372     properties:
373       floating_network_id: { get_param: public_net_id }
374       port_id: { get_resource: k8s_5_private_port }
375
376   k8s_5_vm:
377     type: OS::Nova::Server
378     properties:
379       name:
380         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_5']]
381       image: { get_param: ubuntu_1604_image }
382       flavor: { get_param: k8s_vm_flavor }
383       key_name: { get_param: key_name }
384       networks:
385       - port: { get_resource: k8s_5_private_port }
386       user_data_format: RAW
387       user_data:
388         str_replace:
389           params:
390             __docker_proxy__: { get_param: docker_proxy }
391             __apt_proxy__: { get_param: apt_proxy }
392             __docker_version__: { get_param: docker_version }
393             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
394             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
395           template:
396             get_file: k8s_vm_entrypoint.sh
397
398   k8s_6_private_port:
399     type: OS::Neutron::Port
400     properties:
401       network: { get_resource: oam_network }
402       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
403       security_groups:
404       - { get_resource: onap_sg }
405
406   k8s_6_floating_ip:
407     type: OS::Neutron::FloatingIP
408     properties:
409       floating_network_id: { get_param: public_net_id }
410       port_id: { get_resource: k8s_6_private_port }
411
412   k8s_6_vm:
413     type: OS::Nova::Server
414     properties:
415       name:
416         list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_6']]
417       image: { get_param: ubuntu_1604_image }
418       flavor: { get_param: k8s_vm_flavor }
419       key_name: { get_param: key_name }
420       networks:
421       - port: { get_resource: k8s_6_private_port }
422       user_data_format: RAW
423       user_data:
424         str_replace:
425           params:
426             __docker_proxy__: { get_param: docker_proxy }
427             __apt_proxy__: { get_param: apt_proxy }
428             __docker_version__: { get_param: docker_version }
429             __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
430             __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
431           template:
432             get_file: k8s_vm_entrypoint.sh
433
434 outputs:
435   rancher_vm_ip:
436     description: The IP address of the rancher instance
437     value: { get_attr: [rancher_floating_ip, floating_ip_address] }
438
439   k8s_1_vm_ip:
440     description: The IP address of the k8s_1 instance
441     value: { get_attr: [k8s_1_floating_ip, floating_ip_address] }
442
443   k8s_2_vm_ip:
444     description: The IP address of the k8s_2 instance
445     value: { get_attr: [k8s_2_floating_ip, floating_ip_address] }
446
447   k8s_3_vm_ip:
448     description: The IP address of the k8s_3 instance
449     value: { get_attr: [k8s_3_floating_ip, floating_ip_address] }
450
451   k8s_4_vm_ip:
452     description: The IP address of the k8s_4 instance
453     value: { get_attr: [k8s_4_floating_ip, floating_ip_address] }
454
455   k8s_5_vm_ip:
456     description: The IP address of the k8s_5 instance
457     value: { get_attr: [k8s_5_floating_ip, floating_ip_address] }
458
459   k8s_6_vm_ip:
460     description: The IP address of the k8s_6 instance
461     value: { get_attr: [k8s_6_floating_ip, floating_ip_address] }
462