🌱 Remove full resize fss - #1873
Open
bryanv wants to merge 2 commits into
Open
Conversation
The full resize capability -- gated by the FSS_WCP_VMSERVICE_RESIZE feature state -- was a work in progress that will not be completed. Remove the feature state and everything that was only reachable through it, so that class-based resize is described by a single path: the narrower CPU/memory resize gated by the FSS_WCP_VMSERVICE_RESIZE_CPU_MEMORY feature state. Removed: - The VMResize feature state, its env var, and the manifest patches that plumbed FSS_WCP_VMSERVICE_RESIZE into the manager. - Session.getResizeConfigSpecForPoweredOffVM, which was the only caller of resize.CreateResizeConfigSpec. - vmopv1util.OverwriteResizeConfigSpec along with the guest ID, MMIO, maintenance-mode power-off, and v1a1-compatibility ExtraConfig overrides that only it applied. OverwriteAlwaysResizeConfigSpec, which the CPU/memory path uses, is unchanged. - vmopv1util.SyncClassComputeToSpec and the topology, latency sensitivity, and CPU/memory flag syncs it performed. SyncClassSizeAndAllocationToSpec is unchanged. Every gate of the form "VMResize || VMResizeCPUMemory" collapses to VMResizeCPUMemory, in the session, status, provider, and both VM webhooks. The provider resize tests lose their Full/CPU & Memory table subtree and now run only the CPU/memory case. The ChangeBlockTracking override spec is dropped because that override lived in the removed code path; the class-configuration-synced assertions it shared a context with are kept. The OverwriteResizeConfigSpec unit tests are retargeted at OverwriteAlwaysResizeConfigSpec and narrowed to what it still applies. pkg/util/resize is deliberately untouched: CreateResizeConfigSpec and the device comparison helpers remain, though nothing calls them now.
When a powered-off VM stays powered off, the reconcile routes through resizeVMWhenPoweredStateOff, which built its ConfigSpec from the class-based CPU/memory diff plus OverwriteAlwaysResizeConfigSpec. Neither of those applies spec.advanced.changeBlockTracking, so a CBT change on a powered-off VM was silently deferred until the VM was next powered on and reconciled through the update path, which does call UpdateConfigSpecChangeBlockTracking. This was masked until now: the removed full resize path applied CBT via OverwriteResizeConfigSpec, so only deployments running with just FSS_WCP_VMSERVICE_RESIZE_CPU_MEMORY saw the deferral. Call UpdateConfigSpecChangeBlockTracking from the powered-off resize path as well. CBT is not part of the class-based resize diff and no other step in that path writes ChangeTrackingEnabled, so the helper sees a nil field and behaves exactly as it does on the update path: set the spec value when it differs from the current VM config, and do nothing when the spec leaves CBT unset. No FSR is needed because the VM is powered off. Restore the provider resize Overrides tests, which cover CBT being applied while powered off for a VM with a class, with a missing class, and with no class at all. Add E2E coverage asserting that status.changeBlockTracking becomes true without the VM ever leaving the powered-off state.
bryanv
force-pushed
the
bryanv/remove-full-resize-capability
branch
from
September 4, 2026 15:30
b2b610f to
e0949c8
Compare
Contributor
Minimum allowed line rate is |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do, and why is it needed?
The full resize via the VMClass was only partially completed and won't full resize via the class won't be done, instead that will be exposed via fields in the VM Spec.
Which issue(s) is/are addressed by this PR? (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)format, will close the issue(s) when PR gets merged):Fixes # vmop-4167
Are there any special notes for your reviewer:
UTS smoke, core, ext
Please add a release note if necessary: