{{/*
# Copyright © 2017 Amdocs, Bell Canada
# Modifications Copyright © 2018 AT&T,VMware
# Modifications Copyright (C) 2020 Wipro Limited.
#
# 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: apps/v1
kind: Deployment
metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
spec:
  selector: {{- include "common.selectors" . | nindent 4 }}
  replicas: {{ .Values.replicaCount }}
  template:
    metadata: {{- include "common.templateMetadata" . | nindent 6 }}
    spec:
      initContainers:
      {{ include "common.readinessCheck.waitFor" . | nindent 6 }}
      containers:
        - name: {{ include "common.name" . }}
          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
          command:
          - /bin/sh
          args:
          - "-c"
          - |
            python osdfapp.py
          ports:
          - containerPort: {{ .Values.service.internalPort }}
            name: http
          # disable liveness probe when breakpoints set in debugger
          # so K8s doesn't restart unresponsive container
          {{- if .Values.liveness.enabled }}
          livenessProbe:
            tcpSocket:
              port: {{ .Values.service.internalPort }}
            initialDelaySeconds: {{ .Values.liveness.initialDelaySeconds }}
            periodSeconds: {{ .Values.liveness.periodSeconds }}
          {{ end -}}
          readinessProbe:
            tcpSocket:
              port: {{ .Values.service.internalPort }}
            initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
            periodSeconds: {{ .Values.readiness.periodSeconds }}
          env:
          volumeMounts:
          - mountPath: /etc/localtime
            name: localtime
            readOnly: true
          - mountPath: /opt/osdf/config/osdf_config.yaml
            name: {{ include "common.fullname" . }}-config
            subPath: osdf_config.yaml
          - mountPath: /opt/osdf/config/common_config.yaml
            name: {{ include "common.fullname" . }}-config
            subPath: common_config.yaml
          - mountPath: /opt/osdf/config/log.yml
            name: {{ include "common.fullname" . }}-config
            subPath: log.yml
          - mountPath: /opt/osdf/config/slicing_config.yaml
            name: {{ include "common.fullname" . }}-config
            subPath: slicing_config.yaml
          resources:
{{ include "common.resources" . | indent 12 }}
        {{- if .Values.nodeSelector }}
        nodeSelector:
{{ toYaml .Values.nodeSelector | indent 10 }}
        {{- end -}}
        {{- if .Values.affinity }}
        affinity:
{{ toYaml .Values.affinity | indent 10 }}
        {{- end }}
      serviceAccountName: {{ include "common.fullname" (dict "suffix" "read" "dot" . )}}
      volumes:
        - name: localtime
          hostPath:
            path: /etc/localtime
        - name: {{ include "common.fullname" . }}-config
          configMap:
            name: {{ include "common.fullname" . }}-configmap
            items:
            - key: osdf_config.yaml
              path: osdf_config.yaml
            - key: common_config.yaml
              path: common_config.yaml
            - key: log.yml
              path: log.yml
            - key: slicing_config.yaml
              path: slicing_config.yaml
      imagePullSecrets:
      - name: "{{ include "common.namespace" . }}-docker-registry-key"
