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 }