From 565ae976e9e7a2f5678102400bc02fdef722ecca Mon Sep 17 00:00:00 2001 From: Mike Beaumont Date: Wed, 22 Jul 2020 18:30:14 +0200 Subject: [PATCH] Restore "auto" version for upgrade cluster (#2464) --- pkg/ctl/upgrade/cluster.go | 5 +++-- pkg/utils/utils.go | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/ctl/upgrade/cluster.go b/pkg/ctl/upgrade/cluster.go index 65d7cde3aa..14b4ce3c0d 100644 --- a/pkg/ctl/upgrade/cluster.go +++ b/pkg/ctl/upgrade/cluster.go @@ -137,7 +137,8 @@ func requiresVersionUpgrade(clusterMeta *api.ClusterMeta, currentEKSVersion stri } // If the version was not specified default to the next Kubernetes version and assume the user intended to upgrade if possible - if clusterMeta.Version == "" { + // also support "auto" as version (see #2461) + if clusterMeta.Version == "" || clusterMeta.Version == "auto" { if api.IsSupportedVersion(nextVersion) { clusterMeta.Version = nextVersion return true, nil @@ -149,7 +150,7 @@ func requiresVersionUpgrade(clusterMeta *api.ClusterMeta, currentEKSVersion stri } if c, err := utils.CompareVersions(clusterMeta.Version, currentEKSVersion); err != nil { - return false, err + return false, errors.Wrap(err, "couldn't compare versions for upgrade") } else if c < 0 { return false, fmt.Errorf("cannot upgrade to a lower version. Found given target version %q, current cluster version %q", clusterMeta.Version, currentEKSVersion) } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 3a527cec20..346b70de70 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -37,7 +37,7 @@ func IsMinVersion(minimumVersion, version string) (bool, error) { } targetVersion, err := semver.ParseTolerant(version) if err != nil { - return false, fmt.Errorf("unable to parse version %s", version) + return false, fmt.Errorf("unable to parse target version %s", version) } return targetVersion.GE(minVersion), nil } @@ -49,11 +49,11 @@ func IsMinVersion(minimumVersion, version string) (bool, error) { func CompareVersions(a, b string) (int, error) { aVersion, err := semver.ParseTolerant(a) if err != nil { - return 0, errors.Wrapf(err, "unable to parse version %q", a) + return 0, errors.Wrapf(err, "unable to parse first version %q", a) } bVersion, err := semver.ParseTolerant(b) if err != nil { - return 0, errors.Wrapf(err, "unable to parse version %q", b) + return 0, errors.Wrapf(err, "unable to parse second version %q", b) } return aVersion.Compare(bVersion), nil }