You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
klog.V(4).InfoS("Can't in-place update pod, waiting for next loop", "pod", klog.KObj(pod))
122
-
return utils.InPlaceDeferred
117
+
return utils.InPlaceEvict
118
+
}
119
+
return utils.InPlaceDeferred
120
+
}
121
+
if singleGroupStats.isPodDisruptable() {
122
+
return utils.InPlaceApproved
123
+
}
124
+
}
125
+
}
126
+
klog.V(4).InfoS("Can't in-place update pod, waiting for next loop", "pod", klog.KObj(pod))
127
+
return utils.InPlaceDeferred
123
128
}
124
129
```
125
130
@@ -152,17 +157,28 @@ for _, pod := range podsForInPlace {
152
157
153
158
154
159
Retry is handled entirely by the Kubelet based on pod conditions:
155
-
-`PodResizePending` (reason: `Deferred`) - Kubelet will retry automatically
156
-
-`PodResizePending` (reason: `Infeasible`) - Kubelet will never retry
157
-
-`PodResizeInProgress` - Resize is being applied
160
+
-`PodResizePending` (reason: `Deferred`) - Kubelet will retry automatically, , VPA continues to defer.
161
+
-`PodResizePending` (reason: `Infeasible`) - Kubelet will never retry, but VPA will continue to defer (not evict) in InPlace mode.
162
+
-`PodResizeInProgress` - Resize is being applied, VPA waits indefinitely in InPlace mode.
163
+
164
+
### Behavior when Feature Gate is Disabled
165
+
166
+
- When `InPlace` feature gate is disabled and a VPA is configured with `UpdateMode: InPlace`, the updater will skip processing that VPA entirely (not fall back to eviction).
167
+
- In contrast, `InPlaceOrRecreate` with its feature gate disabled will fall back to eviction mode.
168
+
169
+
This design ensures that `InPlace` mode truly guarantees no evictions, even in misconfiguration scenarios.
170
+
158
171
159
172
## Test Plan
160
173
161
174
The following test scenarios will be added to e2e tests. The InPlace mode will be tested in the following scenarios:
162
175
163
176
- Basic In-Place Update: Pod successfully updated in-place with InPlace mode
164
-
- Failed Update - No Eviction: Update fails due to node capacity, verify no eviction occurs and pod remains running
177
+
- No Eviction on Failure: Update fails due to node capacity, verify no eviction occurs and pod remains running
178
+
- Feature Gate Disabled: Verify InPlace mode is rejected when feature gate is disabled
179
+
- Indefinite Wait for In-Progress Updates: Update is in-progress for extended period, verify no timeout/eviction occurs (unlike `InPlaceOrRecreate`)
0 commit comments