@@ -18,6 +18,7 @@ package remote
18
18
19
19
import (
20
20
"context"
21
+ "time"
21
22
22
23
"github.com/pkg/errors"
23
24
restclient "k8s.io/client-go/rest"
@@ -26,12 +27,16 @@ import (
26
27
"sigs.k8s.io/controller-runtime/pkg/client"
27
28
)
28
29
30
+ const (
31
+ defaultClientTimeout = 10 * time .Second
32
+ )
33
+
29
34
// ClusterClientGetter returns a new remote client.
30
- type ClusterClientGetter func (ctx context.Context , c client.Client , cluster client.ObjectKey ) (client.Client , error )
35
+ type ClusterClientGetter func (ctx context.Context , sourceName string , c client.Client , cluster client.ObjectKey ) (client.Client , error )
31
36
32
37
// NewClusterClient returns a Client for interacting with a remote Cluster using the given scheme for encoding and decoding objects.
33
- func NewClusterClient (ctx context.Context , c client.Client , cluster client.ObjectKey ) (client.Client , error ) {
34
- restConfig , err := RESTConfig (ctx , c , cluster )
38
+ func NewClusterClient (ctx context.Context , sourceName string , c client.Client , cluster client.ObjectKey ) (client.Client , error ) {
39
+ restConfig , err := RESTConfig (ctx , sourceName , c , cluster )
35
40
if err != nil {
36
41
return nil , err
37
42
}
@@ -43,7 +48,7 @@ func NewClusterClient(ctx context.Context, c client.Client, cluster client.Objec
43
48
}
44
49
45
50
// RESTConfig returns a configuration instance to be used with a Kubernetes client.
46
- func RESTConfig (ctx context.Context , c client.Reader , cluster client.ObjectKey ) (* restclient.Config , error ) {
51
+ func RESTConfig (ctx context.Context , sourceName string , c client.Reader , cluster client.ObjectKey ) (* restclient.Config , error ) {
47
52
kubeConfig , err := kcfg .FromSecret (ctx , c , cluster )
48
53
if err != nil {
49
54
return nil , errors .Wrapf (err , "failed to retrieve kubeconfig secret for Cluster %s/%s" , cluster .Namespace , cluster .Name )
@@ -54,5 +59,8 @@ func RESTConfig(ctx context.Context, c client.Reader, cluster client.ObjectKey)
54
59
return nil , errors .Wrapf (err , "failed to create REST configuration for Cluster %s/%s" , cluster .Namespace , cluster .Name )
55
60
}
56
61
62
+ restConfig .UserAgent = DefaultClusterAPIUserAgent (sourceName )
63
+ restConfig .Timeout = defaultClientTimeout
64
+
57
65
return restConfig , nil
58
66
}
0 commit comments