github.com/argoproj/argo-cd/v3@v3.2.1/hack/gen-resources/util/kube.go (about) 1 package util 2 3 import ( 4 "log" 5 "os" 6 "os/user" 7 "path" 8 9 "k8s.io/client-go/rest" 10 11 "k8s.io/client-go/kubernetes" 12 "k8s.io/client-go/tools/clientcmd" 13 14 appclientset "github.com/argoproj/argo-cd/v3/pkg/client/clientset/versioned" 15 ) 16 17 type Kube struct { 18 Namespace string 19 Context string 20 } 21 22 func getDefaultKubeConfigPath(homeDir string) string { 23 return path.Join(homeDir, ".kube", "config") 24 } 25 26 func getKubeConfigPath() string { 27 var kubeConfigPath string 28 currentUser, _ := user.Current() 29 if currentUser != nil { 30 kubeConfigPath = os.Getenv("KUBECONFIG") 31 if kubeConfigPath == "" { 32 kubeConfigPath = getDefaultKubeConfigPath(currentUser.HomeDir) 33 } 34 } 35 return kubeConfigPath 36 } 37 38 func ConnectToK8sArgoClientSet() *appclientset.Clientset { 39 config, err := clientcmd.BuildConfigFromFlags("", getKubeConfigPath()) 40 if err != nil { 41 log.Panicln("failed to create Argocd K8s config") 42 } 43 return appclientset.NewForConfigOrDie(config) 44 } 45 46 func ConnectToK8sConfig() *rest.Config { 47 config, err := clientcmd.BuildConfigFromFlags("", getKubeConfigPath()) 48 if err != nil { 49 log.Panicln("failed to create K8s config") 50 } 51 return config 52 } 53 54 func ConnectToK8sClientSet() *kubernetes.Clientset { 55 config, err := clientcmd.BuildConfigFromFlags("", getKubeConfigPath()) 56 if err != nil { 57 log.Panicln("failed to create K8s config") 58 } 59 return kubernetes.NewForConfigOrDie(config) 60 }