From 4173301a5d87b0d4fd400ccf1455ed837123ca98 Mon Sep 17 00:00:00 2001 From: ajanikow <12255597+ajanikow@users.noreply.github.com> Date: Mon, 3 Oct 2022 08:26:02 +0000 Subject: [PATCH] [Bugfix] Prevent Member Maintenance Error log --- CHANGELOG.md | 1 + pkg/deployment/features/features.go | 15 ++++++++++++++- pkg/deployment/reconcile/helper_wrap.go | 2 +- pkg/deployment/resources/pod_creator_probes.go | 2 +- 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7db0d8b4..c89e2d8e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - (Feature) Add action progress - (Feature) Ensure consistency during replication cancellation - (Feature) Add annotation to change architecture of a member +- (Bugfix) Prevent Member Maintenance Error log ## [1.2.18](https://github.com/arangodb/kube-arangodb/tree/1.2.18) (2022-09-28) - (Feature) Define Actions PlaceHolder diff --git a/pkg/deployment/features/features.go b/pkg/deployment/features/features.go index dd5fdfee0..3491d3b21 100644 --- a/pkg/deployment/features/features.go +++ b/pkg/deployment/features/features.go @@ -20,7 +20,11 @@ package features -import "github.com/arangodb/go-driver" +import ( + "github.com/arangodb/go-driver" + + api "github.com/arangodb/kube-arangodb/pkg/apis/deployment/v1" +) const ( Enabled = "true" @@ -40,6 +44,7 @@ type Feature interface { Deprecated() (bool, string) Hidden() bool Supported(v driver.Version, enterprise bool) bool + ImageSupported(i *api.ImageInfo) bool } type feature struct { @@ -51,6 +56,14 @@ type feature struct { hidden bool } +func (f feature) ImageSupported(i *api.ImageInfo) bool { + if i == nil { + return false + } + + return f.Supported(i.ArangoDBVersion, i.Enterprise) +} + func (f feature) Hidden() bool { return f.hidden } diff --git a/pkg/deployment/reconcile/helper_wrap.go b/pkg/deployment/reconcile/helper_wrap.go index 805f2c2a0..8a3c203b3 100644 --- a/pkg/deployment/reconcile/helper_wrap.go +++ b/pkg/deployment/reconcile/helper_wrap.go @@ -51,7 +51,7 @@ func withMemberMaintenance(group api.ServerGroup, member api.MemberStatus, reaso return plan } - if !features.Version310().Enabled() { + if !features.Version310().ImageSupported(member.Image) { return plan } diff --git a/pkg/deployment/resources/pod_creator_probes.go b/pkg/deployment/resources/pod_creator_probes.go index 5c7eef0fa..775463958 100644 --- a/pkg/deployment/resources/pod_creator_probes.go +++ b/pkg/deployment/resources/pod_creator_probes.go @@ -513,5 +513,5 @@ func getProbeRetries(group api.ServerGroup) (int32, int32) { // IsServerProgressAvailable returns true if server progress is available. func IsServerProgressAvailable(group api.ServerGroup, imageInfo api.ImageInfo) bool { return group == api.ServerGroupDBServers && - features.Version310().Supported(imageInfo.ArangoDBVersion, imageInfo.Enterprise) + features.Version310().ImageSupported(&imageInfo) }