Skip to content

Commit 82545e0

Browse files
committed
Update KEP-3157 to match the actual implementation and add more items for Alpha phase
1 parent 71066c7 commit 82545e0

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

keps/sig-api-machinery/3157-watch-list/README.md

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -458,31 +458,30 @@ Extend the `ListOptions` struct with the following field:
458458
type 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:

keps/sig-api-machinery/3157-watch-list/kep.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ milestone:
2929
# The following PRR answers are required at alpha release
3030
# List the feature gate name and the components for which it must be enabled
3131
feature-gates:
32-
- name: ConsistentWatchList
32+
- name: WatchList
3333
components:
3434
- kube-apiserver
3535
disable-supported: true

0 commit comments

Comments
 (0)