argo-cd
60 строк · 1.3 Кб
1package util2
3import (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
14appclientset "github.com/argoproj/argo-cd/v2/pkg/client/clientset/versioned"15)
16
17type Kube struct {18Namespace string19Context string20}
21
22func getDefaultKubeConfigPath(homeDir string) string {23return path.Join(homeDir, ".kube", "config")24}
25
26func getKubeConfigPath() string {27var kubeConfigPath string28currentUser, _ := user.Current()29if currentUser != nil {30kubeConfigPath = os.Getenv("KUBECONFIG")31if kubeConfigPath == "" {32kubeConfigPath = getDefaultKubeConfigPath(currentUser.HomeDir)33}34}35return kubeConfigPath36}
37
38func ConnectToK8sArgoClientSet() *appclientset.Clientset {39config, err := clientcmd.BuildConfigFromFlags("", getKubeConfigPath())40if err != nil {41log.Panicln("failed to create Argocd K8s config")42}43return appclientset.NewForConfigOrDie(config)44}
45
46func ConnectToK8sConfig() *rest.Config {47config, err := clientcmd.BuildConfigFromFlags("", getKubeConfigPath())48if err != nil {49log.Panicln("failed to create K8s config")50}51return config52}
53
54func ConnectToK8sClientSet() *kubernetes.Clientset {55config, err := clientcmd.BuildConfigFromFlags("", getKubeConfigPath())56if err != nil {57log.Panicln("failed to create K8s config")58}59return kubernetes.NewForConfigOrDie(config)60}
61