blob: cab92d097a275739cee9df3912c42ba974842d85 [file] [log] [blame]
{{/*
# Copyright 2019-present Open Networking Foundation
# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
*/}}
{{- if .Values.config.spgwc.deploy }}
{{ tuple "spgwc" . | include "omec-control-plane.service_account" }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: spgwc
labels:
{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 4 }}
spec:
replicas: 1
serviceName: spgwc-headless
selector:
matchLabels:
{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 6 }}
template:
metadata:
labels:
{{ tuple "spgwc" . | include "omec-control-plane.metadata_labels" | indent 8 }}
{{- with .Values.config.spgwc.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- if .Values.nodeSelectors.enabled }}
nodeSelector:
{{ .Values.nodeSelectors.spgwc.label }}: {{ .Values.nodeSelectors.spgwc.value }}
{{- end }}
serviceAccountName: spgwc
{{- if hasKey .Values.images "pullSecrets" }}
imagePullSecrets:
{{ toYaml .Values.images.pullSecrets | indent 8 }}
{{- end }}
{{- if .Values.config.coreDump.enabled }}
initContainers:
{{ tuple "spgwc" . | include "omec-control-plane.coredump_init" | indent 6 }}
{{- end }}
containers:
- name: spgwc
image: {{ .Values.images.tags.spgwc }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
{{- if .Values.config.coreDump.enabled }}
securityContext:
privileged: true
runAsUser: 0
{{- end }}
stdin: true
tty: true
command: ["bash", "-xc"]
args:
- /opt/cp/scripts/spgwc-run.sh ngic_controlplane
livenessProbe:
httpGet:
path: /liveness
port: {{ .Values.config.spgwc.rest.port }}
initialDelaySeconds: 10
periodSeconds: 3
readinessProbe:
httpGet:
path: /readiness
port: {{ .Values.config.spgwc.rest.port }}
initialDelaySeconds: 10
periodSeconds: 3
{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
startupProbe:
#looks like available only in 1.16 K8s version and above
httpGet:
path: /startup
port: {{ .Values.config.spgwc.rest.port }}
failureThreshold: 30
periodSeconds: 10
{{- end }}
env:
- name: MEM_LIMIT
valueFrom:
resourceFieldRef:
containerName: spgwc
resource: limits.memory
divisor: 1Mi
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
{{- if .Values.config.spgwc.managedByRoc }}
- name: DISABLE_CONFIG_WATCHER # If the variable has a value then changes
value: "true" # to subscriber_mapping.json are ignored
{{- end }}
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.spgwc | indent 10 }}
{{- end }}
volumeMounts:
- name: scripts
mountPath: /opt/cp/scripts
- name: configs
mountPath: /etc/cp/config
- name: shared-app
mountPath: /tmp
{{- if .Values.config.coreDump.enabled }}
- name: coredump
mountPath: /tmp/coredump
{{- end }}
- name: gx-app
image: {{ .Values.images.tags.spgwc }}
imagePullPolicy: {{ .Values.images.pullPolicy }}
{{- if .Values.config.coreDump.enabled }}
securityContext:
privileged: true
runAsUser: 0
{{- end }}
stdin: true
tty: true
command: ["bash", "-xc"]
args:
- /opt/cp/scripts/spgwc-run.sh gx-app
{{- if .Values.resources.enabled }}
resources:
{{ toYaml .Values.resources.spgwc | indent 10 }}
{{- end }}
volumeMounts:
- name: scripts
mountPath: /opt/cp/scripts
- name: configs
mountPath: /etc/cp/config
- name: shared-app
mountPath: /tmp
{{- if .Values.config.coreDump.enabled }}
- name: coredump
mountPath: /tmp/coredump
{{- end }}
volumes:
- name: scripts
configMap:
name: spgwc-scripts
defaultMode: 493
- name: configs
configMap:
name: spgwc-configs
defaultMode: 420
- name: shared-app
emptyDir: {}
- name: host-rootfs
hostPath:
path: /
{{- if .Values.config.coreDump.enabled }}
- name: coredump
hostPath:
path: {{ .Values.config.coreDump.path }}
{{- end }}
{{- end }}