community
community copied to clipboard
design-proposal: rewrite node-labeller to be more modular and testable
What this PR does / why we need it:
The node-labeller has deviated from its primary purpose of simply labeling nodes. It now also handles inferring host capabilities for the vmcontroller, a task unrelated to its core function. Most of the capabilities it gathers aren't relevant to node labeling, leading to an overcomplicated design and unnecessary coupling with the vmcontroller which hinders testing and extensibility of both components.
As such this design proposal seeks to decouple the two and simplify node-labeller to focus on its original intended purpose while moving its current inference logic to a separate virt-handler unit.
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
Checklist
This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR. Approvers are expected to review this list.
- [ ] Design: A design document was considered and is present (link) or not required
- [ ] PR: The PR description is expressive enough and will help future contributors
- [ ] Code: Write code that humans can understand and Keep it simple
- [ ] Refactor: You have left the code cleaner than you found it (Boy Scout Rule)
- [ ] Upgrade: Impact of this change on upgrade flows was considered and addressed if required
- [ ] Testing: New code requires new unit tests. New features and bug fixes require at least on e2e test
- [ ] Documentation: A user-guide update was considered and is present (link) or not required. You want a user-guide update if it's a user facing feature / API change.
- [ ] Community: Announcement to kubevirt-dev was considered
Release note:
NONE
/cc @iholder101 /cc @orelmisan
/sig compute
[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jean-edouard
The full list of commands accepted by this bot can be found here.
The pull request process is described here
- ~~OWNERS~~ [jean-edouard]
Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment
Change - Addressed @jean-edouard comments, also removed Phase IV as I deemed it out-of-scope for this DP.
/cc