-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consider executing "reconcileDelete" only if finalizer is set #11399
Comments
This issue is currently awaiting triage. If CAPI contributors determine this is a relevant issue, they will accept it by applying the The Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
@fabriziopandini @vincepri @enxebre @chrischdi Do you have any opinions on this? |
What's the underlying problem we're trying to solve? The assumption that the reconcileDelete always gets executed is generally fine, although I can see the point of only running actions when the finalizer is present. That said, in terms of re-entrance and ongoing correctness leaning towards more extra reconciliation is probably preferred to rely on the finalizer being present |
I agree with Vince. |
Mostly to avoid unnecessary redundant work. The finalizer exists because there is work to do for a specific controller, once that is done and the finalizer is removed there should be nothing else to do (otherwise we shouldn't have removed the finalizer). No strong opinion though if we prefer to continue running reconcileDelete until the object is gone from etcd. Just seems easier to change the pattern everywhere to stop running reconcileDelete once there's nothing more to do over tactical fixes across controllers to stop doing certain things that won't work anymore once reconcileDelete succeeded. |
Not sure I understand, why does drain stop working? If there are other Machines the wl cluster kube-apiserver is still reachable. During Cluster deletion drain is not executed at all. |
Today our controllers are implemented like this:
In later reconciles we continue to run "reconcileDelete" even if the finalizer is not set anymore.
I wonder if this should be changed to only execute reconcileDelete as long as the finalizer is on the object.
Pro: always running reconcileDelete:
Pro: running reconcileDelete only when finalizer is set:
The text was updated successfully, but these errors were encountered: