---
# 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: accelleran
spec:
  selector:
    app: accelleran
  clusterIP: None
  ports:
    - name: s1ap
      port: {{ .Values.accelleran.ports.s1ap_external }}
      protocol: SCTP
---
apiVersion: v1
kind: Service
metadata:
  name: accelleran-external
spec:
  selector:
    app: accelleran
  type: NodePort
  ports:
    - port: {{ .Values.accelleran.ports.s1ap_external }}
      nodePort: {{ .Values.accelleran.ports.s1ap_external }}
      protocol: SCTP
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: accelleran
  labels:
    app: accelleran
spec:
  replicas: {{ .Values.accelleran.replicas }}
  selector:
    matchLabels:
      app: accelleran
  serviceName: "accelleran"
  template:
    metadata:
      labels:
        app: accelleran
      annotations:
        k8s.v1.cni.cncf.io/networks: '[
          { "name": "bbu-net", "interface": "vbbu-net", "namespace": "default" }
        ]'
    spec:
      nodeSelector:
        kubernetes.io/hostname: "node2"
      initContainers:
      - name: init-iptables
        image: {{ .Values.accelleran.images.init }}
        command: [ "sh", "-c"]
        args:
        - iptables -I OUTPUT -p icmp --icmp-type destination-unreachable -j DROP;
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
      terminationGracePeriodSeconds: 1
      containers:
      - name: nats
        image: {{ .Values.accelleran.images.nats }}
        imagePullPolicy: IfNotPresent
        stdin: true
        tty: true
        env:
        - name: NATS_SERVICE_NAME
          value: {{ .Values.accelleran.nats_service_name }}
        command: [ "sh", "-c"]
        args:
        - gnatsd -DV -c /etc/gnatsd.conf;
        resources:
          limits:
            cpu: {{ .Values.accelleran.resources.cpu }}
            memory: {{ .Values.accelleran.resources.mem }}
            intel.com/sriov: '2'
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
            - IPC_LOCK
      - name: redis
        image: {{ .Values.accelleran.images.redis }}
        imagePullPolicy: IfNotPresent
        stdin: true
        tty: true
        command: ["sh", "-c"]
        args:
        # FIXME: Redis can't support with dns resolution, can't set hostname at here.
        - (sleep 5; redis-cli -h localhost -p 6379 set NATS_SERVICE_URL "nat://$(ip route get 116 | awk '{print $NF;exit}'):4222";) &
          /usr/local/bin/redis-server
        resources:
          limits:
            cpu: {{ .Values.accelleran.resources.cpu }}
            memory: {{ .Values.accelleran.resources.mem }}
            intel.com/sriov: '2'
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
            - IPC_LOCK
      - name: bbu
        image: {{ .Values.accelleran.images.bbu }}
        imagePullPolicy: Always
        env:
          - name: MME_IP
            value: {{ .Values.mme_hostname }}
        stdin: true
        tty: true
        command: ["sh", "-c"]
        # Configure BBU SCTP source port to `s1ap_external`, MME endpoint port to `mme_port` and configure BBU to use
        args:
        - sqlite3 /mnt/app/datastore.db "update cellS1apConfig set enbSctpPort={{ .Values.accelleran.ports.s1ap_external }};";
          sqlite3 /mnt/app/datastoreRemRw.db "update FapServiceFapControlLteGateway set S1SigLinkPort={{ .Values.mme_port }};";
          sqlite3 /mnt/app/datastore.db "insert into enbSctpSocketInterface ('interfaceName') values ('eth0');";
          sqlite3 /mnt/app/datastore.db "update logging set severity=7 where id=25;";
          sqlite3 /mnt/app/datastore.db "update featureActivation set mmeSlicingEnabled=1;";
          sqlite3 /mnt/app/datastore.db "update featureActivation set ranSlicingEnabled=1;";
          sqlite3 /mnt/app/datastore.db "insert into pranServerAddress (pranServerIpAddress,pranServerPort) values ('{{ .Values.progran_ip }}', {{ .Values.progran_port }});";

          sleep 10;
          /l3/l3start;
        volumeMounts:
        - name: bbu-config
          mountPath: /mnt/app/bootstrap.txt
          subPath: bootstrap.txt
        resources:
          limits:
            cpu: {{ .Values.accelleran.resources.cpu }}
            memory: {{ .Values.accelleran.resources.mem }}
            intel.com/sriov: '2'
        securityContext:
          capabilities:
            add:
            - NET_ADMIN
            - IPC_LOCK
            - SYS_NICE
      volumes:
        - name: bbu-config
          configMap:
            name: l3-config
            items:
              - key: bootstrap.txt
                path: bootstrap.txt

