@@ -20,10 +20,10 @@ import (
20
20
"crypto/tls"
21
21
"crypto/x509"
22
22
"fmt"
23
+ "net/url"
23
24
24
25
"helm.sh/helm/v3/pkg/getter"
25
26
corev1 "k8s.io/api/core/v1"
26
- "k8s.io/helm/pkg/urlutil"
27
27
)
28
28
29
29
// ClientOptionsFromSecret constructs a getter.Option slice for the given secret.
@@ -61,7 +61,7 @@ func BasicAuthFromSecret(secret corev1.Secret) (getter.Option, error) {
61
61
//
62
62
// Secrets with no certFile, keyFile, AND caFile are ignored, if only a
63
63
// certBytes OR keyBytes is defined it returns an error.
64
- func TLSClientConfigFromSecret (secret corev1.Secret , url string ) (* tls.Config , error ) {
64
+ func TLSClientConfigFromSecret (secret corev1.Secret , repositoryUrl string ) (* tls.Config , error ) {
65
65
certBytes , keyBytes , caBytes := secret .Data ["certFile" ], secret .Data ["keyFile" ], secret .Data ["caFile" ]
66
66
switch {
67
67
case len (certBytes )+ len (keyBytes )+ len (caBytes ) == 0 :
@@ -91,11 +91,12 @@ func TLSClientConfigFromSecret(secret corev1.Secret, url string) (*tls.Config, e
91
91
92
92
tlsConf .BuildNameToCertificate ()
93
93
94
- sni , err := urlutil . ExtractHostname ( url )
94
+ u , err := url . Parse ( repositoryUrl )
95
95
if err != nil {
96
- return nil , err
96
+ return nil , fmt . Errorf ( "cannot parse repository URL: %w" , err )
97
97
}
98
- tlsConf .ServerName = sni
98
+
99
+ tlsConf .ServerName = u .Hostname ()
99
100
100
101
return tlsConf , nil
101
102
}
0 commit comments