-
Notifications
You must be signed in to change notification settings - Fork 249
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
topology-updater: introduce exclude-list #949
topology-updater: introduce exclude-list #949
Conversation
Hi @Tal-or. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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/test-infra repository. |
✅ Deploy Preview for kubernetes-sigs-nfd ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
Thanks @Tal-or for the patch. On a very very quick look it looks generally good 😄 I'll take a closer look next week /ok-to-test |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left a few comments, still a little bit of work but nothing major. Basically we should take care of the Helm deployment, too, and update documentation.
In the documentation we should somewhere describe this new feature, e.g. in docs/usage/nfd-topology-updater.md
. We could also add topology-updater config reference (similar to docs/reference/worker-configuration-reference.md
). We don't support dynamic configuration file update (similar to nfd-worker) and I think that's fine but I think that should be noted in the documentation as well.
Albout the commit message(s). It would be nice if the commit message would explain a bit why this is added. E.g. an example of an intended usage scenario (it's still a bit unclear to me 😅)
Also, could you wrap the body of commit messages to 72 characters (https://www.kubernetes.dev/docs/guide/pull-requests/#wrap-the-commit-message-body-at-72-characters)
6722288
to
ed0e102
Compare
bd681d9
to
c5d2c0b
Compare
Explained the rationale for this feature and added an e2e test |
👍👍 just need to fix the one linter problem there |
On it. Already been fixed locally I'll just address the last comment from you and upload a new revision |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good progress @Tal-or 👍 Just a few more small comments but almost there, I think
ec3e35c
to
9cfa884
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Tal-or. Good that you spotted the helm chart parameters table in docs, too.
Just two more small nits 🙄 But after those I think I'm good
The exclude-list allows to filter specific resource accounting from NRT's objects per node basis. The CRs created by the topology-updater are used by the scheduler-plugin as a source of truth for making scheduling decisions. As such, this feature allows to hide specific information from the scheduler, which in turn will affect the scheduling decision. A common use case is when user would like to perform scheduling decisions which are based on a specific resource. In that case, we can exclude all the other resources which we don't want the scheduler to exemine. The exclude-list is provided to the topology-updater via a ConfigMap. Resource type's names specified in the list should match the names as shown here: https://pkg.go.dev/k8s.io/api/core/v1#ResourceName This is a resurrection of an old work started here: kubernetes-sigs#545 Signed-off-by: Talor Itzhak <[email protected]>
Different tests requires different configuration of the topology-updater DaemonSet. Here, we decouple the configuration from the creation part using `JustBeforeEach` so that each test container will has its own configuration. Additional reading: https://onsi.github.io/ginkgo/#separating-creation-and-configuration-justbeforeeach Signed-off-by: Talor Itzhak <[email protected]>
/hold cancel #961 merged |
/test pull-node-feature-discovery-build-image-cross-generic |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Tal-or.
I have one more nit about the commit message title(s)
e2e: topology-updater: add e2e test
add e2e test for what, not the whole topology updater, I think 😄
Same thing with the commits updating deployment and docs.
Oops :) I thought that because it is under the topology update PR it's clear. I'll address that no problem |
NP. Yeah, it's clear now but later on when reading the Git log it's not so obvious anymore :) |
Signed-off-by: Talor Itzhak <[email protected]>
Add a kustomization file with a config example for the exclude-list. Signed-off-by: Talor Itzhak <[email protected]>
- Add a helm template with a config example for the exclude-list. - Add mount for the topology-updater.conf file - Update the templates Makefile target Signed-off-by: Talor Itzhak <[email protected]>
Update the docs with explanations and examples about the exclude-list feature. Signed-off-by: Talor Itzhak <[email protected]>
Done! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me now 👍
ping @fromanirh @fmuyassarov wanna take a look?
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: marquiz, Tal-or The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
thanks @Tal-or
/hold cancel |
@marquiz Thank you for the time to review this work |
The exclude-list allows filtering specific resource accounting
from NRT's objects per node basis.
The CRs created by the topology-updater are used by the scheduler-plugin
as a source of truth for making scheduling decisions.
As such, this feature allows hiding specific information
from the scheduler, which in turn
will affect the scheduling decision.
A common use case is when a user would like to perform scheduling
decisions that are based on a specific resource.
In that case, we can exclude all the other resources
which we don't want the scheduler to examine.
The exclude-list is provided to the topology-updater via a ConfigMap.
Resource type's names specified in the list should match the names
as shown here: https://pkg.go.dev/k8s.io/api/core/v1#ResourceName
This is a resurrection of an old work started here:
#545