{{/*
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.
*/}}

{{ tuple "video-archive" . | include "cdn-remote.service_account" }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: video-archive
  labels:
{{ tuple "video-archive" . | include "cdn-remote.metadata_labels" | indent 4 }}
spec:
  replicas: {{ .Values.config.videoArchive.replicas }}
  selector:
    matchLabels:
{{ tuple "video-archive" . | include "cdn-remote.metadata_labels" | indent 6 }}
  serviceName: "video-archive"
  template:
    metadata:
      labels:
{{ tuple "video-archive" . | include "cdn-remote.metadata_labels" | indent 8 }}
    spec:
    {{- if .Values.nodeSelectors.enabled }}
      nodeSelector:
        {{ .Values.nodeSelectors.videoArchive.label }}: {{ .Values.nodeSelectors.videoArchive.value }}
    {{- end }}
      serviceAccountName: video-archive
      initContainers:
      - name: video-archive-dep-check
        image: {{ .Values.images.tags.depCheck | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: false
          runAsUser: 0
        env:
        - name: POD_NAME
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.name
        - name: NAMESPACE
          valueFrom:
            fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
        - name: PATH
          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
        - name: COMMAND
          value: "echo done"
        - name: DEPENDENCY_POD_JSON
          value: '[{"labels": {"app": "ant-media"}, "requireSameNode": false}]'
        command:
          - kubernetes-entrypoint
        volumeMounts:
          []
      containers:
      - name: streaming-720
        image: {{ .Values.images.tags.videoArchive | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: false
          runAsUser: 0
        stdin: true
        tty: true
        command: [ "bash",  "-xc"]
        args:
        - /opt/start-stream.sh 720
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.videoArchive | indent 10 }}
      {{- end }}
        volumeMounts:
        - name: start-script
          mountPath: /opt/start-stream.sh
          subPath: start-stream.sh
      - name: streaming-480
        image: {{ .Values.images.tags.videoArchive | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: false
          runAsUser: 0
        stdin: true
        tty: true
        command: [ "bash",  "-xc"]
        args:
        - /opt/start-stream.sh 480
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.videoArchive | indent 10 }}
      {{- end }}
        volumeMounts:
        - name: start-script
          mountPath: /opt/start-stream.sh
          subPath: start-stream.sh
      - name: streaming-360
        image: {{ .Values.images.tags.videoArchive | quote }}
        imagePullPolicy: {{ .Values.images.pullPolicy }}
        securityContext:
          allowPrivilegeEscalation: false
          readOnlyRootFilesystem: false
          runAsUser: 0
        stdin: true
        tty: true
        command: [ "bash",  "-xc"]
        args:
        - /opt/start-stream.sh 360
      {{- if .Values.resources.enabled }}
        resources:
{{ toYaml .Values.resources.videoArchive | indent 10 }}
      {{- end }}
        volumeMounts:
        - name: start-script
          mountPath: /opt/start-stream.sh
          subPath: start-stream.sh
      volumes:
      - name: start-script
        configMap:
          name: start-stream
          defaultMode: 493