From 03df7412de4c6344fc4856e0e0aa281b8f2967d6 Mon Sep 17 00:00:00 2001 From: Saurov Chandra Biswas <48715910+souravbiswassanto@users.noreply.github.com> Date: Fri, 15 Nov 2024 17:01:56 +0600 Subject: [PATCH] Remove arbiter api when no arbiter node present (#1344) Signed-off-by: souravbiswassanto --- apis/kubedb/v1/postgres_helpers.go | 4 ++-- apis/kubedb/v1alpha2/postgres_helpers.go | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/apis/kubedb/v1/postgres_helpers.go b/apis/kubedb/v1/postgres_helpers.go index ddf77bdfa1..d0ec2434a4 100644 --- a/apis/kubedb/v1/postgres_helpers.go +++ b/apis/kubedb/v1/postgres_helpers.go @@ -306,12 +306,12 @@ func (p *Postgres) SetDefaultReplicationMode(postgresVersion *catalog.PostgresVe } func (p *Postgres) SetArbiterDefault() { - if p.Spec.Arbiter == nil { + if ptr.Deref(p.Spec.Replicas, 0)%2 == 0 && p.Spec.Arbiter == nil { p.Spec.Arbiter = &ArbiterSpec{ Resources: core.ResourceRequirements{}, } + apis.SetDefaultResourceLimits(&p.Spec.Arbiter.Resources, kubedb.DefaultArbiter(false)) } - apis.SetDefaultResourceLimits(&p.Spec.Arbiter.Resources, kubedb.DefaultArbiter(false)) } func (p *Postgres) setDefaultPodSecurityContext(podTemplate *ofstv2.PodTemplateSpec, pgVersion *catalog.PostgresVersion) { diff --git a/apis/kubedb/v1alpha2/postgres_helpers.go b/apis/kubedb/v1alpha2/postgres_helpers.go index a31dbb4ce4..545239fdce 100644 --- a/apis/kubedb/v1alpha2/postgres_helpers.go +++ b/apis/kubedb/v1alpha2/postgres_helpers.go @@ -35,6 +35,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/labels" appslister "k8s.io/client-go/listers/apps/v1" + "k8s.io/utils/ptr" kmapi "kmodules.xyz/client-go/api/v1" "kmodules.xyz/client-go/apiextensions" core_util "kmodules.xyz/client-go/core/v1" @@ -315,12 +316,12 @@ func (p *Postgres) SetDefaultReplicationMode(postgresVersion *catalog.PostgresVe } func (p *Postgres) SetArbiterDefault() { - if p.Spec.Arbiter == nil { + if ptr.Deref(p.Spec.Replicas, 0)%2 == 0 && p.Spec.Arbiter == nil { p.Spec.Arbiter = &ArbiterSpec{ Resources: core.ResourceRequirements{}, } + apis.SetDefaultResourceLimits(&p.Spec.Arbiter.Resources, kubedb.DefaultArbiter(false)) } - apis.SetDefaultResourceLimits(&p.Spec.Arbiter.Resources, kubedb.DefaultArbiter(false)) } func (p *Postgres) setDefaultInitContainerSecurityContext(podTemplate *ofst.PodTemplateSpec, pgVersion *catalog.PostgresVersion) {