{{- if .Values.cronjob }}
{{- if .Values.cronjob.enabled }}
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: {{ include "seaweedfs.fullname" . }}-cronjob
spec:
  schedule: "{{ .Values.cronjob.schedule }}"
  startingDeadlineSeconds: 200
  concurrencyPolicy: Forbid
  failedJobsHistoryLimit: 2
  successfulJobsHistoryLimit: 2
  jobTemplate:
    spec:
      backoffLimit: 2
      template:
        spec:
          {{- if .Values.cronjob.nodeSelector }}
          nodeSelector:
            {{ tpl .Values.cronjob.nodeSelector . | indent 12 | trim }}
          {{- end }}
          {{- if .Values.cronjob.tolerations }}
          tolerations:
            {{ tpl .Values.cronjob.tolerations . | nindent 12 | trim }}
          {{- end }}
          restartPolicy: OnFailure
          containers:
            - name: shell
              image: {{ template "cronjob.image" . }}
              imagePullPolicy: {{ default "IfNotPresent" .Values.global.imagePullPolicy }}
              resources:
              {{- toYaml .Values.cronjob.resources| nindent 16 }}
              command:
                - sh
                - -c
                - |
                  set -ex
                  echo -e "lock\n\
                  volume.balance -force \
                  {{ if .Values.volume.dataCenter }} -dataCenter {{ .Values.volume.dataCenter }}{{ end }}\
                  {{ if .Values.cronjob.collection }} -collection {{ .Values.cronjob.collection }}{{ end }}\n\
                  {{- if .Values.cronjob.enableFixReplication }}
                  volume.fix.replication -collectionPattern={{ .Values.cronjob.collectionPattern }} \n\
                  {{- end }}
                  unlock\n" | \
                  /usr/bin/weed shell \
                  {{- if .Values.cronjob.master }}
                  -master {{ .Values.cronjob.master }} \
                  {{- else }}
                  -master {{ template "seaweedfs.name" . }}-master.{{ .Release.Namespace }}.svc:{{ .Values.master.port }} \
                  {{- end }}
                  {{- if .Values.cronjob.filer }}
                  -filer {{ .Values.cronjob.filer }}
                  {{- else }}
                  -filer {{ template "seaweedfs.name" . }}-filer.{{ .Release.Namespace }}.svc:{{ .Values.filer.port }}
                  {{- end }}
{{- end }}
{{- end }}