@@ -223,22 +223,16 @@ requests will be rejected with 429 http code similarly to watch requests.
223
223
Given we're changing the existing behavior, there is a risk of breaking some
224
224
clients. To mitigate it, we will introduce all the logic behind two separate
225
225
feature gates [ to allow for disablement if needed] :
226
- - WatchCacheInitializationPostStartHook - handling the logic of the new
227
- post-start hook
228
- - ResilientWatchCacheInitialization - handling the changes to returning
229
- 429 errors instead of keeping the requests hanging
230
-
231
- Given the proposed changes are not changing the API and we will already
232
- implement them with desired quality and coverage, we propose to go directly
233
- to Beta.
234
- However, we admit that the risk in both cases is different:
235
- - for the new post-start hook, there is a risk of kube-apiserver not initializing,
236
- thus we will start with Beta disabled by-default
237
- - for the changes to handing requests when watchcache is uninitialized, we
238
- believe the risk is visibly lower (and 429 errors were already returned
239
- before, even in small clusters where priority-levels are small enough
240
- to often admit only 1-2 inflight requests at once anyway) and we will
241
- enable it by-default from the very beginning
226
+ - WatchCacheInitializationPostStartHook (Beta, disabled by default):
227
+ handling the logic of the new post-start hook. There is a risk of
228
+ kube-apiserver not initializing if this hook has issues, hence it started
229
+ as Beta disabled by default. Plan is to enable it by default after getting some production data.
230
+ - ResilientWatchCacheInitialization (Beta, enabled by default since 1.31):
231
+ Handles the changes to returning 429 errors instead of keeping the requests hanging.
232
+ The risk is visibly lower (and 429 errors were already returned
233
+ before, even in small clusters where priority-levels are small enough
234
+ to often admit only 1-2 inflight requests at once anyway) so the feature was enabled by default.
235
+ This feature has proven stable and is targeting GA in 1.34.
242
236
243
237
## Design Details
244
238
@@ -293,7 +287,9 @@ Given we're only modifying kube-apiserver, integration tests are sufficient.
293
287
294
288
#### GA
295
289
296
- TODO
290
+ - Feature was enabled by default allowing us to collect production data.
291
+ - No critical issues reported during the period that would block graduation.
292
+ - Any further tuning of the specific request delegation logic is considered an incremental improvement and can be addressed post-GA.
297
293
298
294
### Upgrade / Downgrade Strategy
299
295
@@ -362,7 +358,7 @@ In case of bugs:
362
358
363
359
###### Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?
364
360
365
- TODO: The test will be run before promoting the feature to Beta .
361
+ No need for tests, this feature doesn't have any persistent side effects .
366
362
367
363
###### Is the rollout accompanied by any deprecations and/or removals of features, APIs, fields of API types, flags, etc.?
368
364
@@ -388,10 +384,7 @@ The feature is not workload-specific, it only affects if certain API calls will
388
384
389
385
###### Are there any missing metrics that would be useful to have to improve observability of this feature?
390
386
391
- <!--
392
- Describe the metrics themselves and the reasons why they weren't added (e.g., cost,
393
- implementation difficulties, etc.).
394
- -->
387
+ No
395
388
396
389
### Dependencies
397
390
0 commit comments