hotfix: fix create temp kubeconfig but name container path separator (#599)

This commit is contained in:
naison
2025-05-12 16:28:15 +08:00
committed by GitHub
parent a1117dee62
commit facd6bdb3d

View File

@@ -132,7 +132,7 @@ func GetAPIServerFromKubeConfigBytes(kubeconfigBytes []byte) *net.IPNet {
func ConvertToTempKubeconfigFile(kubeconfigBytes []byte) (string, error) {
pattern := "*.kubeconfig"
cluster, ns, _ := GetCluster(kubeconfigBytes)
if cluster != "" {
if cluster != "" && !containerPathSeparator(cluster) && !containerPathSeparator(ns) {
pattern = fmt.Sprintf("%s_%s_%s", cluster, ns, pattern)
pattern = strings.ReplaceAll(pattern, string(os.PathSeparator), "-")
}
@@ -155,6 +155,15 @@ func ConvertToTempKubeconfigFile(kubeconfigBytes []byte) (string, error) {
return temp.Name(), nil
}
func containerPathSeparator(pattern string) bool {
for i := 0; i < len(pattern); i++ {
if os.IsPathSeparator(pattern[i]) {
return true
}
}
return false
}
func GetCluster(kubeConfigBytes []byte) (cluster string, ns string, err error) {
var clientConfig clientcmd.ClientConfig
clientConfig, err = clientcmd.NewClientConfigFromBytes(kubeConfigBytes)