Skip to content

Commit c3689b9

Browse files
authored
Merge pull request kubernetes#125509 from p0lyn0mial/upstream-improve-watchlist-reflector-e2e
e2e/apimachinery/watchlist: when comparing streamed data do not call the API directly instead use the added data.
2 parents e661603 + 6cc90d7 commit c3689b9

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

test/e2e/apimachinery/watchlist.go

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,11 @@ var _ = SIGDescribe("API Streaming (aka. WatchList)", framework.WithSerial(), fe
6464
)
6565

6666
ginkgo.By(fmt.Sprintf("Adding 5 secrets to %s namespace", f.Namespace.Name))
67+
var expectedSecrets []v1.Secret
6768
for i := 1; i <= 5; i++ {
68-
_, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(ctx, newSecret(fmt.Sprintf("secret-%d", i)), metav1.CreateOptions{})
69+
secret, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Create(ctx, newSecret(fmt.Sprintf("secret-%d", i)), metav1.CreateOptions{})
6970
framework.ExpectNoError(err)
71+
expectedSecrets = append(expectedSecrets, *secret)
7072
}
7173

7274
ginkgo.By("Starting the secret informer")
@@ -79,15 +81,17 @@ var _ = SIGDescribe("API Streaming (aka. WatchList)", framework.WithSerial(), fe
7981
framework.ExpectNoError(err, "Failed waiting for the secret informer in %s namespace to be synced", f.Namespace.Namespace)
8082

8183
ginkgo.By("Verifying if the secret informer was properly synchronised")
82-
verifyStore(ctx, f, secretInformer.GetStore())
84+
verifyStore(ctx, expectedSecrets, secretInformer.GetStore())
8385

8486
ginkgo.By("Modifying a secret and checking if the update was picked up by the secret informer")
8587
secret, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Get(ctx, "secret-1", metav1.GetOptions{})
8688
framework.ExpectNoError(err)
8789
secret.StringData = map[string]string{"foo": "bar"}
88-
_, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Update(ctx, secret, metav1.UpdateOptions{})
90+
secret, err = f.ClientSet.CoreV1().Secrets(f.Namespace.Name).Update(ctx, secret, metav1.UpdateOptions{})
8991
framework.ExpectNoError(err)
90-
verifyStore(ctx, f, secretInformer.GetStore())
92+
93+
expectedSecrets[0] = *secret
94+
verifyStore(ctx, expectedSecrets, secretInformer.GetStore())
9195
})
9296
ginkgo.It("should be requested by client-go's List method when WatchListClient is enabled", func(ctx context.Context) {
9397
featuregatetesting.SetFeatureGateDuringTest(ginkgo.GinkgoTB(), utilfeature.DefaultFeatureGate, featuregate.Feature(clientfeatures.WatchListClient), true)
@@ -139,13 +143,8 @@ func (f roundTripFunc) RoundTrip(req *http.Request) (*http.Response, error) {
139143
return f(req)
140144
}
141145

142-
func verifyStore(ctx context.Context, f *framework.Framework, store cache.Store) {
143-
ginkgo.By(fmt.Sprintf("Listing secrets directly from the server from %s namespace", f.Namespace.Name))
144-
expectedSecretsList, err := f.ClientSet.CoreV1().Secrets(f.Namespace.Name).List(ctx, metav1.ListOptions{})
145-
framework.ExpectNoError(err)
146-
expectedSecrets := expectedSecretsList.Items
147-
148-
err = wait.PollUntilContextTimeout(ctx, 100*time.Millisecond, 30*time.Second, true, func(ctx context.Context) (done bool, err error) {
146+
func verifyStore(ctx context.Context, expectedSecrets []v1.Secret, store cache.Store) {
147+
err := wait.PollUntilContextTimeout(ctx, 100*time.Millisecond, 30*time.Second, true, func(ctx context.Context) (done bool, err error) {
149148
ginkgo.By("Comparing secrets retrieved directly from the server with the ones that have been streamed to the secret informer")
150149
rawStreamedSecrets := store.List()
151150
streamedSecrets := make([]v1.Secret, 0, len(rawStreamedSecrets))

0 commit comments

Comments
 (0)