Files
k8sgpt/pkg/kubernetes/kubernetes.go
2023-03-30 12:49:02 +01:00

37 lines
728 B
Go

package kubernetes
import (
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
type Client struct {
client *kubernetes.Clientset
}
func (c *Client) GetClient() *kubernetes.Clientset {
return c.client
}
func NewClient(kubecontext string, kubeconfig string) (*Client, error) {
config := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(
&clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeconfig},
&clientcmd.ConfigOverrides{
CurrentContext: kubecontext,
})
// create the clientset
c, err := config.ClientConfig()
if err != nil {
return nil, err
}
clientSet, err := kubernetes.NewForConfig(c)
if err != nil {
return nil, err
}
return &Client{
client: clientSet,
}, nil
}