You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// RevisionRolloutInProgress will return true if any node status reports its target revision is different from the current revision and the latest known revision.
// Removing multiple members in the middle of a revision rollout can cause API unavailability
116
+
// when simultaneously deleting multiple machines with the controlplanemachineset "OnDelete" strategy,
117
+
// i.e we have multiple machines pending deletion and multiple new replacements added
118
+
//
119
+
// This controller currently has conditions to allow scaling down unhealthy members whose machines
120
+
// are pending deletion. However a revision rollout can temporarily make an etcd member seem unhealthy while
121
+
// the etcd pod is reinstalled to the latest revision.
122
+
// This is different from when the member is indefinitely unhealthy when the revision is stable.
123
+
//
124
+
// Additionally the EtcdEndpointsController pauses while a revision rollout is in progress
125
+
// So initially if the etcd-endpoints configmap is updated from 3->4 when the first replacement machine
126
+
// is added to the membership, a revision rollout will start and the configmap won't update in this period.
127
+
// But the ClusterMemberRemovalController will still delete a seemingly unhealthy machine during rollout
128
+
// The API servers on the old revision will neither see the new replacement etcd endpoint, and will also
129
+
// be using a removed member's endpoint.
130
+
//
131
+
// Moreover the EtcdEndpointsController uses the live etcd membership list to make scale down considerations for etcd quorum so the etcd-endpoints configmap always lags behind it.
132
+
//
133
+
// So the EtcdEndpointsController skips until the revision is stable so we remove members one at a time and unhealthy members are truly unhealthy
0 commit comments