Skip to content

Commit d7bdfd8

Browse files
committed
restore original kubeconfig loading functionality
1 parent 2c4b82a commit d7bdfd8

File tree

1 file changed

+22
-5
lines changed

1 file changed

+22
-5
lines changed

pkg/k8s/client.go

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,43 @@ package k8s
22

33
import (
44
"fmt"
5+
"os"
6+
"path/filepath"
57

68
"k8s.io/client-go/dynamic"
79
"k8s.io/client-go/kubernetes"
810
"k8s.io/client-go/rest"
911
"k8s.io/client-go/tools/clientcmd"
12+
"k8s.io/client-go/util/homedir"
1013
)
1114

1215
func getConfig() (*rest.Config, error) {
16+
// Try in-cluster config first (for running inside K8s pods)
1317
config, err := rest.InClusterConfig()
1418
if err == nil {
1519
return config, nil
1620
}
1721

18-
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
19-
configOverrides := &clientcmd.ConfigOverrides{}
20-
kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides)
22+
// Check KUBECONFIG environment variable
23+
kubeconfigPath := os.Getenv("KUBECONFIG")
24+
if kubeconfigPath != "" {
25+
config, err = clientcmd.BuildConfigFromFlags("", kubeconfigPath)
26+
if err != nil {
27+
return nil, err
28+
}
29+
return config, nil
30+
}
2131

22-
config, err = kubeConfig.ClientConfig()
32+
// Fall back to default kubeconfig location
33+
home := homedir.HomeDir()
34+
if home == "" {
35+
return nil, fmt.Errorf("could not determine home directory")
36+
}
37+
38+
kubeconfigPath = filepath.Join(home, ".kube", "config")
39+
config, err = clientcmd.BuildConfigFromFlags("", kubeconfigPath)
2340
if err != nil {
24-
return nil, fmt.Errorf("failed to load kubeconfig: %w", err)
41+
return nil, err
2542
}
2643

2744
return config, nil

0 commit comments

Comments
 (0)