blob: 963f27a2c593162719b634c619a0c91013014544 [file] [log] [blame]
Jeremy Ronquillo223db002020-06-05 10:28:22 -07001{{/*
Jeremy Ronquilloec2d3e42020-06-05 11:33:39 -07002# Copyright 2020-present Open Networking Foundation
Jeremy Ronquillo223db002020-06-05 10:28:22 -07003
Jeremy Ronquillo6046ce32020-06-18 11:06:29 -07004# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
Jeremy Ronquillo223db002020-06-05 10:28:22 -07005*/}}
6
7---
8apiVersion: apps/v1
9kind: StatefulSet
10metadata:
11 name: spgwu
12 serviceName: spgwu-headless
13 labels:
14{{ tuple "spgwu" . | include "omec-user-plane.metadata_labels" | indent 4 }}
15spec:
16 replicas: 1
17 selector:
18 matchLabels:
19{{ tuple "spgwu" . | include "omec-user-plane.metadata_labels" | indent 6 }}
20 template:
21 metadata:
22 labels:
23{{ tuple "spgwu" . | include "omec-user-plane.metadata_labels" | indent 8 }}
24 annotations:
25 k8s.v1.cni.cncf.io/networks: '[
26 {
27 "name": "s1u-net",
28 "interface": {{ .Values.config.spgwu.s1u.device | quote }},
29 "ips": {{ .Values.config.spgwu.s1u.ip | quote }}
30 },
31 {
32 "name": "sgi-net",
33 "interface": {{ .Values.config.spgwu.sgi.device | quote }},
34 "ips": {{ .Values.config.spgwu.sgi.ip | quote }}
35 }
36 ]'
37 spec:
38 shareProcessNamespace: true
39 {{- if .Values.nodeSelectors.enabled }}
40 nodeSelector:
41 {{ .Values.nodeSelectors.spgwu.label }}: {{ .Values.nodeSelectors.spgwu.value }}
42 {{- end }}
Hyunsun Moon918f26b2020-06-11 13:16:39 -070043 initContainers:
44 - name: bess-init
45 image: {{ .Values.images.tags.bess | quote }}
46 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
47 command: ["sh", "-xec"]
48 args:
Hyunsun Moon617dc052020-06-21 20:13:22 -050049 - ip route replace {{ .Values.config.spgwu.enb.subnet }} via {{ .Values.config.spgwu.s1u.gateway }};
50 ip route replace default via {{ .Values.config.spgwu.sgi.gateway }} metric 110;
51 iptables -I OUTPUT -p icmp --icmp-type port-unreachable -j DROP;
Hyunsun Moon918f26b2020-06-11 13:16:39 -070052 securityContext:
53 capabilities:
54 add:
55 - NET_ADMIN
Jeremy Ronquillo223db002020-06-05 10:28:22 -070056 {{- if .Values.config.coreDump.enabled }}
57{{ tuple "spgwu" . | include "omec-user-plane.coredump_init" | indent 8 }}
58 {{- end }}
59 containers:
Jeremy Ronquillo223db002020-06-05 10:28:22 -070060 - name: bessd
61 image: {{ .Values.images.tags.bess | quote }}
62 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
63 securityContext:
Jeremy Ronquillo223db002020-06-05 10:28:22 -070064 capabilities:
65 add:
66 - IPC_LOCK
67 - NET_ADMIN
68 stdin: true
69 tty: true
Hyunsun Moon617dc052020-06-21 20:13:22 -050070 command: ["/bin/bash", "-xc"]
71 args:
72 {{- if .Values.config.spgwu.hugepage.enabled }}
73 - bessd -f -grpc-url=0.0.0.0:10514
74 {{- else }}
75 - bessd -m 0 -f -grpc-url=0.0.0.0:10514
76 {{- end }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -070077 lifecycle:
78 postStart:
79 exec:
80 command: ["/etc/bess/conf/bessd-poststart.sh"]
81 livenessProbe:
82 tcpSocket:
83 port: 10514
84 initialDelaySeconds: 15
85 periodSeconds: 20
86 resources:
87 requests:
88 {{- if .Values.resources.enabled }}
89{{ toYaml .Values.resources.bess.requests | indent 12 }}
90 {{- end }}
Hyunsun Moon617dc052020-06-21 20:13:22 -050091 {{- if .Values.config.spgwu.hugepage.enabled }}
92 hugepages-1Gi: 2Gi
93 {{- end }}
94 {{- if .Values.config.spgwu.sriov.enabled }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -070095 intel.com/sriov_vfio_s1u_net: 1
96 intel.com/sriov_vfio_sgi_net: 1
97 {{- end }}
98 limits:
99 {{- if .Values.resources.enabled }}
100{{ toYaml .Values.resources.bess.limits | indent 12 }}
101 {{- end }}
Hyunsun Moon617dc052020-06-21 20:13:22 -0500102 {{- if .Values.config.spgwu.hugepage.enabled }}
103 hugepages-1Gi: 2Gi
104 {{- end }}
105 {{- if .Values.config.spgwu.sriov.enabled }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -0700106 intel.com/sriov_vfio_s1u_net: 1
107 intel.com/sriov_vfio_sgi_net: 1
108 {{- end }}
109 env:
110 - name: CONF_FILE
111 value: /etc/bess/conf/spgwu.json
112 volumeMounts:
Hyunsun Moon617dc052020-06-21 20:13:22 -0500113 {{- if .Values.config.spgwu.hugepage.enabled }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -0700114 - name: hugepages
115 mountPath: /dev/hugepages
Hyunsun Moon617dc052020-06-21 20:13:22 -0500116 {{- end }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -0700117 - name: configs
118 mountPath: /etc/bess/conf
119 {{- if .Values.config.coreDump.enabled }}
120 - name: coredump
121 mountPath: /tmp/coredump
122 {{- end }}
Hyunsun Moon918f26b2020-06-11 13:16:39 -0700123 - name: routectl
124 image: {{ .Values.images.tags.bess | quote }}
125 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
126 env:
127 - name: PYTHONUNBUFFERED
128 value: "1"
129 command: ["/opt/bess/bessctl/conf/route_control.py"]
130 args:
131 - -i
132 - {{ .Values.config.spgwu.s1u.device }}
133 - {{ .Values.config.spgwu.sgi.device }}
134 {{- if .Values.resources.enabled }}
135 resources:
136{{ toYaml .Values.resources.routectl | indent 10 }}
137 {{- end }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -0700138 - name: web
139 image: {{ .Values.images.tags.bess | quote }}
140 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
141 command: ["/bin/bash", "-xc", "bessctl http 0.0.0.0 8000"]
142 {{- if .Values.resources.enabled }}
143 resources:
144{{ toYaml .Values.resources.web | indent 10 }}
145 {{- end }}
146 - name: cpiface
147 image: {{ .Values.images.tags.cpiface | quote }}
148 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
149 env:
150 - name: ZMQD_IP
151 valueFrom:
152 fieldRef:
153 fieldPath: status.podIP
154 - name: GLOG_v
155 value: "1"
156 command: ["zmq-cpiface"]
157 args:
158 - --hostname
159 - {{ .Values.config.spgwu.name | quote }}
160 - --zmqd_nb_ip
161 - {{ .Values.config.spgwu.zmq.spgwc.addr | quote }}
162 - --zmqd_nb_port
163 - {{ .Values.config.spgwu.zmq.spgwc.port | quote }}
164 - --zmqd_recv_port
165 - {{ .Values.config.spgwu.zmq.recvPort | quote }}
166 - --zmqd_ip
167 - $(ZMQD_IP)
168 - --s1u_sgw_ip
169 - {{ (split "/" .Values.config.spgwu.s1u.ip)._0 | quote }}
170 {{- if .Values.resources.enabled }}
171 resources:
172{{ toYaml .Values.resources.cpiface | indent 10 }}
173 {{- end }}
174 volumes:
175 - name: configs
176 configMap:
177 name: spgwu
178 defaultMode: 493
Hyunsun Moon617dc052020-06-21 20:13:22 -0500179 {{- if .Values.config.spgwu.hugepage.enabled }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -0700180 - name: hugepages
181 emptyDir:
182 medium: HugePages
Hyunsun Moon617dc052020-06-21 20:13:22 -0500183 {{- end }}
Jeremy Ronquillo223db002020-06-05 10:28:22 -0700184 {{- if .Values.config.coreDump.enabled }}
185 - name: host-rootfs
186 hostPath:
187 path: /
188 - name: coredump
189 hostPath:
190 path: {{ .Values.config.coreDump.path }}
191 {{- end }}