@@ -458,31 +458,30 @@ Extend the `ListOptions` struct with the following field:
458458type ListOptions struct {
459459 ...
460460
461- // SendInitialEvents, when set together with Watch option,
462- // begin the watch stream with synthetic init events to build the
463- // whole state of all resources followed by a synthetic "Bookmark"
464- // event containing a ResourceVersion after which the server
465- // continues streaming events.
466- //
467- // When SendInitialEvents option is set, we require ResourceVersionMatch
468- // option to also be set. The semantic of the watch request is as following:
469- // - ResourceVersionMatch = NotOlderThan
470- // It starts with sending initial events for all objects (at some resource
471- // version), potentially followed by an event stream until the state
472- // becomes synced to a resource version as fresh as the one provided by
473- // the ResourceVersion option. At this point, a synthetic bookmark event
474- // is send and watch stream is continued to be send.
475- // If RV is unset, this is interpreted as "consistent read" and the
476- // bookmark event is send when the state is synced at least to the moment
477- // when request started being processed.
478- // - ResourceVersionMatch = Exact
479- // Unsupported error is returned.
480- // - ResourceVersionMatch unset (or set to any other value)
481- // BadRequest error is returned.
482- //
483- // Defaults to true if ResourceVersion="" or ResourceVersion="0" (for backward
484- // compatibility reasons) and to false otherwise.
485- SendInitialEvents bool
461+ // `sendInitialEvents=true` may be set together with `watch=true`.
462+ // In that case, the watch stream will begin with synthetic events to
463+ // produce the current state of objects in the collection. Once all such
464+ // events have been sent, a synthetic "Bookmark" event will be sent.
465+ // The bookmark will report the ResourceVersion (RV) corresponding to the
466+ // set of objects, and be marked with `"k8s.io/initial-events-end": "true"` annotation.
467+ // Afterwards, the watch stream will proceed as usual, sending watch events
468+ // corresponding to changes (subsequent to the RV) to objects watched.
469+ //
470+ // When `sendInitialEvents` option is set, we require `resourceVersionMatch`
471+ // option to also be set. The semantic of the watch request is as following:
472+ // - `resourceVersionMatch` = NotOlderThan
473+ // is interpreted as "data at least as new as the provided `resourceVersion`"
474+ // and the bookmark event is send when the state is synced
475+ // to a `resourceVersion` at least as fresh as the one provided by the ListOptions.
476+ // If `resourceVersion` is unset, this is interpreted as "consistent read" and the
477+ // bookmark event is send when the state is synced at least to the moment
478+ // when request started being processed.
479+ // - `resourceVersionMatch` set to any other value or unset
480+ // Invalid error is returned.
481+ //
482+ // Defaults to true if `resourceVersion=""` or `resourceVersion="0"` (for backward
483+ // compatibility reasons) and to false otherwise.
484+ SendInitialEvents *bool
486485}
487486```
488487
@@ -658,9 +657,11 @@ We expect no non-infra related flakes in the last month as a GA graduation crite
658657
659658#### Alpha
660659
661- - The Feature is implemented behind ` ConsistentWatchList ` feature flag
660+ - The Feature is implemented behind ` WatchList ` feature flag
662661- Initial e2e tests completed and enabled
663662- Scalability/Performance tests confirm gains of this feature
663+ - Metrics are added to the kube-apiserver (see the [ monitoring-requirements] ( #monitoring-requirements ) section for more details)
664+ - Implement ` SendInitialEvents ` for ` watch ` requests in the etcd storage implementation
664665
665666<!--
666667**Note:** *Not required until targeted at a release.*
@@ -795,7 +796,7 @@ Pick one of these and delete the rest.
795796-->
796797
797798- [x] Feature gate (also fill in values in ` kep.yaml ` )
798- - Feature gate name: ConsistentWatchList
799+ - Feature gate name: WatchList
799800 - Components depending on the feature gate: the kube-apiserver
800801- [ ] Other
801802 - Describe the mechanism:
0 commit comments