1212 - [ In-Place Updates] ( #in-place-updates )
1313 - [ Comparison of ` UpdateMode ` s] ( #comparison-of-updatemodes )
1414 - [ Test Plan] ( #test-plan )
15+ - [ Upgrade / Downgrade Strategy] ( #upgrade--downgrade-strategy )
16+ - [ Feature Enablement and Rollback] ( #feature-enablement-and-rollback )
17+ - [ Kubernetes version compatibility] ( #kubernetes-version-compatibility )
1518- [ Implementation History] ( #implementation-history )
1619<!-- /toc -->
1720
@@ -254,6 +257,49 @@ tested in the following scenarios:
254257* In-place update will fail but ` CanEvict ` is false, pod should not be evicted.
255258* In-place update will fail but ` EvictionRequirements ` are false, pod should not be evicted.
256259
260+ ### Upgrade / Downgrade Strategy
261+
262+ #### Upgrade
263+
264+ On upgrade of the VPA to 1.4.0 (tentative release version), nothing will change,
265+ VPAs will continue to work as before.
266+
267+ Users can use the new ` InPlaceOrRecreate ` by enabling the alpha Feature Gate (which defaults to disabled)
268+ by passing ` --feature-gates=InPlaceOrRecreate=true ` to the updater and admission-controller components and setting
269+ their VPA UpdateMode to use ` InPlaceOrRecreate ` .
270+
271+ #### Downgrade
272+
273+ On downgrade of VPA from 1.4.0 (tentative release version), nothing will change.
274+ VPAs will continue to work as previously, unless, the user had enabled the feature
275+ gate. In which case downgrade could break their VPA that uses ` InPlaceOrRecreate ` .
276+
277+ ### Feature Enablement and Rollback
278+
279+ #### How can this feature be enabled / disabled in a live cluster?
280+
281+ - Feature gate name: InPlaceOrRecreate
282+ - Components depending on the feature gate:
283+ - admission-controller
284+ - updater
285+
286+ Disabling of feature gate ` InPlaceOrRecreate ` will cause the following to happen:
287+
288+ - admission-controller to ** reject** new VPA objects being created with ` InPlaceOrRecreate ` configured
289+ - A descriptive error message should be returned to the user letting them know that they are using a feature gated feature
290+ - updater to fall back to ` Recreate ` , should it encounter a VPA configured with ` InPlaceOrRecreate `
291+
292+ Enabling of feature gate ` InPlaceOrRecreate ` will cause the following to happen:
293+
294+ - admission-controller to ** accept** new VPA objects being created with ` InPlaceOrRecreate ` configured
295+ - updater will attempt to perform an in-place adjustment for VPAs configured with ` InPlaceOrRecreate `
296+
297+ ### Kubernetes version compatibility
298+
299+ ` InPlaceOrRecreate ` is being built assuming that it will be running on a Kubernetes version of at least 1.33
300+ with the beta version of [ KEP-1287: In-Place Update of Pod Resources] ( https://github.com/kubernetes/enhancements/issues/1287 )
301+ enabled. Should these conditions not be true, the VPA shall fall back to ` Recreate ` and emit a log message saying that it did so.
302+
257303### Details still to consider
258304
259305#### Careful with memory scale down
@@ -266,3 +312,4 @@ Needs more research on how to scale down on memory safely.
266312- 2023-05-10: initial version
267313- 2025-02-19: Updates to align with latest changes to [ KEP-1287] ( https://github.com/kubernetes/enhancements/issues/1287 ) .
268314- 2025-03-06: Scope changes to "partial updates" feature
315+ - 2025-03-08: Add "Upgrade / Downgrade Strategy" and "Kubernetes version compatibility" sections
0 commit comments