Request for bookmarks in RetryWatcher

Kubernetes-commit: 7a65760f6e914e5421b443980831b2965c6954c7
This commit is contained in:
wojtekt 2020-05-06 19:37:57 +02:00 committed by Kubernetes Publisher
parent 573f9163af
commit c16c96a7f1

View File

@ -101,7 +101,8 @@ func (rw *RetryWatcher) send(event watch.Event) bool {
// If it is not done the second return value holds the time to wait before calling it again. // If it is not done the second return value holds the time to wait before calling it again.
func (rw *RetryWatcher) doReceive() (bool, time.Duration) { func (rw *RetryWatcher) doReceive() (bool, time.Duration) {
watcher, err := rw.watcherClient.Watch(metav1.ListOptions{ watcher, err := rw.watcherClient.Watch(metav1.ListOptions{
ResourceVersion: rw.lastResourceVersion, ResourceVersion: rw.lastResourceVersion,
AllowWatchBookmarks: true,
}) })
// We are very unlikely to hit EOF here since we are just establishing the call, // We are very unlikely to hit EOF here since we are just establishing the call,
// but it may happen that the apiserver is just shutting down (e.g. being restarted) // but it may happen that the apiserver is just shutting down (e.g. being restarted)
@ -174,10 +175,12 @@ func (rw *RetryWatcher) doReceive() (bool, time.Duration) {
return true, 0 return true, 0
} }
// All is fine; send the event and update lastResourceVersion // All is fine; send the non-bookmark events and update resource version.
ok = rw.send(event) if event.Type != watch.Bookmark {
if !ok { ok = rw.send(event)
return true, 0 if !ok {
return true, 0
}
} }
rw.lastResourceVersion = resourceVersion rw.lastResourceVersion = resourceVersion