| {{/* |
| # Copyright 2019-present Open Networking Foundation |
| |
| # SPDX-License-Identifier: Apache-2.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 }} |
| initialDelaySeconds: 20 |
| 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.managedByConfigPod.enabled }} |
| - name: MANAGED_BY_CONFIG_POD |
| value: "true" |
| {{- end }} |
| {{- if .Values.config.spgwc.managedByRoc.enabled }} |
| - 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 }} |
| {{- if .Values.config.spgwc.managedByRoc.enabled }} |
| - name: init-sync |
| image: curlimages/curl:7.77.0 |
| imagePullPolicy: IfNotPresent |
| stdin: true |
| tty: true |
| command: ["sh", "-c"] |
| args: |
| - /opt/cp/scripts/spgwc-init.sh |
| volumeMounts: |
| - name: scripts |
| mountPath: /opt/cp/scripts |
| volumes: |
| - name: scripts |
| configMap: |
| name: spgwc-scripts |
| defaultMode: 493 |
| {{- 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 }} |