apiVersion: batch/v1
kind: Job
metadata:
  name: {{ include "django.fullname" . }}
  labels:
    {{- include "django.labels" . | nindent 4 }}
  annotations:
    "helm.sh/hook": post-install,pre-upgrade
    "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
    "helm.sh/hook-weight": "0"
    checksum/secret: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }}
    checksum/configmap: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
    tag: "{{ .Values.image.tag }}"
spec:
  activeDeadlineSeconds: 600
  template:
    spec:
    {{- with .Values.imagePullSecrets }}
      imagePullSecrets:
        {{- toYaml . | nindent 8 }}
    {{- end }}
      restartPolicy: Never
      containers:
      - name: pre-install-job
        image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        imagePullPolicy: {{ .Values.image.pullPolicy }}
        command: ["./manage.py","migrate"]
        env:
          - name: DEBUG
            value: "False"
{{- if .Values.env.secret.DATABASE_URL }}
          - name: DATABASE_URL
            value: {{ .Values.env.secret.DATABASE_URL }}
{{- end }}
{{- if .Values.postgresql.enabled }}
          - name: DATABASE_PASSWORD
            valueFrom:
              secretKeyRef:
                name: {{ include "django.postgresql.fullname" . }}
                key: postgres-password
{{- end }}
          - name: SECRET_KEY
            value: {{ required "env.secret.SECRET_KEY is a required value." .Values.env.secret.SECRET_KEY }}
        {{- range $k, $v := .Values.env.normal }}
          - name: {{ $k }}
            value: {{ $v | quote }}
        {{- end }}
        envFrom:
          - configMapRef:
              name: {{ include "django.fullname" . }}