From c413aefee8eb65df202def551a6f5139f954c4fc Mon Sep 17 00:00:00 2001 From: Jason DeTiberus Date: Thu, 17 May 2018 11:53:31 -0400 Subject: [PATCH] kubeadm - fix upgrades with static pod etcd --- cmd/kubeadm/app/cmd/upgrade/apply.go | 6 ++---- cmd/kubeadm/app/util/etcd/etcd.go | 8 ++------ 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/cmd/kubeadm/app/cmd/upgrade/apply.go b/cmd/kubeadm/app/cmd/upgrade/apply.go index 8404e0de6b5..1acb2f895b1 100644 --- a/cmd/kubeadm/app/cmd/upgrade/apply.go +++ b/cmd/kubeadm/app/cmd/upgrade/apply.go @@ -37,7 +37,6 @@ import ( "k8s.io/kubernetes/cmd/kubeadm/app/util/apiclient" configutil "k8s.io/kubernetes/cmd/kubeadm/app/util/config" dryrunutil "k8s.io/kubernetes/cmd/kubeadm/app/util/dryrun" - etcdutil "k8s.io/kubernetes/cmd/kubeadm/app/util/etcd" "k8s.io/kubernetes/pkg/util/version" ) @@ -277,9 +276,8 @@ func PerformStaticPodUpgrade(client clientset.Interface, waiter apiclient.Waiter return err } - // These are uninitialized because passing in the clients allow for mocking the client during testing - var oldEtcdClient, newEtdClient etcdutil.Client - return upgrade.StaticPodControlPlane(waiter, pathManager, internalcfg, etcdUpgrade, oldEtcdClient, newEtdClient) + // The arguments oldEtcdClient and newEtdClient, are uninitialized because passing in the clients allow for mocking the client during testing + return upgrade.StaticPodControlPlane(waiter, pathManager, internalcfg, etcdUpgrade, nil, nil) } // DryRunStaticPodUpgrade fakes an upgrade of the control plane diff --git a/cmd/kubeadm/app/util/etcd/etcd.go b/cmd/kubeadm/app/util/etcd/etcd.go index 3bd3e8034a7..a390d670640 100644 --- a/cmd/kubeadm/app/util/etcd/etcd.go +++ b/cmd/kubeadm/app/util/etcd/etcd.go @@ -133,14 +133,10 @@ func (c Client) GetVersion() (string, error) { return "", err } for _, v := range versions { - if clusterVersion == "" { - // This is the first version we've seen - clusterVersion = v - } else if v != clusterVersion { + if clusterVersion != "" && clusterVersion != v { return "", fmt.Errorf("etcd cluster contains endpoints with mismatched versions: %v", versions) - } else { - clusterVersion = v } + clusterVersion = v } if clusterVersion == "" { return "", fmt.Errorf("could not determine cluster etcd version")