Regression from Helm 3: Waiting for hooks gets stuck and fails on timeout for Jobs with TTL
- Dominant language
- Go
- Stars
- 30.2k
- Forks
- 7.8k
- Avg merge
- 20h 58m
- Merged PRs (30d)
- 36
Description
Hi team 👋
The legacy waiter (i.e. the Helm 3 one) would ignore deleted hooks:
https://github.com/helm/helm/blob/5b78ee8dff513f402aba593eb7e6b286714518fd/pkg/kube/wait.go#L280-L282
This would allow a Job hook with [`.spec.ttlSecondsAfterFinished`](https://kubernetes.io/docs/concepts/workloads/controllers/ttlafterfinished/) to be used. Now, the kstatus watcher (default in Helm 4) gets stuck on `NotFound`.
Context: `.spec.ttlSecondsAfterFinished` causes the TTL controller to wipe the Job when it finishes, hence why kstatus sees `NotFound`.
The ingress-nginx chart, for example (long live the king), sets this TTL to zero (immediate deletion):
https://github.com/kubernetes/ingress-nginx/blob/a3088e571b36fee8052d550b7bc8c1c93bf7a1e7/charts/ingress-nginx/templates/admission-webhooks/job-patch/job-createSecret.yaml#L20
Contributor guide
Assessment
This issue has not been assessed yet.