From 000d703a42488557f0dd91aa26a874ead35ea4ac Mon Sep 17 00:00:00 2001 From: Joaquim Moreno Date: Tue, 14 Mar 2023 19:29:07 +0100 Subject: [PATCH] server/config: override BasicLongRunningRequestCheck to add tunnel subresource --- pkg/server/config.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pkg/server/config.go b/pkg/server/config.go index e8bce0436451..a8ccd0ddb3b6 100644 --- a/pkg/server/config.go +++ b/pkg/server/config.go @@ -41,6 +41,7 @@ import ( "k8s.io/apiserver/pkg/informerfactoryhack" "k8s.io/apiserver/pkg/quota/v1/generic" genericapiserver "k8s.io/apiserver/pkg/server" + genericfilters "k8s.io/apiserver/pkg/server/filters" serverstorage "k8s.io/apiserver/pkg/server/storage" "k8s.io/client-go/rest" "k8s.io/client-go/tools/cache" @@ -360,6 +361,13 @@ func NewConfig(opts kcpserveroptions.CompletedOptions) (*Config, error) { // Make sure to set our RequestInfoResolver that is capable of populating a RequestInfo even for /services/... URLs. c.GenericConfig.RequestInfoResolver = requestinfo.NewKCPRequestInfoResolver() + if kcpfeatures.DefaultFeatureGate.Enabled(kcpfeatures.SyncerTunnel) { + c.GenericConfig.LongRunningFunc = genericfilters.BasicLongRunningRequestCheck( + sets.NewString("watch", "proxy"), + sets.NewString("attach", "exec", "proxy", "log", "portforward", "tunnel"), + ) + } + // preHandlerChainMux is called before the actual handler chain. Note that BuildHandlerChainFunc below // is called multiple times, but only one of the handler chain will actually be used. Hence, we wrap it // to give handlers below one mux.Handle func to call.