-
Notifications
You must be signed in to change notification settings - Fork 463
CNF-6362: feat: support generating cpu partitioning file from infra flag #3355
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
Conversation
Signed-off-by: ehila <ehila@redhat.com>
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: eggfoobar 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 |
Signed-off-by: ehila <ehila@redhat.com>
35cc6fa to
aa16592
Compare
Signed-off-by: ehila <ehila@redhat.com>
|
/cc @yuqi-zhang Hey Jerry, this is an updated PR from the previously closed one #3335 , the intention is the same but I took your suggestion and made it so MCO takes ownership of the MC for workload partitioning. While we wait for the PR for the API to go through, any thoughts or concerns on the implementation here? |
|
/cc @rphillips @mrunalp |
yuqi-zhang
left a comment
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 think this generally looks like an ok direction, although I always hesitate towards adding additional sub-controllers and managed MCs, at least this one doesn't intersect with other kubelet configuration as far as I can tell.
Will review in-depth once you're ready. Maybe someone from the node team should take a look as well since they technically own the kubeletconfigcontroller
| } | ||
|
|
||
| func cpuPartitionMCName(role string) string { | ||
| return fmt.Sprintf("01-%s-cpu-partitioning", role) |
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.
So, this has a 01 prefix which means it is easily overwriteable by other MCs, which should be fine, since if I understand correctly, /etc/kubernetes/openshift-workload-pinning is the only file this will touch? And nothing else should be touching that file today?
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.
Actually, that file will be overwritten by other MCs later on. The intention is to set that file up originally to configure workload partitioning on the kubelet, then afterwords, when the user configures the PerformanceProfile via NTO, that file will be overwritten with CPUSet information that is defined in the PerformanceProfile. NTO is the one that will generate MCs to control that file afterwords.
|
@eggfoobar: The following tests failed, say
Full PR test history. Your PR dashboard. 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/test-infra repository. I understand the commands that are listed here. |
|
Issues go stale after 90d of inactivity. Mark the issue as fresh by commenting If this issue is safe to close now please do so with /lifecycle stale |
|
@eggfoobar: 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/test-infra repository. |
|
@eggfoobar do you have any updates for this PR? Is this something we are still looking to do? |
|
Hey @yuqi-zhang, apologies, closing this out now that we've changed the approach in the EP. |
/hold
Needs PR: openshift/api#1284
EP: openshift/enhancements#1213
Signed-off-by: ehila ehila@redhat.com
- What I did
Add support for generating a machine config file that will configure kubelet for workload partitioning based off of the infrastructure flag. After some discussion with the installer team, MCO seems to be the best place to enforce the CPU Partitioning configuration cluster wide.
- How to verify it
When the Infrastructure status resource is set to
cpuPartitioning: AllNodes, we will generate two new MCs for workload partitioning named01-master-cpu-partitioningand01-worker-cpu-partitioningthat will create a configuration file for kubelet to use on start up.- Description for the changelog
Add new generated MCs for workload partitioning based off of infrastructure status.