1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/modules/kubernetes/client.go
Sean Smith c3115237a4 Catch and throw error when trying to get kube config
Handle error when building config to debug
2019-08-30 22:23:42 -04:00

41 lines
851 B
Go

package kubernetes
import (
"sync"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
var kubeClient *clientInstance
var clientOnce sync.Once
type clientInstance struct {
Client kubernetes.Interface
}
// getInstance returns a Kubernetes interface for a clientset
func (widget *Widget) getInstance() *clientInstance {
clientOnce.Do(func() {
if kubeClient == nil {
kubeClient = &clientInstance{
Client: widget.getKubeClient(),
}
}
})
return kubeClient
}
// getKubeClient returns a kubernetes clientset for the kubeconfig provided
func (widget *Widget) getKubeClient() kubernetes.Interface {
config, err := clientcmd.BuildConfigFromFlags("", widget.kubeconfig)
if err != nil {
panic(err.Error)
}
clientset, err := kubernetes.NewForConfig(config)
if err != nil {
panic(err.Error)
}
return clientset
}