mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-28 13:45:50 +00:00
Merge pull request #78543 from cheftako/kas-np3
Get network-proxy working with GCE.
This commit is contained in:
@@ -16,6 +16,7 @@ go_library(
|
||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/types:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/net:go_default_library",
|
||||
"//staging/src/k8s.io/apiserver/pkg/server:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/rest:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/transport:go_default_library",
|
||||
],
|
||||
|
@@ -18,6 +18,7 @@ package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"time"
|
||||
@@ -26,6 +27,7 @@ import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
utilnet "k8s.io/apimachinery/pkg/util/net"
|
||||
"k8s.io/apiserver/pkg/server"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/transport"
|
||||
nodeutil "k8s.io/kubernetes/pkg/util/node"
|
||||
@@ -56,6 +58,9 @@ type KubeletClientConfig struct {
|
||||
|
||||
// Dial is a custom dialer used for the client
|
||||
Dial utilnet.DialFunc
|
||||
|
||||
// Lookup will give us a dialer if the egress selector is configured for it
|
||||
Lookup server.EgressSelectorLookup
|
||||
}
|
||||
|
||||
// ConnectionInfo provides the information needed to connect to a kubelet
|
||||
@@ -79,9 +84,20 @@ func MakeTransport(config *KubeletClientConfig) (http.RoundTripper, error) {
|
||||
}
|
||||
|
||||
rt := http.DefaultTransport
|
||||
if config.Dial != nil || tlsConfig != nil {
|
||||
dialer := config.Dial
|
||||
if dialer == nil && config.Lookup != nil {
|
||||
// Assuming EgressSelector if SSHTunnel is not turned on.
|
||||
// We will not get a dialer if egress selector is disabled.
|
||||
networkContext := server.NetworkContext{EgressSelectionName: server.Cluster}
|
||||
dialer, err = config.Lookup(networkContext)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to get context dialer for 'cluster': got %v", err)
|
||||
}
|
||||
}
|
||||
if dialer != nil || tlsConfig != nil {
|
||||
// If SSH Tunnel is turned on
|
||||
rt = utilnet.SetOldTransportDefaults(&http.Transport{
|
||||
DialContext: config.Dial,
|
||||
DialContext: dialer,
|
||||
TLSClientConfig: tlsConfig,
|
||||
})
|
||||
}
|
||||
|
Reference in New Issue
Block a user