mirror of
https://github.com/k8sgpt-ai/k8sgpt.git
synced 2025-05-11 01:26:35 +00:00
36 lines
713 B
Go
36 lines
713 B
Go
package client
|
|
|
|
import (
|
|
"k8s.io/client-go/kubernetes"
|
|
"k8s.io/client-go/rest"
|
|
"k8s.io/client-go/tools/clientcmd"
|
|
)
|
|
|
|
type Client struct {
|
|
client *kubernetes.Clientset
|
|
}
|
|
|
|
func (c *Client) GetClient() *kubernetes.Clientset {
|
|
return c.client
|
|
}
|
|
|
|
func NewClient(masterURL string, kubeconfig string) (*Client, error) {
|
|
|
|
config, err := rest.InClusterConfig()
|
|
if err != nil {
|
|
kubeconfig :=
|
|
clientcmd.NewDefaultClientConfigLoadingRules().GetDefaultFilename()
|
|
config, err = clientcmd.BuildConfigFromFlags(masterURL, kubeconfig)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
}
|
|
clientSet, err := kubernetes.NewForConfig(config)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &Client{
|
|
client: clientSet,
|
|
}, nil
|
|
}
|