apiVersion: batch/v1 kind: Job metadata: name: {{ include "push.name" . }}-migrate labels: {{- include "push.migrationLabels" . | nindent 4 }} annotations: helm.sh/hook: pre-install,pre-upgrade helm.sh/hook-weight: "-5" helm.sh/hook-delete-policy: before-hook-creation,hook-succeeded spec: backoffLimit: 3 template: metadata: labels: {{- include "push.migrationLabels" . | nindent 8 }} spec: restartPolicy: Never automountServiceAccountToken: false securityContext: { runAsNonRoot: true, runAsUser: 65532, runAsGroup: 65532, fsGroup: 65532, seccompProfile: { type: RuntimeDefault } } {{- with .Values.image.pullSecrets }} imagePullSecrets: {{ toYaml . | nindent 8 }} {{- end }} containers: - name: migrate image: "{{ .Values.image.repository }}{{ if .Values.image.digest }}@{{ .Values.image.digest }}{{ else }}:{{ required "image.tag or image.digest is required" .Values.image.tag }}{{ end }}" imagePullPolicy: {{ .Values.image.pullPolicy }} args: ["--migrate-only"] securityContext: { allowPrivilegeEscalation: false, readOnlyRootFilesystem: true, capabilities: { drop: [ALL] } } env: - name: BUZZ_PUSH_RUNTIME_DATABASE_ROLE value: {{ .Values.migration.runtimeDatabaseRole | quote }} - name: DATABASE_URL valueFrom: { secretKeyRef: { name: {{ .Values.migration.existingSecret }}, key: {{ .Values.migration.databaseUrlKey }} } } resources: {{- toYaml .Values.migration.resources | nindent 12 }}