helm / helm/helm

Regression from Helm 3: Waiting for hooks gets stuck and fails on timeout for Jobs with TTL

Open
#31,786 7 comments 1 reaction 0 assignees View on GitHub
bug
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.