k3s/pkg/util/client.go
Brad Davidson 3c324335b2 Add utility functions for getting kubernetes client
Signed-off-by: Brad Davidson <brad.davidson@rancher.com>
2023-02-06 15:09:31 -08:00

30 lines
857 B
Go

package util
import (
"github.com/k3s-io/k3s/pkg/datadir"
clientset "k8s.io/client-go/kubernetes"
"k8s.io/client-go/tools/clientcmd"
)
// GetKubeConfigPath can be used to search for a kubeconfig in standard
// locations if an empty string is passed. If a non-empty string is passed,
// that path is used.
func GetKubeConfigPath(file string) string {
if file != "" {
return file
}
rules := clientcmd.NewDefaultClientConfigLoadingRules()
rules.Precedence = append([]string{datadir.GlobalConfig}, rules.Precedence...)
return rules.GetDefaultFilename()
}
// GetClientSet creates a Kubernetes client from the kubeconfig at the provided path.
func GetClientSet(file string) (clientset.Interface, error) {
restConfig, err := clientcmd.BuildConfigFromFlags("", file)
if err != nil {
return nil, err
}
return clientset.NewForConfig(restConfig)
}