internal/k8s/kubeconfig.go (18 lines of code) (raw):
package k8s
import (
"fmt"
"os"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
)
// GetRESTConfig is a convenience method to avoid manually opening a file.
func GetRESTConfig(filename string) (*rest.Config, error) {
b, err := os.ReadFile(filename)
if err != nil {
return nil, fmt.Errorf("could not get read Kubeconfig file: %w", err)
}
cfg, err := clientcmd.RESTConfigFromKubeConfig(b)
if err != nil {
return nil, fmt.Errorf("could not get get Kubeconfig from file: %w", err)
}
return cfg, nil
}