mirror of
https://github.com/k8sgpt-ai/k8sgpt.git
synced 2025-09-28 00:07:40 +00:00
37 lines
728 B
Go
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
|
|
}
|