diff --git a/cmd/cli/kubernetes.go b/cmd/cli/kubernetes.go index f972c54..631bb69 100644 --- a/cmd/cli/kubernetes.go +++ b/cmd/cli/kubernetes.go @@ -15,6 +15,7 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/client-go/restmapper" "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/tools/clientcmd/api" "k8s.io/client-go/util/homedir" ) @@ -39,11 +40,7 @@ func applyManifest(completion string) error { var namespace string if *kubernetesConfigFlags.Namespace == "" { - clientConfig, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig( - &clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeConfig}, - &clientcmd.ConfigOverrides{ - CurrentContext: "", - }).RawConfig() + clientConfig, err := getConfig(kubeConfig) if err != nil { return err } @@ -112,3 +109,27 @@ func getKubeConfig() string { } return kubeConfig } + +func getConfig(kubeConfig string) (api.Config, error) { + config, err := clientcmd.NewNonInteractiveDeferredLoadingClientConfig( + &clientcmd.ClientConfigLoadingRules{ExplicitPath: kubeConfig}, + &clientcmd.ConfigOverrides{ + CurrentContext: "", + }).RawConfig() + if err != nil { + return api.Config{}, err + } + + return config, nil +} + +func getCurrentContextName() (string, error) { + kubeConfig := getKubeConfig() + config, err := getConfig(kubeConfig) + if err != nil { + return "", err + } + currentContext := config.CurrentContext + + return currentContext, nil +} diff --git a/cmd/cli/root.go b/cmd/cli/root.go index 53dede2..9f694b8 100644 --- a/cmd/cli/root.go +++ b/cmd/cli/root.go @@ -147,7 +147,11 @@ func userActionPrompt() (string, error) { var result string var err error items := []string{apply, dontApply} - label := fmt.Sprintf("Would you like to apply this? [%s/%s/%s]", reprompt, apply, dontApply) + currentContext, err := getCurrentContextName() + label := fmt.Sprintf("Would you like to apply this? [%[1]s/%[2]s/%[3]s]", reprompt, apply, dontApply) + if err == nil { + label = fmt.Sprintf("(context: %[1]s) %[2]s", currentContext, label) + } prompt := promptui.SelectWithAdd{ Label: label,