From 95ade66cc2faaef5bc96f5a4389dd726a9bc9c5a Mon Sep 17 00:00:00 2001 From: Monis Khan Date: Fri, 6 Jan 2023 15:31:33 -0500 Subject: [PATCH] kms gRPC test: wait until server is healthy Signed-off-by: Monis Khan --- staging/publishing/rules.yaml | 3 +++ staging/src/k8s.io/kms/go.mod | 8 ++++++-- staging/src/k8s.io/kms/go.sum | 3 ++- .../src/k8s.io/kms/service/grpc_service_test.go | 16 ++++++++++++++++ 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/staging/publishing/rules.yaml b/staging/publishing/rules.yaml index a12f4e754cc..7611901ea91 100644 --- a/staging/publishing/rules.yaml +++ b/staging/publishing/rules.yaml @@ -353,6 +353,9 @@ rules: source: branch: master dir: staging/src/k8s.io/kms + dependencies: + - repository: apimachinery + branch: master - name: release-1.26 go: 1.19.4 source: diff --git a/staging/src/k8s.io/kms/go.mod b/staging/src/k8s.io/kms/go.mod index eb12f3d3995..85bd34f0c5d 100644 --- a/staging/src/k8s.io/kms/go.mod +++ b/staging/src/k8s.io/kms/go.mod @@ -7,18 +7,22 @@ go 1.19 require ( github.com/gogo/protobuf v1.3.2 google.golang.org/grpc v1.51.0 + k8s.io/apimachinery v0.0.0 k8s.io/klog/v2 v2.80.1 ) require ( github.com/go-logr/logr v1.2.3 // indirect github.com/golang/protobuf v1.5.2 // indirect - github.com/google/go-cmp v0.5.9 // indirect golang.org/x/net v0.4.0 // indirect golang.org/x/sys v0.3.0 // indirect golang.org/x/text v0.5.0 // indirect google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect google.golang.org/protobuf v1.28.1 // indirect + k8s.io/utils v0.0.0-20221107191617-1a15be271d1d // indirect ) -replace k8s.io/kms => ../kms +replace ( + k8s.io/apimachinery => ../apimachinery + k8s.io/kms => ../kms +) diff --git a/staging/src/k8s.io/kms/go.sum b/staging/src/k8s.io/kms/go.sum index 6cf88d8cafc..296172d9fde 100644 --- a/staging/src/k8s.io/kms/go.sum +++ b/staging/src/k8s.io/kms/go.sum @@ -48,7 +48,6 @@ github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= @@ -161,3 +160,5 @@ honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= k8s.io/klog/v2 v2.80.1 h1:atnLQ121W371wYYFawwYx1aEY2eUfs4l3J72wtgAwV4= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/utils v0.0.0-20221107191617-1a15be271d1d h1:0Smp/HP1OH4Rvhe+4B8nWGERtlqAGSftbSbbmm45oFs= +k8s.io/utils v0.0.0-20221107191617-1a15be271d1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= diff --git a/staging/src/k8s.io/kms/service/grpc_service_test.go b/staging/src/k8s.io/kms/service/grpc_service_test.go index 6e119a864b2..e6bcb19c201 100644 --- a/staging/src/k8s.io/kms/service/grpc_service_test.go +++ b/staging/src/k8s.io/kms/service/grpc_service_test.go @@ -31,6 +31,7 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" + "k8s.io/apimachinery/pkg/util/wait" kmsapi "k8s.io/kms/apis/v2alpha1" ) @@ -62,6 +63,21 @@ func TestGRPCService(t *testing.T) { client := newClient(t, address) + // make sure the gRPC server is up before running tests + if err := wait.PollImmediateUntilWithContext(ctx, time.Second, func(ctx context.Context) (bool, error) { + ctx, cancel := context.WithTimeout(ctx, 3*time.Second) + defer cancel() + + _, err := client.Status(ctx, &kmsapi.StatusRequest{}) + if err != nil { + t.Logf("failed to get kms status: %v", err) + } + + return err == nil, nil + }); err != nil { + t.Fatal(err) + } + t.Run("should be able to encrypt and decrypt through unix domain sockets", func(t *testing.T) { t.Parallel()