Skip to content

Commit 2ee8968

Browse files
chore: port forward tls client server name (#296)
* chore-port-forward-debug * review comments resolved
1 parent b0e9cef commit 2ee8968

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

common-lib/utils/k8s/bean.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"errors"
2121
"fmt"
2222
"github.com/caarlos0/env"
23+
"github.com/devtron-labs/common-lib/utils"
2324
"github.com/devtron-labs/common-lib/utils/k8sObjectsUtil"
2425
"github.com/devtron-labs/common-lib/utils/remoteConnection/bean"
2526
v1 "k8s.io/api/core/v1"
@@ -43,10 +44,16 @@ type ClusterConfig struct {
4344
RemoteConnectionConfig *bean.RemoteConnectionConfigBean
4445
}
4546

47+
var logger, _ = utils.NewSugardLogger()
48+
4649
func (clusterConfig *ClusterConfig) PopulateTlsConfigurationsInto(restConfig *rest.Config) {
47-
restConfig.TLSClientConfig = rest.TLSClientConfig{Insecure: clusterConfig.InsecureSkipTLSVerify}
50+
serverName, err := GetServerNameFromServerUrl(clusterConfig.Host)
51+
if err != nil {
52+
// making it non-blocking to avoid blocking the flow
53+
logger.Errorw("Error parsing server URL:", "err", err, "clusterConfig.Host", clusterConfig.Host)
54+
}
55+
restConfig.TLSClientConfig = rest.TLSClientConfig{Insecure: clusterConfig.InsecureSkipTLSVerify, ServerName: serverName}
4856
if clusterConfig.InsecureSkipTLSVerify == false {
49-
restConfig.TLSClientConfig.ServerName = restConfig.ServerName
5057
restConfig.TLSClientConfig.KeyData = []byte(clusterConfig.KeyData)
5158
restConfig.TLSClientConfig.CertData = []byte(clusterConfig.CertData)
5259
restConfig.TLSClientConfig.CAData = []byte(clusterConfig.CAData)

common-lib/utils/k8s/helper.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,9 @@ import (
3636
"k8s.io/client-go/discovery"
3737
"k8s.io/client-go/kubernetes"
3838
"k8s.io/client-go/rest"
39+
"net"
3940
"net/http"
41+
"net/url"
4042
"strings"
4143
)
4244

@@ -226,3 +228,19 @@ func OverrideK8sHttpClientWithTracer(restConfig *rest.Config) (*http.Client, err
226228
httpClientFor.Transport = otelhttp.NewTransport(httpClientFor.Transport)
227229
return httpClientFor, nil
228230
}
231+
232+
func GetServerNameFromServerUrl(serverURL string) (string, error) {
233+
u, err := url.Parse(serverURL)
234+
if err != nil {
235+
return "", err
236+
}
237+
238+
host := u.Host
239+
if strings.Contains(host, ":") {
240+
host, _, err = net.SplitHostPort(u.Host)
241+
if err != nil {
242+
return "", err
243+
}
244+
}
245+
return host, nil
246+
}

0 commit comments

Comments
 (0)