Skip to content

Commit d4c6a11

Browse files
authored
Merge pull request #235 from arangodb/feature/use-go-upgrade-rules
Use go-upgrade-rules to make "is upgrade allowed" decision fixes #234
2 parents 88f3aec + bbfbba7 commit d4c6a11

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ $(GOBUILDDIR):
137137
@mkdir -p $(ORGDIR)
138138
@rm -f $(REPODIR) && ln -sf ../../../.. $(REPODIR)
139139
GOPATH=$(GOBUILDDIR) $(PULSAR) go flatten -V $(VENDORDIR)
140+
# Note: Next library is not vendored, since we always want the latest version
141+
GOPATH=$(GOBUILDDIR) go get github.com/arangodb/go-upgrade-rules
140142

141143
$(CACHEVOL):
142144
@docker volume create $(CACHEVOL)

pkg/deployment/reconcile/plan_builder.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ package reconcile
2525
import (
2626
"strings"
2727

28+
upgraderules "github.com/arangodb/go-upgrade-rules"
2829
"github.com/rs/zerolog"
2930
"github.com/rs/zerolog/log"
3031
"k8s.io/api/core/v1"
@@ -215,11 +216,11 @@ func podNeedsUpgrading(p v1.Pod, spec api.DeploymentSpec, images api.ImageInfoLi
215216
// Image changed, check if change is allowed
216217
specVersion := specImageInfo.ArangoDBVersion
217218
podVersion := podImageInfo.ArangoDBVersion
218-
if specVersion.Major() != podVersion.Major() {
219+
if err := upgraderules.CheckUpgradeRules(podVersion, specVersion); err != nil {
219220
// E.g. 3.x -> 4.x, we cannot allow automatically
220221
return upgradeDecision{UpgradeNeeded: true, UpgradeAllowed: false}
221222
}
222-
if specVersion.Minor() != podVersion.Minor() {
223+
if specVersion.Major() != podVersion.Major() || specVersion.Minor() != podVersion.Minor() {
223224
// Is allowed, with `--database.auto-upgrade`
224225
return upgradeDecision{
225226
UpgradeNeeded: true,

0 commit comments

Comments
 (0)