kubernetes-sigs / kubernetes-sigs/cluster-api
Allow remediation of Machines on old MachineSets when using the OnDelete strategy
- Dominant language
- Go
- Stars
- 4.3k
- Forks
- 1.6k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 113
Description
### What would you like to be added (User Story)?
As a cluster operator, I would like Machines on old MachineSets to be remediated by MHC when the MachineDeployment uses the OnDelete strategy, so that remediation keeps working while a rollout is pending.
### Detailed Description
Currently the MachineSet controller skips remediation for Machines on old MachineSets ("Machine won't be remediated because it is pending removal due to rollout").
This makes sense for RollingUpdate, but with OnDelete nothing removes those Machines automatically — the rollout only progresses when someone deletes them. So unhealthy Machines on old MachineSets stay unhealthy until manual intervention.
Since deleting a Machine is exactly how OnDelete progresses a rollout, remediation could simply delete the unhealthy Machine and let the new MachineSet bring up the replacement.
### Anything else you would like to add?
In our environment, Cluster API releases (rolled out by the team operating Cluster API) trigger rolling updates of workload clusters. As cluster operators we want to control the timing of Machine recreation (= Pod eviction) ourselves, so we use OnDelete — but we still want remediation to work for unhealthy Machines.
### Label(s) to be applied
/kind feature
/area machinedeployment
/area machinehealthcheck
Contributor guide
Assessment
This issue has not been assessed yet.