forked from GauntletWizard/targetgroupcontroller
-
Notifications
You must be signed in to change notification settings - Fork 0
/
k8sclient.go
32 lines (27 loc) · 941 Bytes
/
k8sclient.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package main
import (
"log"
"os"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
//"net/http"
)
// NewClient is a basic wrapper for the boilerplate of creating a kubernetes client.
// It's basically just the example client.
func NewK8sClient() (client *kubernetes.Clientset, namespace string) {
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
loadingRules.DefaultClientConfig = &clientcmd.DefaultClientConfig
overrides := clientcmd.ConfigOverrides{}
clientConfig := clientcmd.NewInteractiveDeferredLoadingClientConfig(loadingRules, &overrides, os.Stdin)
conf, err := clientConfig.ClientConfig()
if err != nil {
log.Panic("Failed to initialize clientConfig, ", err)
}
ns, _, err := clientConfig.Namespace()
if err != nil {
log.Panic("Failed to initialize clientConfig Namespace, ", err)
}
client = kubernetes.NewForConfigOrDie(conf)
log.Println("Client started")
return client, ns
}