-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Decouple Startup CPU Boost from VPA modes #8175
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
base: master
Are you sure you want to change the base?
Conversation
Hi @laoj2. Thanks for your PR. I'm waiting for a kubernetes 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-sigs/prow repository. |
/assign @omerap12 |
vertical-pod-autoscaler/enhancements/7862-cpu-startup-boost/README.md
Outdated
Show resolved
Hide resolved
* [Optional] `StartupBoost.CPU.Mode`: whether CPU boost is enabled (`"Auto"`) | ||
or not (`"Off"`). If not specified, it defaults to `"Auto"`. |
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.
Could you give a reason why the term Auto
was selected here?
I'd assume this field is effectively a boolean, so I'd assume On/Off
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 point. Wanted to make this similar to regular VPA, but doesn't really make much sense. Changed it to On/Off. Thanks!
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.
Please look at this: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md
It says:
"Think twice about bool fields. Many ideas start as boolean but eventually trend towards
a small set of mutually exclusive options. Plan for future expansions by describing the
policy options explicitly as a string type alias (e.g. TerminationMessagePolicy)."
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 call out, thanks Omer!
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.
Is the guidance here then to go back to Auto
?
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.
What if we copied ControlledResources
?
I wonder if StartupBoost.Resources
(or StartupBoostResources
?) could be a list that takes memory
or cpu
in the future, but for now it takes cpu
only?
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.
That's an interesting idea. I'm wondering how we could use it for the use case where we define the "top-level" CPU boost, but want to disable it for an individual container. In the current proposal, it would look like this:
apiVersion: "autoscaling.k8s.io/v1"
kind: VerticalPodAutoscaler
metadata:
name: example-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: example
startupBoost:
cpu:
factor: 2.0
resourcePolicy:
containerPolicies:
- containerName: "disable-cpu-boost-for-this-container"
startupBoost:
mode: "Off"
So, would we still need an "off"/"none" StartupBoostResources
if we want to use this other field, instead? e.g.:
apiVersion: "autoscaling.k8s.io/v1"
kind: VerticalPodAutoscaler
metadata:
name: example-vpa
spec:
targetRef:
apiVersion: "apps/v1"
kind: Deployment
name: example
startupBoost:
cpu:
factor: 2.0
resourcePolicy:
containerPolicies:
- containerName: "disable-cpu-boost-for-this-container"
startupBoost:
startupBoostResources:
- "Off"
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.
Hi folks, in the meantime, I changed this back to Auto
. But let me know what you think.
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'm unsure about "Auto", it seems to be like it's just "Enabled/On", what is automatic about it?
954bbbc
to
0b42a31
Compare
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: laoj2 The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
vertical-pod-autoscaler/enhancements/7862-cpu-startup-boost/README.md
Outdated
Show resolved
Hide resolved
* [Optional] `StartupBoost.CPU.Mode`: whether CPU boost is enabled (`"Auto"`) | ||
or not (`"Off"`). If not specified, it defaults to `"Auto"`. |
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.
Is the guidance here then to go back to Auto
?
0b42a31
to
ea041d5
Compare
What type of PR is this?
/kind documentation
/kind feature
What this PR does / why we need it:
Changes to AEP-7862:
#7862