-
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 declarative VirtualMachine management #317
base: main
Are you sure you want to change the base?
design-proposal: instancetype.kubevirt.io - Support declarative VirtualMachine management #317
Conversation
[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 |
958d028
to
e3d305f
Compare
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
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.
Great idea!
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Outdated
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
design-proposals/instancetype.kubevirt.io/support-declarative-vm-management.md
Show resolved
Hide resolved
Signed-off-by: Lee Yarwood <[email protected]>
e3d305f
to
a976003
Compare
|
||
``` | ||
|
||
If a snapshot is taken of this VirtualMachine however the values from status will be written back into the spec with `inferFromVolume` now removed: |
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.
It will lead to slightly different behavior of a restored VM. On the original VM the inference can be retriggered, on the restored VM the instancetype/preference will be fixed. Is there a way to keep inferFromVolume
and only restore the status?
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.
We could always move name
, kind
, RevisionName
and controllerRevisionRef
into status
during restore when inferFromVolume
is provided? That's simple enough and would allow the restored VM to retain the same inferFromVolume
behaviour.
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 doesn't work, we can't change the spec after submission at all even in this case. I guess if the user wants inferFromVolume
to work again this case they will need to clear the other fields in the spec and then use the refresh
subresource API etc to infer things once again.
a976003
to
11ac68f
Compare
Signed-off-by: Lee Yarwood <[email protected]>
11ac68f
to
40aa2f4
Compare
design-proposals/instancetype.kubevirt.io/instancetype-vm-rollout-support.md
Show resolved
Hide resolved
/sig compute |
What this PR does / why we need it:
At present a VirtualMachine using instance types and/or preferences will have runtime derived data such as the name of a ControllerRevision capturing the state of each resource mutated into the core spec during submission.
This breaks declarative management of VirtualMachines as an owner has no way of pre-populating these runtime derived values and will always see changes made to the spec of their VirtualMachine after submission.
This design proposal aims to enable declarative management of VirtualMachines using instance types and/or preferences by using status to track runtime derived data while retaining all existing behavior and lifecycle support of a VirtualMachine using an instance type and/or preference.
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: