@@ -5,18 +5,20 @@ import (
5
5
"net"
6
6
"net/url"
7
7
"strconv"
8
+ "time"
8
9
9
10
"github.com/oam-dev/cluster-gateway/pkg/config"
10
11
"github.com/pkg/errors"
11
12
"google.golang.org/grpc"
12
13
grpccredentials "google.golang.org/grpc/credentials"
14
+ "google.golang.org/grpc/keepalive"
13
15
k8snet "k8s.io/apimachinery/pkg/util/net"
14
16
restclient "k8s.io/client-go/rest"
15
17
konnectivity "sigs.k8s.io/apiserver-network-proxy/konnectivity-client/pkg/client"
16
18
"sigs.k8s.io/apiserver-network-proxy/pkg/util"
17
19
)
18
20
19
- var DialerGetter = func () (k8snet.DialFunc , error ) {
21
+ var DialerGetter = func (ctx context. Context ) (k8snet.DialFunc , error ) {
20
22
tlsCfg , err := util .GetClientTLSConfig (
21
23
config .ClusterProxyCAFile ,
22
24
config .ClusterProxyCertFile ,
@@ -26,18 +28,21 @@ var DialerGetter = func() (k8snet.DialFunc, error) {
26
28
if err != nil {
27
29
return nil , err
28
30
}
29
- tunnel , err := konnectivity .CreateSingleUseGrpcTunnel (
30
- context . TODO () ,
31
+ dialerTunnel , err := konnectivity .CreateSingleUseGrpcTunnel (
32
+ ctx ,
31
33
net .JoinHostPort (config .ClusterProxyHost , strconv .Itoa (config .ClusterProxyPort )),
32
34
grpc .WithTransportCredentials (grpccredentials .NewTLS (tlsCfg )),
35
+ grpc .WithKeepaliveParams (keepalive.ClientParameters {
36
+ Time : time .Second * 5 ,
37
+ }),
33
38
)
34
39
if err != nil {
35
40
return nil , err
36
41
}
37
- return tunnel .DialContext , nil
42
+ return dialerTunnel .DialContext , nil
38
43
}
39
44
40
- func NewConfigFromCluster (c * ClusterGateway ) (* restclient.Config , error ) {
45
+ func NewConfigFromCluster (ctx context. Context , c * ClusterGateway ) (* restclient.Config , error ) {
41
46
cfg := & restclient.Config {}
42
47
// setting up endpoint
43
48
switch c .Spec .Access .Endpoint .Type {
@@ -69,7 +74,7 @@ func NewConfigFromCluster(c *ClusterGateway) (*restclient.Config, error) {
69
74
cfg .Host = c .Name // the same as the cluster name
70
75
cfg .Insecure = true
71
76
cfg .CAData = nil
72
- dail , err := DialerGetter ()
77
+ dail , err := DialerGetter (ctx )
73
78
if err != nil {
74
79
return nil , err
75
80
}
0 commit comments