kubernetes-sigs / kubernetes-sigs/cluster-api

Allow remediation of Machines on old MachineSets when using the OnDelete strategy

Open
#13,800 2 comments 0 reactions 1 assignee Claimed by @fabriziopandini View on GitHub
kind/feature priority/backlog triage/accepted
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

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.