blob: 0d47a40e4669036bed1870e029aebd42e9e177d4 [file] [log] [blame]
{{/*
# Copyright 2019-present Open Networking Foundation
# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
*/}}
{{- if .Values.config.mme.deploy }}
{{ tuple "mme" . | include "omec-control-plane.service_account" }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: mme
labels:
{{ tuple "mme" . | include "omec-control-plane.metadata_labels" | indent 4 }}
spec:
replicas: 1
serviceName: mme-headless
selector:
matchLabels:
{{ tuple "mme" . | include "omec-control-plane.metadata_labels" | indent 6 }}
template:
metadata:
labels:
{{ tuple "mme" . | include "omec-control-plane.metadata_labels" | indent 8 }}
spec:
{{- if .Values.nodeSelectors.enabled }}
nodeSelector:
{{ .Values.nodeSelectors.mme.label }}: {{ .Values.nodeSelectors.mme.value }}
{{- end }}
serviceAccountName: mme
initContainers:
- name: mme-load-sctp-module
image: {{ .Values.images.tags.init | quote }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
securityContext:
privileged: true
runAsUser: 0
command: ["bash", "-xc"]
args:
- |
if chroot /mnt/host-rootfs modinfo nf_conntrack_proto_sctp > /dev/null 2>&1; then \
chroot /mnt/host-rootfs modprobe nf_conntrack_proto_sctp; \
fi;
chroot /mnt/host-rootfs modprobe tipc
volumeMounts:
- name: host-rootfs
mountPath: /mnt/host-rootfs
{{- if .Values.config.hss.deploy }}
- name: mme-dep-check
image: {{ .Values.images.tags.depCheck | quote }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: false
runAsUser: 0
env:
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
- name: PATH
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
- name: COMMAND
value: "echo done"
- name: DEPENDENCY_POD_JSON
value: '[{"labels": {"app": "hss"}, "requireSameNode": false}]'
# add dependency job for make_certs.sh
command:
- kubernetes-entrypoint
volumeMounts:
[]
{{- end }}
- name: mme-init
image: {{ .Values.images.tags.mme | quote }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
command: ["/opt/mme/scripts/mme-init.sh"]
env:
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
volumeMounts:
- name: scripts
mountPath: /opt/mme/scripts/mme-init.sh
subPath: mme-init.sh
- name: configs
mountPath: /opt/mme/config
- name: shared-data
mountPath: /opt/mme/config/shared
{{- if .Values.config.coreDump.enabled }}
{{ tuple "mme" . | include "omec-control-plane.coredump_init" | indent 6 }}
{{- end }}
containers:
- name: mme-app
image: {{ .Values.images.tags.mme | quote }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
{{- if .Values.config.coreDump.enabled }}
securityContext:
privileged: true
runAsUser: 0
{{- end }}
command: ["bash", "-xc"]
args:
- /opt/mme/scripts/mme-run.sh mme-app
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.mme | indent 10 }}
{{- end }}
env:
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: MMERUNENV
value: "container"
volumeMounts:
- name: scripts
mountPath: /opt/mme/scripts/mme-run.sh
subPath: mme-run.sh
- name: shared-data
mountPath: /opt/mme/config/shared
- name: shared-app
mountPath: /tmp
- name: configs
mountPath: /opt/mme/config
{{- if .Values.config.coreDump.enabled }}
- name: coredump
mountPath: /tmp/coredump
{{- end }}
- name: s1ap-app
image: {{ .Values.images.tags.mme | quote }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
{{- if .Values.config.coreDump.enabled }}
securityContext:
privileged: true
runAsUser: 0
{{- end }}
command: ["bash", "-xc"]
args:
- /opt/mme/scripts/mme-run.sh s1ap-app
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.mme | indent 10 }}
{{- end }}
env:
- name: MMERUNENV
value: "container"
volumeMounts:
- name: scripts
mountPath: /opt/mme/scripts/mme-run.sh
subPath: mme-run.sh
- name: shared-data
mountPath: /opt/mme/config/shared
- name: shared-app
mountPath: /tmp
- name: configs
mountPath: /opt/mme/config
{{- if .Values.config.coreDump.enabled }}
- name: coredump
mountPath: /tmp/coredump
{{- end }}
- name: s6a-app
image: {{ .Values.images.tags.mme | quote }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
{{- if .Values.config.coreDump.enabled }}
securityContext:
privileged: true
runAsUser: 0
{{- end }}
command: ["bash", "-xc"]
args:
- /opt/mme/scripts/mme-run.sh s6a-app
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.mme | indent 10 }}
{{- end }}
env:
- name: MMERUNENV
value: "container"
volumeMounts:
- name: scripts
mountPath: /opt/mme/scripts/mme-run.sh
subPath: mme-run.sh
- name: shared-data
mountPath: /opt/mme/config/shared
- name: shared-app
mountPath: /tmp
{{- if .Values.config.coreDump.enabled }}
- name: coredump
mountPath: /tmp/coredump
{{- end }}
- name: s11-app
image: {{ .Values.images.tags.mme | quote }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
{{- if .Values.config.coreDump.enabled }}
securityContext:
privileged: true
runAsUser: 0
{{- end }}
command: ["bash", "-xc"]
args:
- /opt/mme/scripts/mme-run.sh s11-app
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.mme | indent 10 }}
{{- end }}
env:
- name: MMERUNENV
value: "container"
volumeMounts:
- name: scripts
mountPath: /opt/mme/scripts/mme-run.sh
subPath: mme-run.sh
- name: shared-data
mountPath: /opt/mme/config/shared
- name: shared-app
mountPath: /tmp
{{- if .Values.config.coreDump.enabled }}
- name: coredump
mountPath: /tmp/coredump
{{- end }}
{{- if .Values.prometheusExporter.mme.enabled }}
- name: subscriber-exporter
image: {{ .Values.images.tags.mmeExporter }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
securityContext:
privileged: true
command: ["bash", "-xc"]
args:
- cp /opt/mme/config/shared/mme_exporter.json /openmme/conf/mme_exporter.json;
until [ -e /tmp/unix_socket ]; do sleep 1; done;
chmod 777 /tmp/unix_socket;
while true; do python3 monitor_client.py; sleep 1; done;
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.mme | indent 10 }}
{{- end }}
volumeMounts:
- name: shared-data
mountPath: /opt/mme/config/shared
- name: shared-app
mountPath: /tmp
{{- end }}
volumes:
- name: scripts
configMap:
name: mme
defaultMode: 493
- name: configs
configMap:
name: mme
defaultMode: 420
- name: shared-data
emptyDir: {}
- name: shared-app
emptyDir: {}
- name: host-rootfs
hostPath:
path: /
{{- if .Values.config.coreDump.enabled }}
- name: coredump
hostPath:
path: {{ .Values.config.coreDump.path }}
{{- end }}
{{- end }}