apiVersion: batch/v1
kind: CronJob
metadata:
  name:  {{ .Release.Name }}-git-gc
  labels:
    app: git-gc
    chart: {{ template "gerrit-replica.chart" . }}
    heritage: {{ .Release.Service }}
    release: {{ .Release.Name }}
spec:
  schedule: {{ .Values.gitGC.schedule | quote }}
  concurrencyPolicy: "Forbid"
  jobTemplate:
    spec:
      template:
        metadata:
          annotations:
            cluster-autoscaler.kubernetes.io/safe-to-evict: "false"
          {{ if .Values.istio.enabled }}
            sidecar.istio.io/inject: "false"
          {{- end }}
          labels:
            app: git-gc
            chart: {{ template "gerrit-replica.chart" . }}
            heritage: {{ .Release.Service }}
            release: {{ .Release.Name }}
        spec:
          {{- with .Values.gitGC.tolerations }}
          tolerations:
            {{- toYaml . | nindent 10 }}
          {{- end }}
          {{- with .Values.gitGC.affinity }}
          affinity:
            {{- toYaml . | nindent 10 }}
          {{- end }}
          restartPolicy: OnFailure
          securityContext:
            fsGroup: 100
          {{ if .Values.images.registry.ImagePullSecret.name -}}
          imagePullSecrets:
          - name: {{ .Values.images.registry.ImagePullSecret.name }}
          {{- range .Values.images.additionalImagePullSecrets }}
          - name: {{ . }}
          {{- end }}
          {{- end }}
          initContainers:
          {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.chownOnStartup }}
          - name: nfs-init
            image: {{ .Values.images.busybox.registry -}}/busybox:{{- .Values.images.busybox.tag }}
            command:
            - sh
            - -c
            args:
            - |
              chown 1000:100 /var/mnt/logs
              chown 1000:100 /var/mnt/git
            env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            volumeMounts:
            - name: logs
              subPathExpr: "git-gc/$(POD_NAME)"
              mountPath: "/var/mnt/logs"
            - name: git-repositories
              mountPath: "/var/mnt/git"
            {{- if .Values.nfsWorkaround.idDomain }}
            - name: nfs-config
              mountPath: "/etc/idmapd.conf"
              subPath: idmapd.conf
            {{- end }}
          {{- end }}
          containers:
          - name: git-gc
            imagePullPolicy: {{ .Values.images.imagePullPolicy }}
            image: {{ template "registry" . }}{{ .Values.gitGC.image }}:{{ .Values.images.version }}
            resources:
{{ toYaml .Values.gitGC.resources | indent 14 }}
            env:
            - name: POD_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            volumeMounts:
            - name: git-repositories
              mountPath: "/var/gerrit/git"
            - name: logs
              subPathExpr: "git-gc/$(POD_NAME)"
              mountPath: "/var/log/git"
            {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }}
            - name: nfs-config
              mountPath: "/etc/idmapd.conf"
              subPath: idmapd.conf
            {{- end }}
          volumes:
          - name: git-repositories
            persistentVolumeClaim:
              {{- if .Values.gitRepositoryStorage.externalPVC.use }}
              claimName: {{ .Values.gitRepositoryStorage.externalPVC.name }}
              {{- else }}
              claimName: {{ .Release.Name }}-git-repositories-pvc
              {{- end }}
          - name: logs
            {{ if .Values.logStorage.enabled -}}
            persistentVolumeClaim:
              {{- if .Values.logStorage.externalPVC.use }}
              claimName: {{ .Values.logStorage.externalPVC.name }}
              {{- else }}
              claimName: {{ .Release.Name }}-log-pvc
              {{- end }}
            {{ else -}}
            emptyDir: {}
            {{- end }}
          {{- if and .Values.nfsWorkaround.enabled .Values.nfsWorkaround.idDomain }}
          - name: nfs-config
            configMap:
              name: {{ .Release.Name }}-nfs-configmap
          {{- end }}
