blob: 35b63044f686e4f1ff75fa6b944a103930626a0f [file] [log] [blame]
Hyunsun Moon06f98552019-08-15 13:44:47 -06001{{/*
2Copyright 2018-present Open Networking Foundation
3Copyright 2018 Intel Corporation
4
5Licensed under the Apache License, Version 2.0 (the "License");
6you may not use this file except in compliance with the License.
7You may obtain a copy of the License at
8
9http://www.apache.org/licenses/LICENSE-2.0
10
11Unless required by applicable law or agreed to in writing, software
12distributed under the License is distributed on an "AS IS" BASIS,
13WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14See the License for the specific language governing permissions and
15limitations under the License.
16*/}}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050017---
18apiVersion: apps/v1
19kind: StatefulSet
20metadata:
Hyunsun Moon06f98552019-08-15 13:44:47 -060021 name: spgwu
Hyunsun Moon834c28f2019-12-05 18:26:22 -080022 serviceName: spgwu-headless
Hyunsun Moona24d3f92019-06-19 03:04:58 -050023 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060024{{ tuple "spgwu" . | include "omec-data-plane.metadata_labels" | indent 4 }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050025spec:
26 replicas: 1
27 selector:
28 matchLabels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060029{{ tuple "spgwu" . | include "omec-data-plane.metadata_labels" | indent 6 }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050030 template:
31 metadata:
32 labels:
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060033{{ tuple "spgwu" . | include "omec-data-plane.metadata_labels" | indent 8 }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050034 annotations:
35 k8s.v1.cni.cncf.io/networks: '[
Hyunsun Moon7a921d12019-08-21 20:52:09 -050036 {
37 "name": "s1u-net",
38 "interface": {{ .Values.config.spgwu.s1u.device | quote }},
39 "ips": {{ .Values.config.spgwu.s1u.ip | quote }}
40 },
41 {
42 "name": "sgi-net",
43 "interface": {{ .Values.config.spgwu.sgi.device | quote }},
44 "ips": {{ .Values.config.spgwu.sgi.ip | quote }}
45 }
Hyunsun Moona24d3f92019-06-19 03:04:58 -050046 ]'
47 spec:
Hyunsun Moon06f98552019-08-15 13:44:47 -060048 {{- if .Values.nodeSelectors.enabled }}
Woojoong Kim314d57c2019-07-09 17:08:11 -070049 nodeSelector:
Hyunsun Moon06f98552019-08-15 13:44:47 -060050 {{ .Values.nodeSelectors.spgwu.label }}: {{ .Values.nodeSelectors.spgwu.value }}
51 {{- end }}
Hyunsun Moon7a007bb2019-08-19 16:41:36 -060052 {{- if not .Values.config.sriov.enabled }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050053 initContainers:
54 - name: spgwu-iptables-init
Hyunsun Moon06f98552019-08-15 13:44:47 -060055 image: {{ .Values.images.tags.init | quote }}
56 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050057 command: [ "sh", "-xec"]
58 securityContext:
59 capabilities:
60 add:
61 - NET_ADMIN
62 args:
63 - iptables -I OUTPUT -p icmp --icmp-type destination-unreachable -j DROP;
64 - name: spgwu-af-iface-init
Hyunsun Moon06f98552019-08-15 13:44:47 -060065 image: {{ .Values.images.tags.init | quote }}
66 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050067 securityContext:
68 capabilities:
69 add:
70 - NET_ADMIN
71 command:
72 - /opt/dp/scripts/setup-af-iface.sh
73 volumeMounts:
74 - name: dp-script
75 mountPath: /opt/dp/scripts/setup-af-iface.sh
76 subPath: setup-af-iface.sh
Hyunsun Moon06f98552019-08-15 13:44:47 -060077 {{- end }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050078 containers:
Hyunsun Moon06f98552019-08-15 13:44:47 -060079 - name: spgwu
80 image: {{ .Values.images.tags.spgwu | quote }}
81 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -050082 stdin: true
83 tty: true
84 env:
85 - name: MEM_LIMIT
86 valueFrom:
87 resourceFieldRef:
Hyunsun Moon06f98552019-08-15 13:44:47 -060088 containerName: spgwu
Hyunsun Moona24d3f92019-06-19 03:04:58 -050089 resource: limits.memory
90 divisor: 1Mi
Hyunsun Moonc4a7d542019-08-22 18:53:40 -050091 - name: POD_IP
Hyunsun Moona24d3f92019-06-19 03:04:58 -050092 valueFrom:
93 fieldRef:
94 fieldPath: status.podIP
Woojoong Kim4866d752019-12-17 16:32:23 -080095 - name: DP_NAME
96 value: "{{ .Values.config.spgwu.dpName }}"
Hyunsun Moona24d3f92019-06-19 03:04:58 -050097 command: ["bash", "-xc"]
98 args:
99 - ip a;
Hyunsun Moon06f98552019-08-15 13:44:47 -0600100 /opt/dp/scripts/run.sh;
Hyunsun Moona24d3f92019-06-19 03:04:58 -0500101 volumeMounts:
102 - name: dp-script
Hyunsun Moon06f98552019-08-15 13:44:47 -0600103 mountPath: /opt/dp/scripts/run.sh
104 subPath: run.sh
Hyunsun Moona24d3f92019-06-19 03:04:58 -0500105 - name: dp-config
106 mountPath: /etc/dp/config
Hyunsun Moona24d3f92019-06-19 03:04:58 -0500107 resources:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600108 requests:
109 {{- if .Values.resources.enabled }}
110{{ toYaml .Values.resources.spgwu.requests | indent 12 }}
111 {{- end }}
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600112 {{- if .Values.config.sriov.enabled }}
Woojoong Kime455aab2019-07-12 10:53:43 -0700113 intel.com/sriov_vfio: 2
Hyunsun Moon06f98552019-08-15 13:44:47 -0600114 {{- end }}
115 limits:
116 {{- if .Values.resources.enabled }}
117{{ toYaml .Values.resources.spgwu.limits | indent 12 }}
118 {{- end }}
Hyunsun Moon7a007bb2019-08-19 16:41:36 -0600119 {{- if .Values.config.sriov.enabled }}
Hyunsun Moon06f98552019-08-15 13:44:47 -0600120 intel.com/sriov_vfio: 2
121 {{- end }}
Hyunsun Moona24d3f92019-06-19 03:04:58 -0500122 securityContext:
123 capabilities:
124 add:
125 - IPC_LOCK
126 volumes:
127 - name: dp-script
128 configMap:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600129 name: spgwu
Hyunsun Moona24d3f92019-06-19 03:04:58 -0500130 defaultMode: 493
131 - name: dp-config
132 configMap:
Hyunsun Moon06f98552019-08-15 13:44:47 -0600133 name: spgwu
Hyunsun Moona24d3f92019-06-19 03:04:58 -0500134 defaultMode: 420