argo-cd

Форк
0
60 строк · 1.3 Кб
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/v2/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
}
61

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.