---
# Copyright 2019-present Open Networking Foundation
#
# 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:
  labels:
    name: nginx-rtmp
  name: nginx-rtmp
spec:
  selector:
    app: nginx-rtmp
  type: NodePort
  ports:
  - name: rtmp
    port: {{ .Values.nginx.ports.rtmp_orig }}
    nodePort: {{ .Values.nginx.ports.rtmp_np }}
    protocol: TCP
  - name: stream
    port: {{ .Values.nginx.ports.stream_orig }}
    nodePort: {{ .Values.nginx.ports.stream_np }}
    protocol: TCP

---
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: nginx-rtmp
spec:
  serviceName: nginx-rtmp
  replicas: {{ .Values.nginx.replicas}}
  template:
    metadata:
      labels:
        name: nginx-rtmp
        app: nginx-rtmp
      annotations:
        k8s.v1.cni.cncf.io/networks: '[
            { "name": "sgi-net", "interface": "sgi-net", "namespace": "default" }
        ]'
    spec:
      #hostNetwork: true
      nodeSelector:
        kubernetes.io/hostname: {{ .Values.node_selector }}
      terminationGracePeriodSeconds: 0
      imagePullSecrets:
      - name: nexus-docker-secret
      initContainers:
      - name: "nginx-rtmp-init"
        image: {{ .Values.nginx.images.nginx_image }}
        imagePullPolicy: "IfNotPresent"
        args:
        - cp /config/*.sh /shared-vol;cp /conf/* /shared-vol
        command:
        - "/bin/bash"
        - "-c"
        volumeMounts:
        - name: "shared-volume"
          mountPath: "/shared-vol"
        - name: "nginx-rtmp-config"
          mountPath: "/config"
        - name: "nginx-rtmp-conf"
          mountPath: "/conf"
      containers:
      - name: nginx-rtmp
        image: {{ .Values.nginx.images.nginx_image }}
        imagePullPolicy: IfNotPresent
        args:
        - chmod a+x /config/*.sh;/config/nginx_rtmp_config.sh
        command:
        - "/bin/bash"
        - "-c"
        tty: true
        securityContext:
          privileged: true
        ports:
        - containerPort: {{ .Values.nginx.ports.rtmp_orig }}
        - containerPort: {{ .Values.nginx.ports.stream_orig }}
        volumeMounts:
        - name: shared-volume
          mountPath: /config
        - name: shared-volume
          mountPath: /conf
        resources:
          limits:
            intel.com/sriov: '2'
      - name: streaming
        image: {{ .Values.local_streaming.images.local_streaming_image }}
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: {{ .Values.local_streaming.ports.vlc }}
        - containerPort: {{ .Values.local_streaming.ports.http }}
        stdin: true
        tty: true
        command: [ "bash",  "-xc"]
        args:
        - sed -i 's/geteuid/getppid/' /usr/bin/vlc;
          ffmpeg -re -i /opt/cdn/movies/{{ .Values.local_streaming.video_quality }}.mp4 -c copy -f flv rtmp://{{ .Values.local_streaming.nginx_ip }}:1935/app/l
        resources:
          limits:
            cpu: {{ .Values.local_streaming.resources.cpu }}
            memory: {{ .Values.local_streaming.resources.mem }}
      volumes:
      - name: nginx-rtmp-config
        configMap:
          name: nginx-rtmp-config
          items:
          - key: nginx_rtmp_config.sh
            path: nginx_rtmp_config.sh
      - name: nginx-rtmp-conf
        configMap:
          name: nginx-rtmp-conf
          items:
          - key: nginx.conf
            path: nginx.conf
      - name: shared-volume
        emptyDir: {}
