---
# Copyright 2018-present Open Networking Foundation
# Copyright 2018 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
apiVersion: v1
kind: Service
metadata:
  name: ngic-cp
spec:
  selector:
    app: ngic-cp
  clusterIP: None
  ports:
  - name: s11
    port: {{ .Values.ngic_cp.ports.s11 }}
    protocol: UDP
  - name: sx
    port: {{ .Values.ngic_cp.ports.sx }}
    protocol: UDP
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: ngic-cp
  labels:
    app: ngic-cp
spec:
  replicas: {{ .Values.ngic_cp.replicas }}
  selector:
    matchLabels:
      app: ngic-cp
  serviceName: "ngic-cp"
  template:
    metadata:
      labels:
        app: ngic-cp
    spec:
      initContainers:
      - name: init-iptables
        image: {{ .Values.ngic_cp.images.init }}
        command: [ "sh", "-c"]
        securityContext:
          capabilities:
            add:
              - NET_ADMIN
        args:
        - iptables -I OUTPUT -p icmp --icmp-type destination-unreachable -j DROP;
      terminationGracePeriodSeconds: 1
      containers:
      - name: ngic
        image: {{ .Values.ngic_cp.images.cp }}
        imagePullPolicy: IfNotPresent
        stdin: true
        command: [ "bash",  "-xc"]
        args:
        - export HOSTIP=$(ip route get 1 | awk '{print $NF;exit}');
          echo "$HOSTIP" > /opt/ngic/config/shared/SGW_S1U_IP;
          . /opt/ngic/config/cp_config.cfg;
          sleep 20;
          ./ngic_controlplane $EAL_ARGS -- $APP_ARGS;
        tty: true
        env:
        - name: MME_S11_IP
          value: {{ .Values.mme_hostname }}
        - name: APN
          value: {{ .Values.ngic_cp.config.apn }}
        - name: IP_POOL_IP
          value: "{{ .Values.ngic_cp.config.ue_ip_pool }}"
        - name: IP_POOL_MASK
          value: "{{ .Values.ngic_cp.config.ue_ip_pool_mask }}"
        - name: S11_TEID_POOL_START
          value: "00100000"
        - name: S11_TEID_POOL_STOP
          value: "001fffff"
        - name: S1U_TEID_POOL_START
          value: "00100000"
        - name: S1U_TEID_POOL_STOP
          value: "001fffff"
        - name: MEM_LIMIT
          valueFrom:
            resourceFieldRef:
              containerName: ngic
              resource: limits.memory
              divisor: 1Mi
        volumeMounts:
        - name: config-volume
          mountPath: /opt/ngic/config
        #- name: hugepage
        #  mountPath: /dev/hugepages
        - name: shared-data
          mountPath: /opt/ngic/config/shared
        resources:
          limits:
            #hugepages-1Gi: 4Gi
            cpu: {{ .Values.ngic_cp.resources.cpu }}
            memory: {{ .Values.ngic_cp.resources.mem }}
      volumes:
        - name: config-volume
          configMap:
            name: ngiccp-config
        - name: shared-data
          emptyDir: {}
