Skip to content

Commit de4a5b7

Browse files
authored
Merge pull request #7901 from adrianmoisey/update-aep
AEP-4016: details about upgrade and downgrade, and compatibility with Kubernetes
2 parents 0a9528b + ae3a367 commit de4a5b7

File tree

1 file changed

+47
-0
lines changed
  • vertical-pod-autoscaler/enhancements/4016-in-place-updates-support

1 file changed

+47
-0
lines changed

vertical-pod-autoscaler/enhancements/4016-in-place-updates-support/README.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
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

Comments
 (0)