package cmd import ( "os" "github.com/pkg/errors" "k8s.io/client-go/kubernetes" "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" ) func newClient(configPath string) (*kubernetes.Clientset, error) { var config *rest.Config // Check if the kubeConfig file exists. if _, err := os.Stat(configPath); !os.IsNotExist(err) { // Get the kubeconfig from the filepath. config, err = clientcmd.BuildConfigFromFlags("", configPath) if err != nil { return nil, errors.Wrap(err, "error building client config") } } else { // Set to in-cluster config. config, err = rest.InClusterConfig() if err != nil { return nil, errors.Wrap(err, "error building in cluster config") } } if masterURI := os.Getenv("MASTER_URI"); masterURI != "" { config.Host = masterURI } return kubernetes.NewForConfig(config) }