[Federation] Update the deprecated name for 1.5 and try with flags only when --kubeconfig is non-empty.

This commit is contained in:
Madhusudan.C.S 2016-11-02 15:26:50 -07:00
parent dbfc110934
commit efafff4078

View File

@ -52,14 +52,13 @@ import (
) )
const ( const (
// "federation-apiserver-secret" was the old name we used to store // "federation-apiserver-kubeconfig" was the old name we used to
// Federation API server kubeconfig secret. Unfortunately, this name // store Federation API server kubeconfig secret. We are
// is very close to "federation-apiserver-secrets" and causes a lot // deprecating it in favor of `--kubeconfig` flag but giving people
// of confusion, particularly while debugging. So deprecating it in // time to migrate.
// favor of the new name but giving people time to migrate. // TODO(madhusudancs): this name is deprecated in 1.5 and should be
// TODO(madhusudancs): this name is deprecated in 1.4 and should be // removed in 1.6. Remove it in 1.6.
// removed in 1.5. Remove it in 1.5. DeprecatedKubeconfigSecretName = "federation-apiserver-kubeconfig"
DeprecatedKubeconfigSecretName = "federation-apiserver-secret"
) )
// NewControllerManagerCommand creates a *cobra.Command object with default parameters // NewControllerManagerCommand creates a *cobra.Command object with default parameters
@ -91,8 +90,8 @@ func Run(s *options.CMServer) error {
glog.Errorf("unable to register configz: %s", err) glog.Errorf("unable to register configz: %s", err)
} }
// If s.Kubeconfig flag is empty, try with the deprecated name in 1.4. // If s.Kubeconfig flag is empty, try with the deprecated name in 1.5.
// TODO(madhusudancs): Remove this in 1.5. // TODO(madhusudancs): Remove this in 1.6.
var restClientCfg *restclient.Config var restClientCfg *restclient.Config
var err error var err error
if len(s.Kubeconfig) <= 0 { if len(s.Kubeconfig) <= 0 {
@ -100,18 +99,18 @@ func Run(s *options.CMServer) error {
if err != nil { if err != nil {
return err return err
} }
} } else {
// Create the config to talk to federation-apiserver.
// Create the config to talk to federation-apiserver. restClientCfg, err = clientcmd.BuildConfigFromFlags(s.Master, s.Kubeconfig)
restClientCfg, err = clientcmd.BuildConfigFromFlags(s.Master, s.Kubeconfig) if err != nil || restClientCfg == nil {
if err != nil || restClientCfg == nil { // Retry with the deprecated name in 1.5.
// Retry with the deprecated name in 1.4. // TODO(madhusudancs): Remove this in 1.6.
// TODO(madhusudancs): Remove this in 1.5. glog.V(2).Infof("Couldn't build the rest client config from flags: %v", err)
glog.V(2).Infof("Couldn't build the rest client config from flags: %v", err) glog.V(2).Infof("Trying with deprecated secret: %s", DeprecatedKubeconfigSecretName)
glog.V(2).Infof("Trying with deprecated secret: %s", DeprecatedKubeconfigSecretName) restClientCfg, err = restClientConfigFromSecret(s.Master)
restClientCfg, err = restClientConfigFromSecret(s.Master) if err != nil {
if err != nil { return err
return err }
} }
} }
@ -195,13 +194,13 @@ func StartControllers(s *options.CMServer, restClientCfg *restclient.Config) err
select {} select {}
} }
// TODO(madhusudancs): Remove this in 1.5. This is only temporary to give an // TODO(madhusudancs): Remove this in 1.6. This is only temporary to give an
// upgrade path in 1.4. // upgrade path in 1.4/1.5.
func restClientConfigFromSecret(master string) (*restclient.Config, error) { func restClientConfigFromSecret(master string) (*restclient.Config, error) {
kubeconfigGetter := util.KubeconfigGetterForSecret(DeprecatedKubeconfigSecretName) kubeconfigGetter := util.KubeconfigGetterForSecret(DeprecatedKubeconfigSecretName)
restClientCfg, err := clientcmd.BuildConfigFromKubeconfigGetter(master, kubeconfigGetter) restClientCfg, err := clientcmd.BuildConfigFromKubeconfigGetter(master, kubeconfigGetter)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to find the Federation API server kubeconfig, tried the flags and the deprecated secret %s: %v", DeprecatedKubeconfigSecretName, err) return nil, fmt.Errorf("failed to find the Federation API server kubeconfig, tried the --kubeconfig flag and the deprecated secret %s: %v", DeprecatedKubeconfigSecretName, err)
} }
return restClientCfg, nil return restClientCfg, nil
} }