blob: bcd58463b485498e0b310cc760dbcd575960a9eb [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 }}
43 {{- if .Values.config.coreDump.enabled }}
44{{ tuple "spgwu" . | include "omec-user-plane.coredump_init" | indent 8 }}
45 {{- end }}
46 containers:
47 - name: routectl
48 image: {{ .Values.images.tags.bess | quote }}
49 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
50 env:
51 - name: PYTHONUNBUFFERED
52 value: "1"
53 command: ["/opt/bess/bessctl/conf/route_control.py"]
54 args:
55 - -i
56 - {{ .Values.config.spgwu.s1u.device }}
57 - {{ .Values.config.spgwu.sgi.device }}
58 {{- if .Values.resources.enabled }}
59 resources:
60{{ toYaml .Values.resources.routectl | indent 10 }}
61 {{- end }}
62 - name: bessd
63 image: {{ .Values.images.tags.bess | quote }}
64 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
65 securityContext:
66 privileged: true
67 capabilities:
68 add:
69 - IPC_LOCK
70 - NET_ADMIN
71 stdin: true
72 tty: true
73 command: ["/bin/bash", "-xc", "bessd -f -grpc-url=0.0.0.0:10514;"]
74 lifecycle:
75 postStart:
76 exec:
77 command: ["/etc/bess/conf/bessd-poststart.sh"]
78 livenessProbe:
79 tcpSocket:
80 port: 10514
81 initialDelaySeconds: 15
82 periodSeconds: 20
83 resources:
84 requests:
85 {{- if .Values.resources.enabled }}
86{{ toYaml .Values.resources.bess.requests | indent 12 }}
87 {{- end }}
88 {{- if .Values.networks.sriov.enabled }}
89 intel.com/sriov_vfio_s1u_net: 1
90 intel.com/sriov_vfio_sgi_net: 1
91 {{- end }}
92 limits:
93 {{- if .Values.resources.enabled }}
94{{ toYaml .Values.resources.bess.limits | indent 12 }}
95 {{- end }}
96 {{- if .Values.networks.sriov.enabled }}
97 intel.com/sriov_vfio_s1u_net: 1
98 intel.com/sriov_vfio_sgi_net: 1
99 {{- end }}
100 env:
101 - name: CONF_FILE
102 value: /etc/bess/conf/spgwu.json
103 volumeMounts:
104 - name: hugepages
105 mountPath: /dev/hugepages
106 - name: configs
107 mountPath: /etc/bess/conf
108 {{- if .Values.config.coreDump.enabled }}
109 - name: coredump
110 mountPath: /tmp/coredump
111 {{- end }}
112 - name: web
113 image: {{ .Values.images.tags.bess | quote }}
114 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
115 command: ["/bin/bash", "-xc", "bessctl http 0.0.0.0 8000"]
116 {{- if .Values.resources.enabled }}
117 resources:
118{{ toYaml .Values.resources.web | indent 10 }}
119 {{- end }}
120 - name: cpiface
121 image: {{ .Values.images.tags.cpiface | quote }}
122 imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
123 env:
124 - name: ZMQD_IP
125 valueFrom:
126 fieldRef:
127 fieldPath: status.podIP
128 - name: GLOG_v
129 value: "1"
130 command: ["zmq-cpiface"]
131 args:
132 - --hostname
133 - {{ .Values.config.spgwu.name | quote }}
134 - --zmqd_nb_ip
135 - {{ .Values.config.spgwu.zmq.spgwc.addr | quote }}
136 - --zmqd_nb_port
137 - {{ .Values.config.spgwu.zmq.spgwc.port | quote }}
138 - --zmqd_recv_port
139 - {{ .Values.config.spgwu.zmq.recvPort | quote }}
140 - --zmqd_ip
141 - $(ZMQD_IP)
142 - --s1u_sgw_ip
143 - {{ (split "/" .Values.config.spgwu.s1u.ip)._0 | quote }}
144 {{- if .Values.resources.enabled }}
145 resources:
146{{ toYaml .Values.resources.cpiface | indent 10 }}
147 {{- end }}
148 volumes:
149 - name: configs
150 configMap:
151 name: spgwu
152 defaultMode: 493
153 - name: hugepages
154 emptyDir:
155 medium: HugePages
156 {{- if .Values.config.coreDump.enabled }}
157 - name: host-rootfs
158 hostPath:
159 path: /
160 - name: coredump
161 hostPath:
162 path: {{ .Values.config.coreDump.path }}
163 {{- end }}