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