Hook-Mechanik
Annotation helm.sh/hook macht ein Template zum
Hook: pre-install, post-install,
pre-upgrade, post-upgrade,
pre-delete, post-delete,
pre-rollback, post-rollback,
test.
Reihenfolge via helm.sh/hook-weight (String!,
aufsteigend). Job/Pod-Hooks blockieren bis
Completion, Fehler = Release fehlgeschlagen.
Delete-Policies, Ownership
Hook-Ressourcen gehören nicht zum Release,
helm uninstall räumt sie nicht ab.
helm.sh/hook-delete-policy:
before-hook-creation (Default),
hook-succeeded, hook-failed.
apiVersion: batch/v1
kind: Job
metadata:
name: "{{ .Release.Name }}-db-migrate"
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: 0
template:
spec:
restartPolicy: Never
containers:
- name: migrate
image: registry.example.com/shop/migrate:2.8.1
Chart-Tests
Tests sind Hooks mit helm.sh/hook: test,
konventionell unter templates/tests/. Nach Deploy
ausführen: helm test <release>, der
Test-Pod muss erfolgreich terminieren (Smoke-Test gegen den
Service).