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  }