blob: f003d642205979c444f2e02814de8f2e93033ea0 [file] [log] [blame]
badhri854c028b32021-11-03 18:24:05 -05001{{/*
2# Copyright 2020-present Open Networking Foundation
3
Ajay Lotan Thakur03189d22022-02-10 14:06:03 -06004# SPDX-License-Identifier: Apache-2.0
badhri854c028b32021-11-03 18:24:05 -05005*/}}
6
7{{- if .Values.config.gnbsim.deploy }}
8{{ tuple "gnbsim" . | include "5g-ransim-plane.service_account" }}
9---
10apiVersion: apps/v1
11kind: StatefulSet
12metadata:
13 name: gnbsim
14 labels:
15{{ tuple "gnbsim" . | include "5g-ransim-plane.metadata_labels" | indent 4 }}
16spec:
17 replicas: 1
18 serviceName: gnbsim-headless
19 selector:
20 matchLabels:
21{{ tuple "gnbsim" . | include "5g-ransim-plane.metadata_labels" | indent 6 }}
22 template:
23 metadata:
24 labels:
25{{ tuple "gnbsim" . | include "5g-ransim-plane.metadata_labels" | indent 8 }}
Ajay Lotan Thakur0203c3b2022-03-21 13:40:11 -060026{{- if not .Values.config.gnbsim.singleInterface }}
badhri854c028b32021-11-03 18:24:05 -050027 annotations:
28 k8s.v1.cni.cncf.io/networks: '[
29 {
Hyunsun Moon2b21eb42022-03-24 01:52:22 -060030 "name": "gnb-net",
31 "interface": "gnb",
badhri854c028b32021-11-03 18:24:05 -050032{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
33 "ips": [{{ .Values.config.gnbsim.gnb.ip | quote }}]
34{{- else }}
35 "ips": {{ .Values.config.gnbsim.gnb.ip | quote }}
36{{- end }}
37 }
38 ]'
Ajay Lotan Thakur0203c3b2022-03-21 13:40:11 -060039{{- end }}
badhri854c028b32021-11-03 18:24:05 -050040 spec:
41 {{- if .Values.nodeSelectors.enabled }}
42 nodeSelector:
43 {{ .Values.nodeSelectors.gnbsim.label }}: {{ .Values.nodeSelectors.gnbsim.value }}
44 {{- end }}
45 serviceAccountName: gnbsim
46 {{- if hasKey .Values.images "pullSecrets" }}
47 imagePullSecrets:
48{{ toYaml .Values.images.pullSecrets | indent 8 }}
49 {{- end }}
badhri854c028b32021-11-03 18:24:05 -050050 {{- if .Values.config.coreDump.enabled }}
Ajay Lotan Thakurd9252122022-08-30 22:35:59 +000051 initContainers:
52 {{ tuple "gnbsim" . | include "5g-ransim-plane.coredump_init" | indent 6 }}
badhri854c028b32021-11-03 18:24:05 -050053 {{- end }}
54 containers:
55 - name: gnbsim
Ajay Lotan Thakur71115fe2022-03-03 22:26:08 -070056 image: {{ .Values.images.repository }}{{ .Values.images.tags.gnbsim }}
badhri854c028b32021-11-03 18:24:05 -050057 imagePullPolicy: {{ .Values.images.pullPolicy }}
58 securityContext:
59 privileged: true
60 runAsUser: 0
61 stdin: true
62 tty: true
63 command: ["/opt/cp/scripts/gnbsim-run.sh"]
64 env:
65 - name: MEM_LIMIT
66 valueFrom:
67 resourceFieldRef:
68 containerName: gnbsim
69 resource: limits.memory
70 divisor: 1Mi
71 - name: POD_IP
72 valueFrom:
73 fieldRef:
74 fieldPath: status.podIP
75 {{- if .Values.resources.enabled }}
76 resources:
77{{ toYaml .Values.resources.gnbsim | indent 10 }}
78 {{- end }}
79 volumeMounts:
80 - name: cp-script
81 mountPath: /opt/cp/scripts/gnbsim-run.sh
82 subPath: gnbsim-run.sh
83 - name: cp-config
Ajay Lotan Thakur4ebd7e82022-01-14 09:11:42 -070084 mountPath: /gnbsim/config
badhri854c028b32021-11-03 18:24:05 -050085 {{- if .Values.config.coreDump.enabled }}
86 - name: coredump
87 mountPath: /tmp/coredump
88 {{- end }}
89 volumes:
90 - name: cp-script
91 configMap:
92 name: gnbsim
93 defaultMode: 493
94 - name: cp-config
95 configMap:
96 name: gnbsim
97 defaultMode: 420
98 {{- if .Values.config.coreDump.enabled }}
99 - name: host-rootfs
100 hostPath:
101 path: /
102 - name: coredump
103 hostPath:
104 path: {{ .Values.config.coreDump.path }}
105 {{- end }}
106{{- end }}