Skip to content

Commit c0a8785

Browse files
authored
Fix flake SDS test (#11875)
Signed-off-by: Yossi Mesika <[email protected]>
1 parent 03e75e5 commit c0a8785

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

internal/sds/pkg/run/run_e2e_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
envoy_service_secret_v3 "github.com/envoyproxy/go-control-plane/envoy/service/secret/v3"
1212
"github.com/spf13/afero"
1313
"google.golang.org/grpc"
14+
"google.golang.org/grpc/credentials/insecure"
1415

1516
"github.com/kgateway-dev/kgateway/v2/internal/sds/pkg/run"
1617
"github.com/kgateway-dev/kgateway/v2/internal/sds/pkg/server"
@@ -112,8 +113,8 @@ var _ = Describe("SDS Server E2E Test", Serial, func() {
112113
// Check that we get a good response
113114
Eventually(func() bool {
114115
_, err = client.FetchSecrets(ctx, &envoy_service_discovery_v3.DiscoveryRequest{})
115-
return err != nil
116-
}, "5s", "1s").Should(BeTrue())
116+
return err == nil
117+
}, "30s", "1s").Should(BeTrue())
117118

118119
// Cancel the context in order to stop the gRPC server
119120
cancel()
@@ -122,7 +123,7 @@ var _ = Describe("SDS Server E2E Test", Serial, func() {
122123
Eventually(func() bool {
123124
_, err = client.FetchSecrets(ctx, &envoy_service_discovery_v3.DiscoveryRequest{})
124125
return err != nil
125-
}, "5s", "1s").Should(BeTrue())
126+
}, "30s", "1s").Should(BeTrue())
126127

127128
})
128129

@@ -143,7 +144,7 @@ var _ = Describe("SDS Server E2E Test", Serial, func() {
143144

144145
// Connect with the server
145146
var conn *grpc.ClientConn
146-
conn, err = grpc.Dial(testServerAddress, grpc.WithInsecure())
147+
conn, err = grpc.NewClient(testServerAddress, grpc.WithTransportCredentials(insecure.NewCredentials()))
147148
Expect(err).NotTo(HaveOccurred())
148149
defer conn.Close()
149150
client := envoy_service_secret_v3.NewSecretDiscoveryServiceClient(conn)

internal/sds/pkg/server/server.go

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,18 +79,32 @@ func (s *Server) Run(ctx context.Context) (<-chan struct{}, error) {
7979
return nil, err
8080
}
8181
slog.Info("sds server listening", "address", s.address)
82+
83+
// Create channels for synchronization
84+
serveStarted := make(chan struct{})
85+
serverStopped := make(chan struct{})
86+
87+
// Start the server in a goroutine
8288
go func() {
89+
// Signal that Serve is about to be called
90+
close(serveStarted)
8391
if err = s.grpcServer.Serve(lis); err != nil {
8492
log.Fatalf("fatal error in gRPC server: address=%s error=%v", s.address, err)
8593
}
8694
}()
87-
serverStopped := make(chan struct{})
95+
96+
// Wait for Serve to start before setting up shutdown handler
8897
go func() {
98+
// Wait for Serve to be called
99+
<-serveStarted
100+
101+
// Now wait for context cancellation
89102
<-ctx.Done()
90103
slog.Info("stopping sds server", "address", s.address)
91104
s.grpcServer.GracefulStop()
92105
serverStopped <- struct{}{}
93106
}()
107+
94108
return serverStopped, nil
95109
}
96110

0 commit comments

Comments
 (0)