mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-01-08 14:21:18 +00:00
Add global kubecontext CLI flag
Signed-off-by: Blake <blake.barnett@postmates.com>
This commit is contained in:
@@ -30,10 +30,12 @@ import (
|
||||
|
||||
// Config returns a *rest.Config, using either the kubeconfig (if specified) or an in-cluster
|
||||
// configuration.
|
||||
func Config(kubeconfig, baseName string) (*rest.Config, error) {
|
||||
loader := clientcmd.NewDefaultClientConfigLoadingRules()
|
||||
loader.ExplicitPath = kubeconfig
|
||||
clientConfig, err := clientcmd.BuildConfigFromKubeconfigGetter("", loader.Load)
|
||||
func Config(kubeconfig, kubecontext, baseName string) (*rest.Config, error) {
|
||||
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
|
||||
loadingRules.ExplicitPath = kubeconfig
|
||||
configOverrides := &clientcmd.ConfigOverrides{CurrentContext: kubecontext}
|
||||
kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides)
|
||||
clientConfig, err := kubeConfig.ClientConfig()
|
||||
if err != nil {
|
||||
return nil, errors.WithStack(err)
|
||||
}
|
||||
|
||||
@@ -43,10 +43,11 @@ type Factory interface {
|
||||
}
|
||||
|
||||
type factory struct {
|
||||
flags *pflag.FlagSet
|
||||
kubeconfig string
|
||||
baseName string
|
||||
namespace string
|
||||
flags *pflag.FlagSet
|
||||
kubeconfig string
|
||||
kubecontext string
|
||||
baseName string
|
||||
namespace string
|
||||
}
|
||||
|
||||
// NewFactory returns a Factory.
|
||||
@@ -68,6 +69,7 @@ func NewFactory(baseName string) Factory {
|
||||
|
||||
f.flags.StringVar(&f.kubeconfig, "kubeconfig", "", "Path to the kubeconfig file to use to talk to the Kubernetes apiserver. If unset, try the environment variable KUBECONFIG, as well as in-cluster configuration")
|
||||
f.flags.StringVarP(&f.namespace, "namespace", "n", f.namespace, "The namespace in which Ark should operate")
|
||||
f.flags.StringVar(&f.kubecontext, "kubecontext", "", "The context to use to talk to the Kubernetes apiserver. If unset defaults to whatever your current-context is (kubectl config current-context)")
|
||||
|
||||
return f
|
||||
}
|
||||
@@ -77,7 +79,7 @@ func (f *factory) BindFlags(flags *pflag.FlagSet) {
|
||||
}
|
||||
|
||||
func (f *factory) Client() (clientset.Interface, error) {
|
||||
clientConfig, err := Config(f.kubeconfig, f.baseName)
|
||||
clientConfig, err := Config(f.kubeconfig, f.kubecontext, f.baseName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -90,7 +92,7 @@ func (f *factory) Client() (clientset.Interface, error) {
|
||||
}
|
||||
|
||||
func (f *factory) KubeClient() (kubernetes.Interface, error) {
|
||||
clientConfig, err := Config(f.kubeconfig, f.baseName)
|
||||
clientConfig, err := Config(f.kubeconfig, f.kubecontext, f.baseName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -176,7 +176,7 @@ type server struct {
|
||||
}
|
||||
|
||||
func newServer(namespace, baseName string, logger *logrus.Logger) (*server, error) {
|
||||
clientConfig, err := client.Config("", baseName)
|
||||
clientConfig, err := client.Config("", "", baseName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user