apiVersion: batch/v1 kind: Job metadata: name: {{ .Release.Name }}-migrations-{{ now | unixEpoch }} labels: app.kubernetes.io/name: {{ .Chart.Name }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: "database-migrations" batch.kubernetes.io/job-name: {{ .Release.Name }}-migrations-{{ now | unixEpoch }} spec: ttlSecondsAfterFinished: 604800 # 1 week in seconds template: metadata: labels: app.kubernetes.io/name: {{ .Chart.Name }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/component: "database-migrations" batch.kubernetes.io/job-name: {{ .Release.Name }}-migrations-{{ now | unixEpoch }} spec: automountServiceAccountToken: false {{- with .Values.migrations.image.pullSecrets }} imagePullSecrets: {{- toYaml . | nindent 8 }} {{- end }} containers: - name: migrations image: "{{ .Values.migrations.image.repository }}:{{ .Values.migrations.image.tag }}" command: ["/bin/ash"] args: - -c - | migrate -path /srv/migrations -database $(cat /etc/yggdrasil/secrets/database_url.txt) up {{- with .Values.migrations.resources }} resources: {{- toYaml . | nindent 12 }} {{- end }} volumeMounts: - mountPath: /etc/yggdrasil/secrets name: secrets readOnly: true volumes: - name: secrets secret: secretName: {{ .Release.Name }} restartPolicy: Never backoffLimit: 0