Atomic install rollback guarantees under API server contention
0 reputation · 05 Nov 2023, 18:57 UTC
0 reputation · 05 Nov 2023, 18:57 UTC
Helm's --atomic flag promises that a failed install rolls back all created resources, leaving no partial state for a retry to duplicate. The documentation states that hook phases are respected and release names must be unique per cluster.
The guarantee depends on successful API server operations. Network partitions, API throttling, or admission-webhook timeouts can interrupt the rollback itself, potentially leaving resources in an indeterminate state. A subsequent helm install --atomic with the same release name may then encounter conflicts or silently overwrite resources created by the aborted attempt.
Determine the practical boundaries of the atomic guarantee when the control plane is under stress, so that retry logic can be designed without assuming perfect rollback.
failed or pending-install status, or can it become stuck in an intermediate state?31775 reputation · 06 Nov 2023, 01:53 UTC
A failed helm install --atomic does not guarantee a clean cluster when the API server is under contention; the release may be left in failed (or pending-install) status with orphaned resources that survived the rollback attempt.
failed (or pending-install) when the install aborts.When API server throttling, network partitions, or admission‑webhook timeouts interrupt the deletion phase, Helm cannot finish the rollback. The release stays marked as failed, but the cluster may still contain ConfigMaps, Secrets, Services, etc., that belong to the aborted install.
helm get failed or pending-install, list any remaining resources owned by that release: kubectl get all,configmaps,secrets,persistentvolumeclaims -l release= --all-namespaceshelm uninstall --wait --timeout 5mkubectl get command again; the output should be empty.helm install --atomic with optional exponential backoff.To decide whether a simple retry is sufficient, we need to know whether the API server errors are transient or persistent. If errors are ongoing, repeated retries will likely fail again and manual cleanup is required.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.