Description of problem:
Currently the clustermemberremoval controller allows will automatically remove an etcd member when the pre-conditions for scale down are met, i.e we have a machine pending deletion and N+1 voting members where N is the desired control-plane size.
The controller will not automatically scale-down if any voting members are unhealthy.
https://github.com/openshift/cluster-etcd-operator/blob/master/pkg/operator/clustermemberremovalcontroller/clustermemberremovalcontroller.go#L174-L190However in the event of a 4 voting member cluster with 1/4 unhealthy members an administrator would want to remove the unhealthy by deleting its associated machine. Removing the member would not violate quorum since the resulting cluster would still be at the desired number of healthy voting members (3 in this example).
The proposed fix here would be to modify the clustermemberremoval controller to relax the scale-down pre-requisite for an unhealthy member and proceed with its removal if the cluster is at or above the desired number of healthy voting members.
Version-Release number of selected component (if applicable):
How reproducible:
Steps to Reproduce:
1. 2. 3.
Actual results:
Expected results:
Additional info: