blob: aa26944eb207a63570534241eed355658008001f [file] [log] [blame]
{{/*
# Copyright 2020-present Open Networking Foundation
# SPDX-License-Identifier: Apache-2.0
*/}}
{{- if .Values.config.smf.deploy }}
{{ tuple "smf" . | include "5g-control-plane.service_account" }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: smf
labels:
{{ tuple "smf" . | include "5g-control-plane.metadata_labels" | indent 4 }}
spec:
replicas: 1
#serviceName: smf-headless
selector:
matchLabels:
{{ tuple "smf" . | include "5g-control-plane.metadata_labels" | indent 6 }}
template:
metadata:
labels:
{{ tuple "smf" . | include "5g-control-plane.metadata_labels" | indent 8 }}
{{- with .Values.config.smf.podAnnotations }}
annotations:
helm.sh/hook: pre-install
helm.sh/hook-weight: "5"
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
serviceAccountName: smf
{{- if hasKey .Values.images "pullSecrets" }}
imagePullSecrets:
{{ toYaml .Values.images.pullSecrets | indent 8 }}
{{- end }}
initContainers:
- name: wait-smf-module
image: {{ .Values.images.repository }}{{ .Values.images.tags.init }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
command: ['sh', '-c', 'until nslookup smf; do echo waiting for smf; sleep 4; done;']
{{- if .Values.config.coreDump.enabled }}
{{ tuple "smf" . | include "5g-control-plane.coredump_init" | indent 6 }}
{{- end }}
containers:
- name: smf
image: {{ .Values.images.repository }}{{ .Values.images.tags.smf }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
{{- if .Values.config.coreDump.enabled }}
securityContext:
runAsUser: 0
{{- end }}
stdin: true
tty: true
command: [ {{ .Values.config.imagePath }}/script/smf-run.sh ]
command: [ "/bin/bash", "-c" ]
args:
- "cat {{ .Values.config.imagePath }}/config/smfcfg.conf && GOTRACEBACK=crash {{ .Values.config.imagePath }}/smf/smf -smfcfg {{ .Values.config.imagePath }}/config/smfcfg.conf -uerouting {{ .Values.config.imagePath }}/uerouting/uerouting.conf"
env:
- name: GRPC_GO_LOG_VERBOSITY_LEVEL
value: {{ .Values.config.grpc.golog_verbosity | quote }}
- name: GRPC_GO_LOG_SEVERITY_LEVEL
value: {{ .Values.config.grpc.severity | quote }}
- name: GRPC_TRACE
value: {{ .Values.config.grpc.trace | quote }}
- name: GRPC_VERBOSITY
value: {{ .Values.config.grpc.verbosity | quote }}
- name: PFCP_PORT_UPF
value: {{ .Values.config.smf.upfPort | quote }}
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
{{- if .Values.config.managedByConfigPod.enabled }}
- name: MANAGED_BY_CONFIG_POD
value: "true"
{{- end }}
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.smf | indent 10 }}
{{- end }}
volumeMounts:
- name: run-script
mountPath: {{ .Values.config.imagePath }}/script/smf-run.sh
subPath: smf-run.sh
- name: nf-config
mountPath: {{ .Values.config.imagePath }}/uerouting
- name: nf-config
mountPath: {{ .Values.config.imagePath }}/config
{{- if .Values.config.coreDump.enabled }}
- name: coredump
mountPath: /tmp/coredump
{{- end }}
volumes:
- name: run-script
configMap:
name: smf
defaultMode: 493
- name: nf-config
configMap:
name: smf
defaultMode: 493
{{- if .Values.config.coreDump.enabled }}
- name: host-rootfs
hostPath:
path: /
- name: coredump
hostPath:
path: {{ .Values.config.coreDump.path }}
{{- end }}
{{- end }}