Skip to content

Commit 79b674d

Browse files
authored
Merge pull request kubernetes#84381 from Sh4d1/egress_selector_proxy_v2
Use network proxy for proxy subresources
2 parents 51e8caf + 6729bfd commit 79b674d

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

cmd/kube-apiserver/app/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ go_library(
4949
"//staging/src/k8s.io/apiserver/pkg/endpoints/openapi:go_default_library",
5050
"//staging/src/k8s.io/apiserver/pkg/features:go_default_library",
5151
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
52+
"//staging/src/k8s.io/apiserver/pkg/server/egressselector:go_default_library",
5253
"//staging/src/k8s.io/apiserver/pkg/server/filters:go_default_library",
5354
"//staging/src/k8s.io/apiserver/pkg/server/healthz:go_default_library",
5455
"//staging/src/k8s.io/apiserver/pkg/server/options:go_default_library",

cmd/kube-apiserver/app/server.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ import (
4545
openapinamer "k8s.io/apiserver/pkg/endpoints/openapi"
4646
genericfeatures "k8s.io/apiserver/pkg/features"
4747
genericapiserver "k8s.io/apiserver/pkg/server"
48+
"k8s.io/apiserver/pkg/server/egressselector"
4849
"k8s.io/apiserver/pkg/server/filters"
4950
serveroptions "k8s.io/apiserver/pkg/server/options"
5051
serverstorage "k8s.io/apiserver/pkg/server/storage"
@@ -381,6 +382,16 @@ func CreateKubeAPIServerConfig(
381382
if config.GenericConfig.EgressSelector != nil {
382383
// Use the config.GenericConfig.EgressSelector lookup to find the dialer to connect to the kubelet
383384
config.ExtraConfig.KubeletClientConfig.Lookup = config.GenericConfig.EgressSelector.Lookup
385+
386+
// Use the config.GenericConfig.EgressSelector lookup as the transport used by the "proxy" subresources.
387+
networkContext := egressselector.Cluster.AsNetworkContext()
388+
dialer, err := config.GenericConfig.EgressSelector.Lookup(networkContext)
389+
if err != nil {
390+
return nil, nil, nil, nil, err
391+
}
392+
c := proxyTransport.Clone()
393+
c.DialContext = dialer
394+
config.ExtraConfig.ProxyTransport = c
384395
}
385396

386397
if utilfeature.DefaultFeatureGate.Enabled(features.ServiceAccountIssuerDiscovery) {

0 commit comments

Comments
 (0)