Enabling helm3 & kubernetes 1.18 for RIC
[it/dep.git] / tools / k8s / heat / parts / part-1.yaml
1 heat_template_version: 2015-10-15
2 description: OpenStack HOT for RIC Kubernetes cluster
3 ################################################################################
4 #   Copyright (c) 2019 AT&T Intellectual Property.                             #
5 #   Copyright (c) 2019 Nokia.                                                  #
6 #                                                                              #
7 #   Licensed under the Apache License, Version 2.0 (the "License");            #
8 #   you may not use this file except in compliance with the License.           #
9 #   You may obtain a copy of the License at                                    #
10 #                                                                              #
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
20 parameters:
21   docker_proxy:
22     type: string
23     default: ""
24
25   apt_proxy:
26     type: string
27     default: ""
28
29   public_net_id:
30     type: string
31     description: The ID of the Public network for floating IP address allocation
32
33   public_v6net_id:
34     type: string
35     description: The ID of the IPv6 provider network for ipv6 interface IP address allocation
36
37   int_net_cidr:
38     type: string
39     description: CIDR of the OAM ONAP network
40
41   ubuntu_1604_image:
42     type: string
43     description: Name of the Ubuntu 16.04 image
44
45   k8s_vm_flavor:
46     type: string
47     description: VM flavor for k8s hosts
48
49   helm_override_yaml:
50     type: string
51     description: Content for helm_override.yaml
52
53   docker_manifest:
54     type: string
55     default: ""
56
57   key_name:
58     type: string
59     default: "id-oran-int"
60
61   docker_version:
62     type: string
63     default: "18.06.1"
64
65   k8s_version:
66     type: string
67     #default: "1.18.3"
68     default: "1.13.3"
69
70   k8s_cni_version:
71     type: string
72     default: "0.6.0"
73
74   helm_version:
75     type: string
76     #default: "3.2.3"
77     default: "2.12.3"
78
79   helm_deploy_delay:
80     type: string
81     default: "2m"
82
83   use_ramdisk:
84     type: string
85     description: Set to "true" if you want to use a RAM disk for /dockerdata-nfs/.
86     default: "false"
87
88   mtu:
89     type: number
90     default: 1500
91
92 resources:
93   random-str:
94     type: OS::Heat::RandomString
95     properties:
96       length: 4
97
98   cinder_volume:
99     type: OS::Cinder::Volume
100     properties:
101       size: 5
102       name:
103         str_replace:
104           template: volume_rand
105           params:
106             rand: { get_resource: random-str }
107
108   # RIC security group
109   ric_sg:
110     type: OS::Neutron::SecurityGroup
111     properties:
112       name:
113         str_replace:
114           template: base_rand
115           params:
116             base: ric_sg
117             rand: { get_resource: random-str }
118       description: security group for RIC traffic
119       rules:
120         # All egress traffic
121         - direction: egress
122           ethertype: IPv4
123         - direction: egress
124           ethertype: IPv6
125         # ingress traffic
126         # ICMP
127         - protocol: icmp
128           ethertype: IPv4
129         - protocol: icmp
130           ethertype: IPv6
131         - protocol: udp
132           ethertype: IPv4
133           port_range_min: 1
134           port_range_max: 65535
135         - protocol: udp
136           ethertype: IPv6
137           port_range_min: 1
138           port_range_max: 65535
139         - protocol: tcp
140           ethertype: IPv4
141           port_range_min: 1
142           port_range_max: 65535
143         - protocol: tcp
144           ethertype: IPv6
145           port_range_min: 1
146           port_range_max: 65535
147         # additional IP Protocols to allow
148         # SCTP
149         - protocol: 132
150           ethertype: IPv4
151         - protocol: 132
152           ethertype: IPv6
153
154
155   # RIC internal network
156   int_network:
157     type: OS::Neutron::Net
158     properties:
159       name:
160         str_replace:
161           template: ric_network_rand
162           params:
163             rand: { get_resource: random-str }
164
165   int_subnet:
166     type: OS::Neutron::Subnet
167     properties:
168       name:
169         str_replace:
170           template: oam_network_rand
171           params:
172             rand: { get_resource: random-str }
173       network_id: { get_resource: int_network }
174       cidr: { get_param: int_net_cidr }
175       dns_nameservers: [ "8.8.8.8" ]
176
177
178   router:
179     type: OS::Neutron::Router
180     properties:
181       name:
182         list_join: ['-', [{ get_param: 'OS::stack_name' }, 'router']]
183       external_gateway_info:
184         network: { get_param: public_net_id }
185
186   router_interface:
187     type: OS::Neutron::RouterInterface
188     properties:
189       router_id: { get_resource: router }
190       subnet_id: { get_resource: int_subnet }
191