From 2cccbf9d0cbf8d806d62906c237fa8082ca3d12d Mon Sep 17 00:00:00 2001 From: Xianglin Gao Date: Tue, 7 Aug 2018 23:31:19 +0800 Subject: [PATCH] Use FindExistingKubeConfig in the phases which use the --kubeconfig Signed-off-by: Xianglin Gao --- cmd/kubeadm/app/cmd/BUILD | 1 - cmd/kubeadm/app/cmd/phases/bootstraptoken.go | 3 ++- cmd/kubeadm/app/cmd/phases/kubelet.go | 2 ++ cmd/kubeadm/app/cmd/upgrade/upgrade.go | 4 ++-- cmd/kubeadm/app/cmd/util/cmdutil.go | 6 +++--- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/cmd/kubeadm/app/cmd/BUILD b/cmd/kubeadm/app/cmd/BUILD index 991374a427b..d0f731775b1 100644 --- a/cmd/kubeadm/app/cmd/BUILD +++ b/cmd/kubeadm/app/cmd/BUILD @@ -66,7 +66,6 @@ go_library( "//staging/src/k8s.io/client-go/kubernetes:go_default_library", "//staging/src/k8s.io/client-go/tools/bootstrap/token/api:go_default_library", "//staging/src/k8s.io/client-go/tools/bootstrap/token/util:go_default_library", - "//staging/src/k8s.io/client-go/tools/clientcmd:go_default_library", "//staging/src/k8s.io/client-go/tools/clientcmd/api:go_default_library", "//staging/src/k8s.io/client-go/util/cert:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", diff --git a/cmd/kubeadm/app/cmd/phases/bootstraptoken.go b/cmd/kubeadm/app/cmd/phases/bootstraptoken.go index 6e49b4c7088..84d4be99498 100644 --- a/cmd/kubeadm/app/cmd/phases/bootstraptoken.go +++ b/cmd/kubeadm/app/cmd/phases/bootstraptoken.go @@ -31,7 +31,7 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/validation" "k8s.io/kubernetes/cmd/kubeadm/app/cmd/options" cmdutil "k8s.io/kubernetes/cmd/kubeadm/app/cmd/util" - kubeadmconstants"k8s.io/kubernetes/cmd/kubeadm/app/constants" + kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/clusterinfo" "k8s.io/kubernetes/cmd/kubeadm/app/phases/bootstraptoken/node" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" @@ -99,6 +99,7 @@ func NewCmdBootstrapToken() *cobra.Command { options.AddKubeConfigFlag(cmd.PersistentFlags(), &kubeConfigFile) // Add subcommands + kubeConfigFile = cmdutil.FindExistingKubeConfig(kubeConfigFile) cmd.AddCommand(NewSubCmdBootstrapTokenAll(&kubeConfigFile)) cmd.AddCommand(NewSubCmdBootstrapToken(&kubeConfigFile)) cmd.AddCommand(NewSubCmdClusterInfo(&kubeConfigFile)) diff --git a/cmd/kubeadm/app/cmd/phases/kubelet.go b/cmd/kubeadm/app/cmd/phases/kubelet.go index 6482413ec5b..927121b4b0f 100644 --- a/cmd/kubeadm/app/cmd/phases/kubelet.go +++ b/cmd/kubeadm/app/cmd/phases/kubelet.go @@ -208,6 +208,7 @@ func NewCmdKubeletConfigUpload() *cobra.Command { internalcfg, err := configutil.ConfigFileAndDefaultsToInternalConfig(cfgPath, cfg) kubeadmutil.CheckErr(err) + kubeConfigFile = cmdutil.FindExistingKubeConfig(kubeConfigFile) client, err := kubeconfigutil.ClientSetFromFile(kubeConfigFile) kubeadmutil.CheckErr(err) @@ -310,6 +311,7 @@ func NewCmdKubeletConfigEnableDynamic() *cobra.Command { kubeletVersion, err := version.ParseSemantic(kubeletVersionStr) kubeadmutil.CheckErr(err) + kubeConfigFile = cmdutil.FindExistingKubeConfig(kubeConfigFile) client, err := kubeconfigutil.ClientSetFromFile(kubeConfigFile) kubeadmutil.CheckErr(err) diff --git a/cmd/kubeadm/app/cmd/upgrade/upgrade.go b/cmd/kubeadm/app/cmd/upgrade/upgrade.go index 31b85e7315a..c0e337993cb 100644 --- a/cmd/kubeadm/app/cmd/upgrade/upgrade.go +++ b/cmd/kubeadm/app/cmd/upgrade/upgrade.go @@ -18,7 +18,6 @@ package upgrade import ( "io" - "path/filepath" "strings" "github.com/spf13/cobra" @@ -47,7 +46,7 @@ type applyPlanFlags struct { // NewCmdUpgrade returns the cobra command for `kubeadm upgrade` func NewCmdUpgrade(out io.Writer) *cobra.Command { flags := &applyPlanFlags{ - kubeConfigPath: filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName), + kubeConfigPath: kubeadmconstants.GetAdminKubeConfigPath(), cfgPath: "", featureGatesString: "", allowExperimentalUpgrades: false, @@ -63,6 +62,7 @@ func NewCmdUpgrade(out io.Writer) *cobra.Command { RunE: cmdutil.SubCmdRunE("upgrade"), } + flags.kubeConfigPath = cmdutil.FindExistingKubeConfig(flags.kubeConfigPath) cmd.AddCommand(NewCmdApply(flags)) cmd.AddCommand(NewCmdPlan(flags)) cmd.AddCommand(NewCmdDiff(out)) diff --git a/cmd/kubeadm/app/cmd/util/cmdutil.go b/cmd/kubeadm/app/cmd/util/cmdutil.go index ad63ba0d5fc..748e80d2fb6 100644 --- a/cmd/kubeadm/app/cmd/util/cmdutil.go +++ b/cmd/kubeadm/app/cmd/util/cmdutil.go @@ -18,9 +18,9 @@ package util import ( "fmt" - "path/filepath" "github.com/spf13/cobra" + "k8s.io/client-go/tools/clientcmd" kubeadmconstants "k8s.io/kubernetes/cmd/kubeadm/app/constants" ) @@ -65,12 +65,12 @@ func ValidateExactArgNumber(args []string, supportedArgs []string) error { func FindExistingKubeConfig(file string) string { // The user did provide a --kubeconfig flag. Respect that and threat it as an // explicit path without building a DefaultClientConfigLoadingRules object. - if file != filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName) { + if file != kubeadmconstants.GetAdminKubeConfigPath() { return file } // The user did not provide a --kubeconfig flag. Find a config in the standard // locations using DefaultClientConfigLoadingRules, but also consider the default config path. rules := clientcmd.NewDefaultClientConfigLoadingRules() - rules.Precedence = append(rules.Precedence, filepath.Join(kubeadmconstants.KubernetesDir, kubeadmconstants.AdminKubeConfigFileName)) + rules.Precedence = append(rules.Precedence, kubeadmconstants.GetAdminKubeConfigPath()) return rules.GetDefaultFilename() }