{{/*
# Copyright 2020-present Open Networking Foundation

# SPDX-License-Identifier: LicenseRef-ONF-Member-Only-1.0
*/}}

{{- $upfConfig := index .Values.config.upf.cfgFiles "upf.json" }}
{{- $accessConfig := index $upfConfig "access" }}
{{- $coreConfig := index $upfConfig "core" }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: upf
  labels:
{{ tuple "upf" . | include "omec-user-plane.metadata_labels" | indent 4 }}
spec:
  replicas: 1
  serviceName: upf-headless
  selector:
    matchLabels:
{{ tuple "upf" . | include "omec-user-plane.metadata_labels" | indent 6 }}
  template:
    metadata:
      labels:
{{ tuple "upf" . | include "omec-user-plane.metadata_labels" | indent 8 }}
      annotations:
        k8s.v1.cni.cncf.io/networks: '[
          {
            "name": "access-net",
            "interface": {{ index $accessConfig "ifname" | quote }},
{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
            "ips": [{{ .Values.config.upf.access.ip | quote }}]
{{- else }}
            "ips": {{ .Values.config.upf.access.ip | quote }}
{{- end }}
          },
          {
            "name": "core-net",
            "interface": {{ index $coreConfig "ifname" | quote }},
{{- if semverCompare ">=1.16-0" .Capabilities.KubeVersion.GitVersion }}
            "ips": [{{ .Values.config.upf.core.ip | quote }}]
{{- else }}
            "ips": {{ .Values.config.upf.core.ip | quote }}
{{- end }}
          }
        ]'
    spec:
      shareProcessNamespace: true
    {{- if .Values.nodeSelectors.enabled }}
      nodeSelector:
        {{ .Values.nodeSelectors.upf.label }}: {{ .Values.nodeSelectors.upf.value }}
    {{- end }}
      initContainers:
      - name: bess-init
        image: {{ .Values.images.tags.bess | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
        command: ["sh", "-xec"]
        args:
        - ip route replace {{ .Values.config.upf.enb.subnet }} via {{ .Values.config.upf.access.gateway }};
          ip route replace default via {{ .Values.config.upf.core.gateway }} metric 110;
          iptables -I OUTPUT -p icmp --icmp-type port-unreachable -j DROP;
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
    {{- if .Values.config.coreDump.enabled }}
{{ tuple "upf" . | include "omec-user-plane.coredump_init" | indent 6 }}
    {{- end }}
      containers:
      - name: bessd
        image: {{ .Values.images.tags.bess | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
        securityContext:
          capabilities:
            add:
            - IPC_LOCK
        stdin: true
        tty: true
        command: ["/bin/bash", "-xc"]
        args:
        {{- if .Values.config.upf.hugepage.enabled }}
          - bessd -f -grpc-url=0.0.0.0:10514
        {{- else }}
          - bessd -m 0 -f -grpc-url=0.0.0.0:10514
        {{- end }}
        lifecycle:
          postStart:
            exec:
              command: ["/etc/bess/conf/bessd-poststart.sh"]
        livenessProbe:
          tcpSocket:
            port: 10514
          initialDelaySeconds: 15
          periodSeconds: 20
        resources:
          requests:
          {{- if .Values.resources.enabled }}
{{ toYaml .Values.resources.bess.requests | indent 12 }}
          {{- end }}
          {{- if .Values.config.upf.hugepage.enabled }}
            hugepages-1Gi: 2Gi
          {{- end }}
          {{- if .Values.config.upf.sriov.enabled }}
            intel.com/sriov_vfio_access_net: 1
            intel.com/sriov_vfio_core_net: 1
          {{- end }}
          limits:
          {{- if .Values.resources.enabled }}
{{ toYaml .Values.resources.bess.limits | indent 12 }}
          {{- end }}
          {{- if .Values.config.upf.hugepage.enabled }}
            hugepages-1Gi: 2Gi
          {{- end }}
          {{- if .Values.config.upf.sriov.enabled }}
            intel.com/sriov_vfio_access_net: 1
            intel.com/sriov_vfio_core_net: 1
          {{- end }}
        env:
          - name: CONF_FILE
            value: /etc/bess/conf/upf.json
        volumeMounts:
        {{- if .Values.config.upf.hugepage.enabled }}
          - name: hugepages
            mountPath: /dev/hugepages
        {{- end }}
          - name: configs
            mountPath: /etc/bess/conf
        {{- if .Values.config.coreDump.enabled }}
          - name: coredump
            mountPath: /tmp/coredump
        {{- end }}
      - name: routectl
        image: {{ .Values.images.tags.bess | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
        env:
          - name: PYTHONUNBUFFERED
            value: "1"
        command: ["/opt/bess/bessctl/conf/route_control.py"]
        args:
          - -i
          - {{ index $accessConfig "ifname" }}
          - {{ index $coreConfig "ifname" }}
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.routectl | indent 10 }}
      {{- end }}
      - name: web
        image: {{ .Values.images.tags.bess | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
        command: ["/bin/bash", "-xc", "bessctl http 0.0.0.0 8000"]
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.web | indent 10 }}
      {{- end }}
      - name: cpiface
      {{- if eq .Values.config.upf.cpiface.mode "zmq" }}
        image: {{ .Values.images.tags.zmqiface | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
        env:
          - name: GLOG_v
            value: "1"
        command: ["zmq-cpiface"]
        args:
          - --json_config
          - /tmp/conf/upf.json
      {{- else }}
        image: {{ .Values.images.tags.pfcpiface | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
        command: ["pfcpiface"]
        args:
          - -config
          - /tmp/conf/upf.json
      {{- end }}
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.cpiface | indent 10 }}
      {{- end }}
        volumeMounts:
          - name: configs
            mountPath: /tmp/conf
      volumes:
      - name: configs
        configMap:
          name: upf
          defaultMode: 493
    {{- if .Values.config.upf.hugepage.enabled }}
      - name: hugepages
        emptyDir:
          medium: HugePages
    {{- end }}
    {{- if .Values.config.coreDump.enabled }}
      - name: host-rootfs
        hostPath:
          path: /
      - name: coredump
        hostPath:
          path: {{ .Values.config.coreDump.path }}
    {{- end }}
