Merge "Extend security group for VNF scale out"
[integration.git] / deployment / heat / onap-oom / parts / onap-oom-1.yaml
1 heat_template_version: 2015-10-15
2 description: ONAP on Kubernetes using OOM
3
4 parameters:
5   docker_proxy:
6     type: string
7
8   apt_proxy:
9     type: string
10
11   public_net_id:
12     type: string
13     description: The ID of the Public network for floating IP address allocation
14
15   oam_network_cidr:
16     type: string
17     description: CIDR of the OAM ONAP network
18
19   ubuntu_1604_image:
20     type: string
21     description: Name of the Ubuntu 16.04 image
22
23   rancher_vm_flavor:
24     type: string
25     description: VM flavor for Rancher
26
27   k8s_vm_flavor:
28     type: string
29     description: VM flavor for k8s hosts
30
31   etcd_vm_flavor:
32     type: string
33     description: VM flavor for etcd hosts
34
35   orch_vm_flavor:
36     type: string
37     description: VM flavor for orch hosts
38
39   integration_override_yaml:
40     type: string
41     description: Content for integration_override.yaml
42
43   integration_gerrit_branch:
44     type: string
45     default: "master"
46
47   integration_gerrit_refspec:
48     type: string
49     default: "refs/heads/master"
50
51   oom_gerrit_branch:
52     type: string
53     default: "master"
54
55   oom_gerrit_refspec:
56     type: string
57     default: "refs/heads/master"
58
59   docker_manifest:
60     type: string
61     default: ""
62
63   key_name:
64     type: string
65     default: "onap_key"
66
67   docker_version:
68     type: string
69     default: "17.03.2"
70
71   rancher_version:
72     type: string
73     default: "1.6.22"
74
75   rancher_agent_version:
76     type: string
77     default: "1.2.11"
78
79   kubectl_version:
80     type: string
81     default: "1.11.2"
82
83   helm_version:
84     type: string
85     default: "2.9.1"
86
87   helm_deploy_delay:
88     type: string
89     default: "2m"
90
91   use_ramdisk:
92     type: string
93     description: Set to "true" if you want to use a RAM disk for /dockerdata-nfs/.
94     default: "false"
95
96 resources:
97   random-str:
98     type: OS::Heat::RandomString
99     properties:
100       length: 4
101
102   # ONAP security group
103   onap_sg:
104     type: OS::Neutron::SecurityGroup
105     properties:
106       name:
107         str_replace:
108           template: base_rand
109           params:
110             base: onap_sg
111             rand: { get_resource: random-str }
112       description: security group used by ONAP
113       rules:
114         # All egress traffic
115         - direction: egress
116           ethertype: IPv4
117         - direction: egress
118           ethertype: IPv6
119         # ingress traffic
120         # ICMP
121         - protocol: icmp
122         - protocol: udp
123           port_range_min: 1
124           port_range_max: 65535
125         - protocol: tcp
126           port_range_min: 1
127           port_range_max: 65535
128         # Protocols used for vLB/vDNS use case
129         - protocol: 47
130         - protocol: 53
131         - protocol: 132
132
133
134   # ONAP management private network
135   oam_network:
136     type: OS::Neutron::Net
137     properties:
138       name:
139         str_replace:
140           template: oam_network_rand
141           params:
142             rand: { get_resource: random-str }
143
144   oam_subnet:
145     type: OS::Neutron::Subnet
146     properties:
147       name:
148         str_replace:
149           template: oam_network_rand
150           params:
151             rand: { get_resource: random-str }
152       network_id: { get_resource: oam_network }
153       cidr: { get_param: oam_network_cidr }
154       dns_nameservers: [ "8.8.8.8" ]
155
156   router:
157     type: OS::Neutron::Router
158     properties:
159       name:
160         list_join: ['-', [{ get_param: 'OS::stack_name' }, 'router']]
161       external_gateway_info:
162         network: { get_param: public_net_id }
163
164   router_interface:
165     type: OS::Neutron::RouterInterface
166     properties:
167       router_id: { get_resource: router }
168       subnet_id: { get_resource: oam_subnet }
169
170   rancher_private_port:
171     type: OS::Neutron::Port
172     properties:
173       network: { get_resource: oam_network }
174       fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
175       security_groups:
176       - { get_resource: onap_sg }
177
178   rancher_floating_ip:
179     type: OS::Neutron::FloatingIP
180     properties:
181       floating_network_id: { get_param: public_net_id }
182       port_id: { get_resource: rancher_private_port }
183