From c4c86905303b653a1518562107dbf834acb8e3f8 Mon Sep 17 00:00:00 2001 From: Kevin Nisbet Date: Mon, 23 Nov 2020 11:03:46 -0500 Subject: [PATCH] fallback installed etcd version on corrupt metadata (#2344) --- lib/update/cluster/steps.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/update/cluster/steps.go b/lib/update/cluster/steps.go index 578d807ca6..76aedebe39 100644 --- a/lib/update/cluster/steps.go +++ b/lib/update/cluster/steps.go @@ -22,6 +22,7 @@ import ( "fmt" "sort" "strconv" + "strings" libapp "github.com/gravitational/gravity/lib/app" "github.com/gravitational/gravity/lib/constants" @@ -76,7 +77,12 @@ func (r *phaseBuilder) initSteps(ctx context.Context) (err error) { if installedOrUpgradedEtcdVersion == nil { installedOrUpgradedEtcdVersion, err = getEtcdVersionFromManifest(r.installedApp.Manifest, r.packages) if err != nil && !trace.IsNotFound(err) { - return trace.Wrap(err) + // Several versions of gravity 6.1 have corrupted planet metadata for the etcd version. + // If we fail to parse the etcd version, fallback to the currentEtcdVersion included below. + // https://github.com/gravitational/gravity/issues/2031 + if !strings.Contains(err.Error(), "REPLACE_ETCD_LATEST_VERSION") { + return trace.Wrap(err) + } } } if installedOrUpgradedEtcdVersion == nil {