@@ -278,6 +278,31 @@ case will change how watchcache implementation will be handling the request.
278
278
| _ RV_ | _ NotOlderThan_ | _ unset_ | _ N_ | Quorum read request + check for _ RV_ | Delegated to etcd | Deferred |
279
279
| _ RV_ | _ NotOlderThan_ | _ token_ | _ unset_ / _ N_ | Fails [ validation] | Fails [ validation] | |
280
280
281
+ For watch requests both ` Continuation ` and ` Limit ` parameters are ignored (we should
282
+ have added validation rules for them in the past), but we have ` SendInitialEvents ` one.
283
+ The table for watch requests look like the following
284
+
285
+ | ResourceVersion | ResourceVersionMatch | SendInitialEvents | etcd implementation | watchcache implementation | changed |
286
+ | -----------------| ----------------------| ------------------------| ------------------------------------------------| -----------------------------------------| ----------|
287
+ | _ unset_ | _ unset_ | _ unset_ | Quorum list + watch stream | Delegate to etcd | Deferred |
288
+ | _ unset_ | _ unset_ | false / true | Fails [ validation] | Fails [ validation] | |
289
+ | _ unset_ | _ NotOlderThan_ | _ unset_ | Fails [ validation] | Fails [ validation] | |
290
+ | _ unset_ | _ NotOlderThan_ | false | Watch stream from etcd RV | Read etcd RV. Watch stream from it | |
291
+ | _ unset_ | _ NotOlderThan_ | true | Quorum list + watch stream | Wait RV > etcd RV. List + watch stream | |
292
+ | _ unset_ | _ Exact_ | _ unset_ / false / true | Fails [ validation] | Fails [ validation] | |
293
+ | _ 0_ | _ unset_ | _ unset_ | Quorum list + watch stream | List + watch stream | |
294
+ | _ 0_ | _ unset_ | false / true | Fails [ validation] | Fails [ validation] | |
295
+ | _ 0_ | _ NotOlderThan_ | _ unset_ | Fails [ validation] | Fails [ validation] | |
296
+ | _ 0_ | _ NotOlderThan_ | false | Watch stream from etcd RV | Watch stream from current watchcache RV | |
297
+ | _ 0_ | _ NotOlderThan_ | true | Quorum list + watch stream | List + watch stream | |
298
+ | _ 0_ | _ Exact_ | _ unset_ / false / true | Fails [ validation] | Fails [ validation] | |
299
+ | _ RV_ | _ unset_ | _ unset_ | Watch stream from RV | Watch stream from RV | |
300
+ | _ RV_ | _ unset_ | false / true | Fails [ validation] | Fails [ validation] | |
301
+ | _ RV_ | _ NotOlderThan_ | _ unset_ | Fails [ validation] | Fails [ validation] | |
302
+ | _ RV_ | _ NotOlderThan_ | false | Check RV > etcd RV. Watch stream from RV | Watch stream from RV | |
303
+ | _ RV_ | _ NotOlderThan_ | true | Check RV > etcd RV. Quorum list + watch stream | Wait for RV. List + watch stream | |
304
+ | _ RV_ | _ Exact_ | _ unset_ / false / true | Fails [ validation] | Fails [ validation] | |
305
+
281
306
[ validation ] : https://github.com/kubernetes/kubernetes/blob/release-1.30/staging/src/k8s.io/apimachinery/pkg/apis/meta/internalversion/validation/validation.go#L28
282
307
[ etcd resolution ] : https://github.com/kubernetes/kubernetes/blob/release-1.30/staging/src/k8s.io/apiserver/pkg/storage/etcd3/store.go#L589-L627
283
308
0 commit comments