package main import ( "k8s.io/client-go/dynamic" "k8s.io/client-go/kubernetes" "k8s.io/client-go/tools/clientcmd" "log" ) func GetKubernetesConnection() (*kubernetes.Clientset, *dynamic.DynamicClient, string) { loadingRules := clientcmd.NewDefaultClientConfigLoadingRules() configOverrides := &clientcmd.ConfigOverrides{} kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides) config, err := kubeConfig.ClientConfig() if err != nil { log.Panicln(err.Error()) } //log.Println("Using configuration:", config.String()) clientset, err := kubernetes.NewForConfig(config) if err != nil { panic(err) } dynamicClient, err := dynamic.NewForConfig(config) if err != nil { panic(err) } namespace, _, err := kubeConfig.Namespace() if err != nil { log.Panicf("Could not get namespace") } return clientset, dynamicClient, namespace }