Snippets / Helm
Helm post-upgrade hook (migration Job)
A Job that runs automatically after every helm upgrade -- the standard shape for a database migration step.
helmhookjobmigration
templates/migrate-job.yaml
apiVersion: batch/v1
kind: Job
metadata:
# Hook Jobs need a unique name per release *and* per revision --
# reusing the same name on the next upgrade would collide with the
# still-around Job from the last one.
name: {{ .Release.Name }}-migrate-{{ .Release.Revision }}
annotations:
"helm.sh/hook": post-upgrade
"helm.sh/hook-weight": "0"
# Deletes the Job once it succeeds, so completed migration Jobs
# don't pile up across every release. A failed one is left in
# place on purpose, so you can read its logs before retrying.
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
spec:
restartPolicy: Never
containers:
- name: migrate
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
command: ["npm", "run", "migrate"]
More helm snippets