From 808867ba2f98d02078473cf3241471e365d6e697 Mon Sep 17 00:00:00 2001 From: knight42 Date: Fri, 18 Sep 2020 16:47:22 +0800 Subject: [PATCH] test(kubelet): deflake TestRotateShutsDownConnections Signed-off-by: knight42 --- pkg/kubelet/certificate/BUILD | 1 + pkg/kubelet/certificate/transport_test.go | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pkg/kubelet/certificate/BUILD b/pkg/kubelet/certificate/BUILD index cf75b4e7f5a..24c6489761e 100644 --- a/pkg/kubelet/certificate/BUILD +++ b/pkg/kubelet/certificate/BUILD @@ -42,6 +42,7 @@ go_test( "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", "//staging/src/k8s.io/client-go/kubernetes/typed/certificates/v1beta1:go_default_library", "//staging/src/k8s.io/client-go/rest:go_default_library", ], diff --git a/pkg/kubelet/certificate/transport_test.go b/pkg/kubelet/certificate/transport_test.go index 331dda94359..92381d47ed9 100644 --- a/pkg/kubelet/certificate/transport_test.go +++ b/pkg/kubelet/certificate/transport_test.go @@ -30,6 +30,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" + "k8s.io/apimachinery/pkg/util/wait" certificatesclient "k8s.io/client-go/kubernetes/typed/certificates/v1beta1" "k8s.io/client-go/rest" ) @@ -208,14 +209,16 @@ func TestRotateShutsDownConnections(t *testing.T) { // its connections to the server. m.setCurrent(client2CertData.certificate) - for i := 0; i < 5; i++ { - time.Sleep(time.Millisecond * 10) + err = wait.PollImmediate(time.Millisecond*50, wait.ForeverTestTimeout, func() (done bool, err error) { client.Get().Do(context.TODO()) if firstCertSerial.Cmp(lastSerialNumber()) != 0 { // The certificate changed! - return + return true, nil } + t.Logf("Certificate not changed, will retry.") + return false, nil + }) + if err != nil { + t.Fatal("certificate rotated but client never reconnected with new cert") } - - t.Errorf("certificate rotated but client never reconnected with new cert") }