diff --git a/env_gen.md b/env_gen.md index 3699e5db52..fc828f3832 100644 --- a/env_gen.md +++ b/env_gen.md @@ -164,6 +164,11 @@ | IN_APP_LOGGING_ENABLED | false | | | IS_INTERNAL_USE | false | | | JwtExpirationTime | 120 | | + | K8s_CLIENT_MAX_IDLE_CONNS_PER_HOST | 25 | | + | K8s_TCP_IDLE_CONN_TIMEOUT | 300 | | + | K8s_TCP_KEEPALIVE | 30 | | + | K8s_TCP_TIMEOUT | 30 | | + | K8s_TLS_HANDSHAKE_TIMEOUT | 10 | | | LENS_TIMEOUT | 0 | | | LENS_URL | http://lens-milandevtron-service:80 | | | LIMIT_CI_CPU | 0.5 | | @@ -240,6 +245,7 @@ | USE_BLOB_STORAGE_CONFIG_IN_CD_WORKFLOW | true | | | USE_BLOB_STORAGE_CONFIG_IN_CI_WORKFLOW | true | | | USE_BUILDX | false | | + | USE_CUSTOM_HTTP_TRANSPORT | false | | | USE_EXTERNAL_NODE | false | | | USE_GIT_CLI | false | | | USE_IMAGE_TAG_FROM_GIT_PROVIDER_FOR_TAG_BASED_BUILD | false | | diff --git a/go.mod b/go.mod index 7ef9a41c60..78d3ba79bb 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/davecgh/go-spew v1.1.1 github.com/deckarep/golang-set v1.8.0 github.com/devtron-labs/authenticator v0.4.35-0.20240607135426-c86e868ecee1 - github.com/devtron-labs/common-lib v0.0.20 + github.com/devtron-labs/common-lib v0.0.21-0.20240628105542-603b4f777e00 github.com/devtron-labs/go-bitbucket v0.9.60-beta github.com/devtron-labs/protos v0.0.3-0.20240527113333-08a3be5ec6c1 github.com/evanphx/json-patch v5.7.0+incompatible diff --git a/go.sum b/go.sum index e4df3ccc7c..f7f393930c 100644 --- a/go.sum +++ b/go.sum @@ -185,8 +185,8 @@ github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4 h1:YcpmyvADG github.com/denisenkom/go-mssqldb v0.0.0-20190707035753-2be1aa521ff4/go.mod h1:zAg7JM8CkOJ43xKXIj7eRO9kmWm/TW578qo+oDO6tuM= github.com/devtron-labs/authenticator v0.4.35-0.20240607135426-c86e868ecee1 h1:qdkpTAo2Kr0ZicZIVXfNwsGSshpc9OB9j9RzmKYdIwY= github.com/devtron-labs/authenticator v0.4.35-0.20240607135426-c86e868ecee1/go.mod h1:IkKPPEfgLCMR29he5yv2OCC6iM2R7K5/0AA3k8b9XNc= -github.com/devtron-labs/common-lib v0.0.20 h1:PH33VGmXZFx7U+rwXYnNXkB90sGbBTW0KHFonraJpG8= -github.com/devtron-labs/common-lib v0.0.20/go.mod h1:UZGPt1ep9Tnd9Ak2sibGSiLr7p3ijO2/JLT+h+pqBuU= +github.com/devtron-labs/common-lib v0.0.21-0.20240628105542-603b4f777e00 h1:xSZulEz0PaTA7tL4Es/uNFUmgjD6oAv8gxJV49GPWHk= +github.com/devtron-labs/common-lib v0.0.21-0.20240628105542-603b4f777e00/go.mod h1:UZGPt1ep9Tnd9Ak2sibGSiLr7p3ijO2/JLT+h+pqBuU= github.com/devtron-labs/go-bitbucket v0.9.60-beta h1:VEx1jvDgdtDPS6A1uUFoaEi0l1/oLhbr+90xOwr6sDU= github.com/devtron-labs/go-bitbucket v0.9.60-beta/go.mod h1:GnuiCesvh8xyHeMCb+twm8lBR/kQzJYSKL28ZfObp1Y= github.com/devtron-labs/protos v0.0.3-0.20240527113333-08a3be5ec6c1 h1:R6qVeFaayqstBSu4w+ipWQqJyMKDqBVV3a11qoA2IaM= diff --git a/vendor/github.com/devtron-labs/common-lib/utils/k8s/K8sUtil.go b/vendor/github.com/devtron-labs/common-lib/utils/k8s/K8sUtil.go index cfecc68a9b..6568a957b3 100644 --- a/vendor/github.com/devtron-labs/common-lib/utils/k8s/K8sUtil.go +++ b/vendor/github.com/devtron-labs/common-lib/utils/k8s/K8sUtil.go @@ -66,9 +66,10 @@ import ( ) type K8sServiceImpl struct { - logger *zap.SugaredLogger - runTimeConfig *client.RuntimeConfig - kubeconfig *string + logger *zap.SugaredLogger + runTimeConfig *client.RuntimeConfig + httpClientConfig *CustomK8sHttpTransportConfig + kubeconfig *string } type K8sService interface { @@ -135,6 +136,7 @@ type K8sService interface { GetResourceIf(restConfig *rest.Config, groupVersionKind schema.GroupVersionKind) (resourceIf dynamic.NamespaceableResourceInterface, namespaced bool, err error) FetchConnectionStatusForCluster(k8sClientSet *kubernetes.Clientset) error CreateK8sClientSet(restConfig *rest.Config) (*kubernetes.Clientset, error) + //CreateK8sClientSetWithCustomHttpTransport(restConfig *rest.Config) (*kubernetes.Clientset, error) } func NewK8sUtil(logger *zap.SugaredLogger, runTimeConfig *client.RuntimeConfig) *K8sServiceImpl { @@ -147,8 +149,9 @@ func NewK8sUtil(logger *zap.SugaredLogger, runTimeConfig *client.RuntimeConfig) kubeconfig = flag.String("kubeconfig-authenticator-xyz", filepath.Join(usr.HomeDir, ".kube", "config"), "(optional) absolute path to the kubeconfig file") } + httpClientConfig := NewCustomK8sHttpTransportConfig() flag.Parse() - return &K8sServiceImpl{logger: logger, runTimeConfig: runTimeConfig, kubeconfig: kubeconfig} + return &K8sServiceImpl{logger: logger, runTimeConfig: runTimeConfig, kubeconfig: kubeconfig, httpClientConfig: httpClientConfig} } func (impl K8sServiceImpl) GetRestConfigByCluster(clusterConfig *ClusterConfig) (*restclient.Config, error) { @@ -170,7 +173,11 @@ func (impl K8sServiceImpl) GetRestConfigByCluster(clusterConfig *ClusterConfig) restConfig.TLSClientConfig.CAData = []byte(clusterConfig.CAData) } } - return restConfig, nil + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding rest config with custom transport configurations", "err", err) + } + return restConfig, err } func (impl K8sServiceImpl) GetCoreV1Client(clusterConfig *ClusterConfig) (*v12.CoreV1Client, error) { @@ -189,6 +196,13 @@ func (impl K8sServiceImpl) GetClientForInCluster() (*v12.CoreV1Client, error) { impl.logger.Errorw("error in getting config", "err", err) return nil, err } + + config, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(config) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + // creates the clientset httpClient, err := OverrideK8sHttpClientWithTracer(config) if err != nil { @@ -209,6 +223,13 @@ func (impl K8sServiceImpl) GetK8sDiscoveryClient(clusterConfig *ClusterConfig) ( impl.logger.Errorw("error in getting rest config for default cluster", "err", err) return nil, err } + + cfg, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(cfg) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + httpClient, err := OverrideK8sHttpClientWithTracer(cfg) if err != nil { impl.logger.Errorw("error in getting http client for default cluster", "err", err) @@ -228,10 +249,13 @@ func (impl K8sServiceImpl) GetK8sDiscoveryClientInCluster() (*discovery.Discover impl.logger.Errorw("error in getting config", "err", err) return nil, err } + + config, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(config) if err != nil { - impl.logger.Errorw("error", "error", err) + impl.logger.Errorw("error in overriding reset config", "err", err) return nil, err } + httpClient, err := OverrideK8sHttpClientWithTracer(config) if err != nil { impl.logger.Errorw("error in getting http client for default cluster", "err", err) @@ -468,6 +492,7 @@ func (impl K8sServiceImpl) GetK8sInClusterConfigAndClients() (*rest.Config, *htt impl.logger.Errorw("error in getting rest config for in cluster", "err", err) return nil, nil, nil, err } + k8sHttpClient, k8sClientSet, err := impl.GetK8sConfigAndClientsByRestConfig(restConfig) if err != nil { impl.logger.Errorw("error in getting client set by rest config for in cluster", "err", err) @@ -482,6 +507,13 @@ func (impl K8sServiceImpl) GetK8sInClusterConfigAndDynamicClients() (*rest.Confi impl.logger.Errorw("error in getting rest config for in cluster", "err", err) return nil, nil, nil, err } + + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, nil, nil, err + } + k8sHttpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { impl.logger.Errorw("error in getting k8s http client set by rest config for in cluster", "err", err) @@ -510,6 +542,7 @@ func (impl K8sServiceImpl) GetK8sConfigAndClients(clusterConfig *ClusterConfig) impl.logger.Errorw("error in getting rest config by cluster", "err", err, "clusterName", clusterConfig.ClusterName) return nil, nil, nil, err } + k8sHttpClient, k8sClientSet, err := impl.GetK8sConfigAndClientsByRestConfig(restConfig) if err != nil { impl.logger.Errorw("error in getting client set by rest config", "err", err, "clusterName", clusterConfig.ClusterName) @@ -519,6 +552,13 @@ func (impl K8sServiceImpl) GetK8sConfigAndClients(clusterConfig *ClusterConfig) } func (impl K8sServiceImpl) GetK8sConfigAndClientsByRestConfig(restConfig *rest.Config) (*http.Client, *kubernetes.Clientset, error) { + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, nil, err + } + k8sHttpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { impl.logger.Errorw("error in getting k8s http client set by rest config", "err", err) @@ -948,6 +988,14 @@ func (impl K8sServiceImpl) GetCoreV1ClientInCluster() (*v12.CoreV1Client, error) } func (impl K8sServiceImpl) GetCoreV1ClientByRestConfig(restConfig *rest.Config) (*v12.CoreV1Client, error) { + + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + httpClientFor, err := rest.HTTPClientFor(restConfig) if err != nil { impl.logger.Error("error occurred while overriding k8s client", "reason", err) @@ -1084,7 +1132,14 @@ func UpdateNodeUnschedulableProperty(desiredUnschedulable bool, node *v1.Node, k node, err := k8sClientSet.CoreV1().Nodes().Update(context.Background(), node, metav1.UpdateOptions{}) return node, err } + func (impl K8sServiceImpl) CreateK8sClientSet(restConfig *rest.Config) (*kubernetes.Clientset, error) { + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } k8sHttpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { impl.logger.Errorw("service err, OverrideK8sHttpClientWithTracer", "err", err) @@ -1145,6 +1200,12 @@ func CheckIfValidLabel(labelKey string, labelValue string) error { } func (impl K8sServiceImpl) GetResourceIf(restConfig *rest.Config, groupVersionKind schema.GroupVersionKind) (resourceIf dynamic.NamespaceableResourceInterface, namespaced bool, err error) { + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, false, err + } + httpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { return nil, false, err @@ -1169,7 +1230,12 @@ func (impl K8sServiceImpl) GetResourceIf(restConfig *rest.Config, groupVersionKi } func (impl K8sServiceImpl) ListEvents(restConfig *rest.Config, namespace string, groupVersionKind schema.GroupVersionKind, ctx context.Context, name string) (*v1.EventList, error) { - + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } _, namespaced, err := impl.GetResourceIf(restConfig, groupVersionKind) if err != nil { impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name) @@ -1209,6 +1275,13 @@ func (impl K8sServiceImpl) ListEvents(restConfig *rest.Config, namespace string, } func (impl K8sServiceImpl) GetPodLogs(ctx context.Context, restConfig *rest.Config, name string, namespace string, sinceTime *metav1.Time, tailLines int, sinceSeconds int, follow bool, containerName string, isPrevContainerLogsEnabled bool) (io.ReadCloser, error) { + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + httpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { impl.logger.Errorw("error in getting pod logs", "err", err) @@ -1247,6 +1320,13 @@ func (impl K8sServiceImpl) GetPodLogs(ctx context.Context, restConfig *rest.Conf return stream, nil } func (impl K8sServiceImpl) GetResourceIfWithAcceptHeader(restConfig *rest.Config, groupVersionKind schema.GroupVersionKind, asTable bool) (resourceIf dynamic.NamespaceableResourceInterface, namespaced bool, err error) { + + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, false, err + } + httpClient, err := OverrideK8sHttpClientWithTracer(restConfig) if err != nil { impl.logger.Errorw("error in getting http client", "err", err) @@ -1300,6 +1380,13 @@ func ServerResourceForGroupVersionKind(discoveryClient discovery.DiscoveryInterf return nil, errors.NewNotFound(schema.GroupResource{Group: gvk.Group, Resource: gvk.Kind}, "") } func (impl K8sServiceImpl) GetResourceList(ctx context.Context, restConfig *rest.Config, gvk schema.GroupVersionKind, namespace string, asTable bool, listOptions *metav1.ListOptions) (*ResourceListResponse, bool, error) { + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, false, err + } + resourceIf, namespaced, err := impl.GetResourceIfWithAcceptHeader(restConfig, gvk, asTable) if err != nil { impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) @@ -1327,6 +1414,14 @@ func (impl K8sServiceImpl) GetResourceList(ctx context.Context, restConfig *rest } func (impl K8sServiceImpl) PatchResourceRequest(ctx context.Context, restConfig *rest.Config, pt types.PatchType, manifest string, name string, namespace string, gvk schema.GroupVersionKind) (*ManifestResponse, error) { + + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name, "namespace", namespace) @@ -1348,6 +1443,13 @@ func (impl K8sServiceImpl) PatchResourceRequest(ctx context.Context, restConfig // if verb is supplied empty, that means - return all func (impl K8sServiceImpl) GetApiResources(restConfig *rest.Config, includeOnlyVerb string) ([]*K8sApiResource, error) { + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + discoveryClient, err := discovery.NewDiscoveryClientForConfig(restConfig) if err != nil { impl.logger.Errorw("error in getting dynamic k8s client", "err", err) @@ -1416,6 +1518,14 @@ func (impl K8sServiceImpl) GetApiResources(restConfig *rest.Config, includeOnlyV return apiResources, nil } func (impl *K8sServiceImpl) CreateResources(ctx context.Context, restConfig *rest.Config, manifest string, gvk schema.GroupVersionKind, namespace string) (*ManifestResponse, error) { + + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) @@ -1440,6 +1550,14 @@ func (impl *K8sServiceImpl) CreateResources(ctx context.Context, restConfig *res return &ManifestResponse{Manifest: *resp}, nil } func (impl *K8sServiceImpl) GetResource(ctx context.Context, namespace string, name string, gvk schema.GroupVersionKind, restConfig *rest.Config) (*ManifestResponse, error) { + + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) @@ -1459,6 +1577,13 @@ func (impl *K8sServiceImpl) GetResource(ctx context.Context, namespace string, n } func (impl *K8sServiceImpl) UpdateResource(ctx context.Context, restConfig *rest.Config, gvk schema.GroupVersionKind, namespace string, k8sRequestPatch string) (*ManifestResponse, error) { + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "namespace", namespace) @@ -1484,6 +1609,14 @@ func (impl *K8sServiceImpl) UpdateResource(ctx context.Context, restConfig *rest } func (impl *K8sServiceImpl) DeleteResource(ctx context.Context, restConfig *rest.Config, gvk schema.GroupVersionKind, namespace string, name string, forceDelete bool) (*ManifestResponse, error) { + + var err error + restConfig, err = impl.httpClientConfig.OverrideConfigWithCustomTransport(restConfig) + if err != nil { + impl.logger.Errorw("error in overriding reset config", "err", err) + return nil, err + } + resourceIf, namespaced, err := impl.GetResourceIf(restConfig, gvk) if err != nil { impl.logger.Errorw("error in getting dynamic interface for resource", "err", err, "resource", name, "namespace", namespace) diff --git a/vendor/github.com/devtron-labs/common-lib/utils/k8s/bean.go b/vendor/github.com/devtron-labs/common-lib/utils/k8s/bean.go index 4d6da10889..85043c9cc1 100644 --- a/vendor/github.com/devtron-labs/common-lib/utils/k8s/bean.go +++ b/vendor/github.com/devtron-labs/common-lib/utils/k8s/bean.go @@ -18,6 +18,7 @@ package k8s import ( "fmt" + "github.com/caarlos0/env" "github.com/devtron-labs/common-lib/utils/k8sObjectsUtil" "github.com/devtron-labs/common-lib/utils/remoteConnection/bean" v1 "k8s.io/api/core/v1" @@ -25,6 +26,12 @@ import ( "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" + utilnet "k8s.io/apimachinery/pkg/util/net" + "k8s.io/client-go/rest" + "log" + "net" + "net/http" + "time" ) const ( @@ -164,3 +171,69 @@ func GetResourceKey(obj *unstructured.Unstructured) ResourceKey { gvk := obj.GroupVersionKind() return NewResourceKey(gvk.Group, gvk.Kind, obj.GetNamespace(), obj.GetName()) } + +type CustomK8sHttpTransportConfig struct { + UseCustomTransport bool `env:"USE_CUSTOM_HTTP_TRANSPORT" envDefault:"false"` + TimeOut int `env:"K8s_TCP_TIMEOUT" envDefault:"30"` + KeepAlive int `env:"K8s_TCP_KEEPALIVE" envDefault:"30"` + TLSHandshakeTimeout int `env:"K8s_TLS_HANDSHAKE_TIMEOUT" envDefault:"10"` + MaxIdleConnsPerHost int `env:"K8s_CLIENT_MAX_IDLE_CONNS_PER_HOST" envDefault:"25"` + IdleConnTimeout int `env:"K8s_TCP_IDLE_CONN_TIMEOUT" envDefault:"300"` +} + +func NewCustomK8sHttpTransportConfig() *CustomK8sHttpTransportConfig { + customK8sHttpTransportConfig := &CustomK8sHttpTransportConfig{} + err := env.Parse(customK8sHttpTransportConfig) + if err != nil { + log.Println("error in parsing custom k8s http configurations from env : ", "err : ", err) + } + return customK8sHttpTransportConfig +} + +// OverrideConfigWithCustomTransport +// overrides the given rest config with custom transport if UseCustomTransport is enabled. +// if the config already has a defined transport, we don't override it. +func (impl *CustomK8sHttpTransportConfig) OverrideConfigWithCustomTransport(config *rest.Config) (*rest.Config, error) { + if !impl.UseCustomTransport || config.Transport != nil { + return config, nil + } + + dial := (&net.Dialer{ + Timeout: time.Duration(impl.TimeOut) * time.Second, + KeepAlive: time.Duration(impl.KeepAlive) * time.Second, + }).DialContext + + // Get the TLS options for this client config + tlsConfig, err := rest.TLSConfigFor(config) + if err != nil { + return nil, err + } + + transport := utilnet.SetTransportDefaults(&http.Transport{ + Proxy: http.ProxyFromEnvironment, + TLSHandshakeTimeout: time.Duration(impl.TLSHandshakeTimeout) * time.Second, + TLSClientConfig: tlsConfig, + MaxIdleConns: impl.MaxIdleConnsPerHost, + MaxConnsPerHost: impl.MaxIdleConnsPerHost, + MaxIdleConnsPerHost: impl.MaxIdleConnsPerHost, + DialContext: dial, + DisableCompression: config.DisableCompression, + IdleConnTimeout: time.Duration(impl.IdleConnTimeout) * time.Second, + }) + + rt, err := rest.HTTPWrappersForConfig(config, transport) + if err != nil { + return nil, err + } + + config.Transport = rt + config.Timeout = time.Duration(impl.TimeOut) * time.Second + + // set default tls config and remove auth/exec provides since we use it in a custom transport. + // we already set tls config in the transport + config.TLSClientConfig = rest.TLSClientConfig{} + config.AuthProvider = nil + config.ExecProvider = nil + + return config, nil +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 439dd842c2..851ad510de 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -381,7 +381,7 @@ github.com/devtron-labs/authenticator/jwt github.com/devtron-labs/authenticator/middleware github.com/devtron-labs/authenticator/oidc github.com/devtron-labs/authenticator/password -# github.com/devtron-labs/common-lib v0.0.20 +# github.com/devtron-labs/common-lib v0.0.21-0.20240628105542-603b4f777e00 ## explicit; go 1.21 github.com/devtron-labs/common-lib/blob-storage github.com/devtron-labs/common-lib/cloud-provider-identifier