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
@@ -277,8 +278,8 @@ The rough idea/plan is as follows:
277
278
278
279
- step 1: change the informers to establish a WATCH request with a new query parameter instead of a LIST request.
279
280
- step 2: upon receiving the request from an informer, compute the RV at which the result should be returned (possibly contacting etcd if consistent read was requested). It will be used to make sure the watch cache has seen objects up to the received RV. This step is necessary and ensures we will meet the consistency requirements of the request.
281
+
- step 2a: wait until watch catches up with the computed RV
280
282
- step 2a: send all objects currently stored in memory for the given resource type.
281
-
- step 2b: propagate any updates that might have happened meanwhile until the watch cache catches up to the latest RV received in step 2.
282
283
- step 2c: send a bookmark event to the informer with the given RV.
283
284
- step 3: listen for further events using the request from step 1.
284
285
@@ -342,15 +343,15 @@ Whereas further down in this section we provided a detailed description of each
342
343
</tr>
343
344
<tr>
344
345
<th>2a.</th>
345
-
<th>The watch cache starts streaming initial data it already has in memory.</th>
346
+
<th>The watch cache waits until is observed the requested ResourceVersion.</th>
346
347
</tr>
347
348
<tr>
348
349
<th>2b.</th>
349
-
<th>The watch cache waits until it has observed data up to the RV received in step 2. Streaming all new data (if any) to the reflector immediately.</th>
350
+
<th>The watch cache stream all the contents from its in-memory store.</th>
350
351
</tr>
351
352
<tr>
352
353
<th>2c.</th>
353
-
<th>The watch cache has observed the RV (from step 2) and sends a bookmark event with the given RV to the reflector.</th>
354
+
<th>After sending all the objects it sends a bookmark event with the given RV to the reflector.</th>
354
355
</tr>
355
356
<tr>
356
357
<th>3.</th>
@@ -763,16 +764,29 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
763
764
- Extend the existing performance tests with a case that adds a large number of small objects.
764
765
The current perf test adds a small number of large objects.
765
766
The new variant will help catch potential regressions such as https://github.com/kubernetes/kubernetes/issues/129467
766
-
767
767
768
-
#### GA
768
+
#### Beta3
769
+
With new concerns brought in 1.33 release timeline, we reviset the approach for the feature.
770
+
The discussion happened in [this document] and resulted in the following update for the criteria:
771
+
772
+
- Revert the client-go changes that use watchList to implement List.
773
+
This inclues removing the API annotation that made this possible, because it doesn't
774
+
serve another purpose.
775
+
- Ensure we don't break the "latestRV" usecase for StorageVersionMigrator reusing the
776
+
informer cache from the kube-controller-manager
777
+
- Ensure that the feature is usable by external projects by validating it works with
778
+
controller-runtime out-of-the-box via simple enablement
779
+
- Add support for AcceptContentType header with the value application/json;as=Table and
the `storage/cacher` to use streaming directly from etcd
771
783
(This will also allow us to [remove](https://github.com/kubernetes/kubernetes/blob/a07b1aaa5b39b351ec8586de800baa5715304a3f/staging/src/k8s.io/client-go/tools/cache/reflector.go#L110) the `reflector.UseWatchList` field).
772
-
-Currently, WatchList request does not support the use of the AcceptContentType header with the value application/json;as=Table.
773
-
When this value is set, the API will return a 406 Not Acceptable response.
774
-
This behavior needs to be updated to ensure compatibility with standard LIST requests.
784
+
-Enable the feature by-default for kube-controller-manager.
0 commit comments