blob: ce8dc85c5bce1719865fbd7bbc7bf0042fad5ab7 [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: '[
Vijaya Tiruveedula56f595f2022-10-27 05:28:50 -060029 {
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 }}
Vijaya Tiruveedula56f595f2022-10-27 05:28:50 -060033 "ips": [ {{ include "gnbiplist" .}} ]
badhri854c028b32021-11-03 18:24:05 -050034{{- else }}
Badhrinath Padmanabhanb8f42912022-11-16 13:58:04 -050035 "ips": {{ .Values.config.gnbsim.gnb.ips | quote }}
badhri854c028b32021-11-03 18:24:05 -050036{{- 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 }}
Ajay Lotan Thakurd9252122022-08-30 22:35:59 +000050 initContainers:
Badhrinath Padmanabhana0c93b72022-11-21 21:53:00 -060051 {{- if .Values.config.gnbsim.waitForAmf }}
Ajay Lotan Thakureadf7702022-09-30 00:02:58 -060052 - name: wait-amf-module
53 image: {{ .Values.images.repository }}{{ .Values.images.tags.init }}
54 imagePullPolicy: {{ .Values.images.pullPolicy }}
Badhrinath Padmanabhana0c93b72022-11-21 21:53:00 -060055 command: ['sh', '-c', 'until nslookup amf; do echo waiting for amf; sleep 4; done; sleep 20']
Badhrinath Padmanabhanb8f42912022-11-16 13:58:04 -050056 {{- end }}
Ajay Lotan Thakureadf7702022-09-30 00:02:58 -060057 {{- if .Values.config.coreDump.enabled }}
Ajay Lotan Thakurd9252122022-08-30 22:35:59 +000058 {{ tuple "gnbsim" . | include "5g-ransim-plane.coredump_init" | indent 6 }}
badhri854c028b32021-11-03 18:24:05 -050059 {{- end }}
60 containers:
61 - name: gnbsim
Ajay Lotan Thakur71115fe2022-03-03 22:26:08 -070062 image: {{ .Values.images.repository }}{{ .Values.images.tags.gnbsim }}
badhri854c028b32021-11-03 18:24:05 -050063 imagePullPolicy: {{ .Values.images.pullPolicy }}
64 securityContext:
65 privileged: true
66 runAsUser: 0
67 stdin: true
68 tty: true
69 command: ["/opt/cp/scripts/gnbsim-run.sh"]
70 env:
71 - name: MEM_LIMIT
72 valueFrom:
73 resourceFieldRef:
74 containerName: gnbsim
75 resource: limits.memory
76 divisor: 1Mi
77 - name: POD_IP
78 valueFrom:
79 fieldRef:
80 fieldPath: status.podIP
Badhrinath Padmanabhanb8f42912022-11-16 13:58:04 -050081 {{- if or .Values.resources.enabled .Values.config.gnbsim.sriov.enabled }}
badhri854c028b32021-11-03 18:24:05 -050082 resources:
83{{ toYaml .Values.resources.gnbsim | indent 10 }}
Badhrinath Padmanabhanb8f42912022-11-16 13:58:04 -050084{{- if .Values.config.gnbsim.sriov.enabled }}
85 requests:
86 {{ .Values.config.gnbsim.sriov.resourceName }}: 1
87 limits:
88 {{ .Values.config.gnbsim.sriov.resourceName }}: 1
89 {{- end }}
badhri854c028b32021-11-03 18:24:05 -050090 {{- end }}
91 volumeMounts:
92 - name: cp-script
93 mountPath: /opt/cp/scripts/gnbsim-run.sh
94 subPath: gnbsim-run.sh
95 - name: cp-config
Ajay Lotan Thakur4ebd7e82022-01-14 09:11:42 -070096 mountPath: /gnbsim/config
badhri854c028b32021-11-03 18:24:05 -050097 {{- if .Values.config.coreDump.enabled }}
98 - name: coredump
99 mountPath: /tmp/coredump
100 {{- end }}
101 volumes:
102 - name: cp-script
103 configMap:
104 name: gnbsim
105 defaultMode: 493
106 - name: cp-config
107 configMap:
108 name: gnbsim
109 defaultMode: 420
110 {{- if .Values.config.coreDump.enabled }}
111 - name: host-rootfs
112 hostPath:
113 path: /
114 - name: coredump
115 hostPath:
116 path: {{ .Values.config.coreDump.path }}
117 {{- end }}
118{{- end }}