Chnages to handle Node taint mutation only through the node controller - #389
Chnages to handle Node taint mutation only through the node controller#389Karthik-K-N wants to merge 1 commit into
Conversation
|
Skipping CI for Draft Pull Request. |
✅ Deploy Preview for node-readiness-controller ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: Karthik-K-N The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
PR needs rebase. DetailsInstructions 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. |
|
had a look at this since it came out of #382, and the single writer split does address the race there. with taint mutation living in the node controller there's no second writer to lose the annotation update against. few things came up while testing the branch locally. observedGeneration now marks "seen" rather than "applied". the rule reconciler sets appliedNodes doesn't shrink when a node is deleted. the full recompute used to live in the delete path still writes taints from the rule reconciler. also happy to share the envtest cases if they're useful. |
|
I see it could be cleaner and would avoid patch fixes like #343. But I'm skeptical of multiple major refactors.. Concurrent update risks we are seeing are mainly node status handling (taint management is optimistically locked), so I want to wait for #345, and revisit this if we still want to go down this route. Wdyt? |
Sure, we can do that. |
Hey, Thanks for looking at this. As its just a PoC so I haven't fixed most of the things, but based on the feedback will work in future. Thanks |
Description
Its is just a PoC
Currently we have NodeReadinessRule(NRR) controller and Node controller, which both acts on the node, Though the system is expected to be eventual consistent two controllers acting on Node may cause some issues to enduser.
With this PoC changes are made such that only the Node controller is authorative to mutate Node object that is adding/removing taint, where the the NRR controller takes care of building cache, managing finalizers and cleaning up.
Related Issue
Type of Change
Testing
Checklist
make testpassesmake lintpassesDoes this PR introduce a user-facing change?
Doc #(issue)