diff --git a/test/integration/apiserver/BUILD b/test/integration/apiserver/BUILD index dc917cdf566..cf98748aae8 100644 --- a/test/integration/apiserver/BUILD +++ b/test/integration/apiserver/BUILD @@ -54,6 +54,7 @@ go_test( "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer/protobuf:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer/streaming:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/types:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/watch:go_default_library", "//staging/src/k8s.io/apiserver/pkg/features:go_default_library", "//staging/src/k8s.io/apiserver/pkg/util/feature:go_default_library", diff --git a/test/integration/apiserver/apiserver_test.go b/test/integration/apiserver/apiserver_test.go index a7edbc68b0d..961f971a573 100644 --- a/test/integration/apiserver/apiserver_test.go +++ b/test/integration/apiserver/apiserver_test.go @@ -49,6 +49,7 @@ import ( "k8s.io/apimachinery/pkg/runtime/serializer/protobuf" "k8s.io/apimachinery/pkg/runtime/serializer/streaming" "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/watch" "k8s.io/apiserver/pkg/features" utilfeature "k8s.io/apiserver/pkg/util/feature" @@ -548,6 +549,20 @@ func TestListResourceVersion0(t *testing.T) { } } + if tc.watchCacheEnabled { + // poll until the watch cache has the full list in memory + err := wait.PollImmediate(time.Second, wait.ForeverTestTimeout, func() (bool, error) { + list, err := clientSet.AppsV1().ReplicaSets(ns.Name).List(context.Background(), metav1.ListOptions{ResourceVersion: "0"}) + if err != nil { + return false, err + } + return len(list.Items) == 10, nil + }) + if err != nil { + t.Fatalf("error waiting for watch cache to observe the full list: %v", err) + } + } + pagerFn := func(opts metav1.ListOptions) (runtime.Object, error) { return rsClient.List(context.TODO(), opts) }