apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "zot.fullname" . }}
  labels:
    {{- include "zot.labels" . | nindent 4 }}
spec:
  replicas: {{ .Values.replicaCount }}
  {{- with .Values.strategy }}
  strategy:
    {{- toYaml . | nindent 4 }}
  {{- end }}
  selector:
    matchLabels:
      {{- include "zot.selectorLabels" . | nindent 6 }}
  template:
    metadata:
      annotations:
        {{- with .Values.podAnnotations }}
        {{- toYaml . | nindent 8 }}
        {{- end }}
        {{- if and .Values.mountConfig .Values.configFiles }}
        checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
        {{- end }}
        {{- if .Values.forceRoll }}
        rollme: {{ randAlphaNum 5 | quote }}
        {{- end }}
      labels:
        {{- include "zot.selectorLabels" . | nindent 8 }}
    spec:
      {{- with .Values.imagePullSecrets }}
      imagePullSecrets:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      serviceAccountName: {{ include "zot.serviceAccountName" . }}
      securityContext:
        {{- toYaml .Values.podSecurityContext | nindent 8 }}
      containers:
        - name: {{ .Chart.Name }}
          securityContext:
            {{- toYaml .Values.securityContext | nindent 12 }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          env:
            {{- toYaml .Values.env | nindent 12 }}
          ports:
            - name: zot
              containerPort: 5000
              protocol: TCP
          {{- if or (not (empty .Values.extraVolumeMounts)) .Values.mountConfig .Values.mountSecret .Values.persistence .Values.externalSecrets }}
          volumeMounts:
          {{- if .Values.mountConfig }}
            - mountPath: '/etc/zot'
              name: {{ .Release.Name }}-config
          {{- end }}
          {{- if .Values.mountSecret }}
            - mountPath: '/secret'
              name: {{ .Release.Name }}-secret
          {{- end }}
          {{- range .Values.externalSecrets }}
            - mountPath: {{ .mountPath | quote }}
              name: {{ .secretName | quote }}
          {{- end }}
          {{- if .Values.persistence }}
            - mountPath: '/var/lib/registry'
              name: {{ .Release.Name }}-volume
          {{- end }}
          {{- with .Values.extraVolumeMounts }}
          {{- toYaml . | nindent 12 }}
          {{- end }}
          {{- end }}
          # livenessProbe:
          #   initialDelaySeconds: 5
          #   httpGet:
          #     path: /v2/
          #     port: 5000
          #     scheme: {{ .Values.httpGet.scheme }}
          #     {{- if .Values.authHeader }}
          #     httpHeaders:
          #       - name: Authorization
          #         value: Basic {{ .Values.authHeader }}
          #     {{- end }}
          # readinessProbe:
          #   initialDelaySeconds: 5
          #   httpGet:
          #     path: /v2/
          #     port: 5000
          #     scheme: {{ .Values.httpGet.scheme }}
          #     {{- if .Values.authHeader }}
          #     httpHeaders:
          #       - name: Authorization
          #         value: Basic {{ .Values.authHeader }}
          #     {{- end }}
          # startupProbe:
          #   initialDelaySeconds: {{ .Values.startupProbe.initialDelaySeconds }}
          #   periodSeconds: {{ .Values.startupProbe.periodSeconds }}
          #   failureThreshold: {{ .Values.startupProbe.failureThreshold }}
          #   httpGet:
          #     path: /v2/
          #     port: 5000
          #     scheme: {{ .Values.httpGet.scheme }}
          #     {{- if .Values.authHeader }}
          #     httpHeaders:
          #       - name: Authorization
          #         value: Basic {{ .Values.authHeader }}
          #     {{- end }}
          resources:
            {{- toYaml .Values.resources | nindent 12 }}
      {{- if or .Values.mountConfig .Values.mountSecret .Values.persistence .Values.externalSecrets (not (empty .Values.extraVolumes))}}
      volumes:
      {{- if .Values.mountConfig }}
        - name: {{ .Release.Name }}-config
          configMap:
            name: {{ .Release.Name }}-config
      {{- end }}
      {{- if .Values.mountSecret }}
        - name: {{ .Release.Name }}-secret
          secret:
            secretName: {{ .Release.Name }}-secret
      {{- end }}
      {{- range .Values.externalSecrets }}
        - name: {{ .secretName }}
          secret:
            secretName: {{ .secretName }}
      {{- end }}
      {{- if .Values.persistence }}
        - name: {{ .Release.Name }}-volume
          persistentVolumeClaim:
            claimName: {{ .Values.pvc.name | default (printf "%s-pvc" .Release.Name) }}
      {{- end }}
      {{- with .Values.extraVolumes }}
      {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- end }}
      {{- with .Values.nodeSelector }}
      nodeSelector:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.affinity }}
      affinity:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.tolerations }}
      tolerations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
