in cmd/exporter/app/options/options.go [100:147]
func getClientConfig(config componentbaseconfig.ClientConnectionConfiguration, serverAddrOverride, timeout string) (*restclient.Config, error) {
// This creates a client, first loading any specified kubeconfig
// file, and then overriding the serverAddr flag, if non-empty.
var (
restConfig *restclient.Config
err error
)
if len(config.Kubeconfig) == 0 && len(serverAddrOverride) == 0 {
klog.Info("Neither kubeconfig file nor control plane URL was specified. Falling back to in-cluster config.")
restConfig, err = restclient.InClusterConfig()
} else {
// This creates a client, first loading any specified kubeconfig
// file, and then overriding the serverAddr flag, if non-empty.
restConfig, err = clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
&clientcmd.ClientConfigLoadingRules{ExplicitPath: config.Kubeconfig},
&clientcmd.ConfigOverrides{ClusterInfo: clientcmdapi.Cluster{Server: serverAddrOverride}}).ClientConfig()
}
if err != nil {
return nil, err
}
// Allow Syncer CLI Flag timeout override
if len(timeout) == 0 {
if restConfig.Timeout == 0 {
restConfig.Timeout = 30 * time.Second
}
} else {
timeoutDuration, err := time.ParseDuration(timeout)
if err != nil {
return nil, err
}
restConfig.Timeout = timeoutDuration
}
restConfig.ContentConfig.ContentType = config.AcceptContentTypes
restConfig.QPS = config.QPS
if restConfig.QPS == 0 {
restConfig.QPS = 100
}
restConfig.Burst = int(config.Burst)
if restConfig.Burst == 0 {
restConfig.Burst = 200
}
return restConfig, nil
}