policy-generator/cmd/policygen/kubernetes.go
Erik Brakkee 2373f428bb now processing relabeling rules for prometheus
obtaining all required monitoring endpoints now seems to work.
2025-01-29 21:08:42 +01:00

37 lines
900 B
Go

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
}