1
0
mirror of https://github.com/rancher/steve.git synced 2025-09-07 10:21:33 +00:00

[main] block UI until we receive requests from kube-apiserver (#668)

* block UI until we receive requests from kube-apiserver

* satisfy CI

* undo test code

---------

Co-authored-by: joshmeranda <joshua.meranda@gmail.com>
This commit is contained in:
Josh Meranda
2025-06-11 14:58:36 -04:00
committed by GitHub
parent 1157865ea3
commit c67ddf2de4
2 changed files with 43 additions and 2 deletions

View File

@@ -44,6 +44,8 @@ type ExtensionAPIServer interface {
http.Handler
// Run configures the API server and make the HTTP handler available
Run(ctx context.Context) error
// Registered returns a channel that will be close once the registration requests are received from the kube-apiserver.
Registered() <-chan struct{}
}
type Server struct {
@@ -253,7 +255,16 @@ func setup(ctx context.Context, server *Server) error {
onSchemasHandler,
sf)
apiServer, handler, err := handler.New(server.RESTConfig, sf, server.authMiddleware, server.next, server.router, server.extensionAPIServer)
next := http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
select {
case <-server.extensionAPIServer.Registered():
server.next.ServeHTTP(rw, req)
default:
http.NotFoundHandler().ServeHTTP(rw, req)
}
})
apiServer, handler, err := handler.New(server.RESTConfig, sf, server.authMiddleware, next, server.router, server.extensionAPIServer)
if err != nil {
return err
}