-
Notifications
You must be signed in to change notification settings - Fork 105
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
design-proposal: instancetype.kubevirt.io - Support custom resource sizing #318
base: main
Are you sure you want to change the base?
design-proposal: instancetype.kubevirt.io - Support custom resource sizing #318
Conversation
Signed-off-by: Lee Yarwood <[email protected]>
Skipping CI for Draft Pull Request. |
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: 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 |
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
d972e47
to
3e0463f
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.
Lots of pedantic formatting comments, feel free to ignore.
My only real question is around the need for a new virtctl
command.
Thanks!
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
|
||
## Allow for the easy creation of customization common-instancetype resources | ||
|
||
### Introduce `virtctl customize` |
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.
Why? Can't users just kubectl edit
to make changes?
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.
The use case with virtctl customize
is that we want to start with an object in the cluster, make some small changes, automate kind conversion/metadata removal and then output the newly crafted definition.
Does kubectl edit
actually support taking an existing object and only outputting the result locally? I thought it always attempted to mutate the object in the cluster?
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.
Ah so the idea is for users to be able to make a copy of a system-wide instancetype into their namespace so they can modify it?
Then I would suggest something like virtctl instancetype clone
with a mandatory namespace argument. Then users can kubectl edit
the resulting object. Would that make sense?
I just don't like the fact that virtctl customize
isn't self explanatory.
Sorry for the extremely long delay btw, I somehow didn't get notified of your answer...
design-proposals/instancetype.kubevirt.io/custom-resource-sizing.md
Outdated
Show resolved
Hide resolved
Instance types and preferences provide a way to define common VirtualMachine workload resource sizing and preferences. The common-instancetypes project within KubeVirt currently provides a set of standardized instance types and preferences that can be deployed by `virt-operator` alongside all of the other core KubeVirt components. While the resources provided by the common-instancetypes project are a great starting point they are generalized and could never possibly cover all workload resourcing and preference use cases. As such this design proposal seeks to make it as easy as possible for both cluster admins and users to create their own customized versions of these commonly deployed resources specific to their workloads. Additionally the instance type API itself will be made more flexible by making vCPU and memory resource sizing optional within an instance type, allowing users to provide their own sizing within their VirtualMachine while still retaining the remaining benefits of using an instance type. Signed-off-by: Lee Yarwood <[email protected]> Apply suggestions from code review Co-authored-by: Jed Lejosne <[email protected]> Signed-off-by: Lee Yarwood <[email protected]>
1abbece
to
44ea064
Compare
Thanks @jean-edouard , really appreciate the review! |
/sig compute |
What this PR does / why we need it:
Instance types and preferences provide a way to define common VirtualMachine workload resource sizing and preferences.
The common-instancetypes project within KubeVirt currently provides a set of standardized instance types and preferences that can be deployed by
virt-operator
alongside all of the other core KubeVirt components.While the resources provided by the common-instancetypes project are a great starting point they are generalized and could never possibly cover all workload resourcing and preference use cases.
As such this design proposal seeks to make it as easy as possible for both cluster admins and users to create their own customized versions of these commonly deployed resources specific to their workloads. Additionally the instance type API itself will be made more flexible by making vCPU and memory resource sizing optional within an instance type, allowing users to provide their own sizing within their VirtualMachine while still retaining the remaining benefits of using an instance type.
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.
Release note: