From 9b5741249e121e3a28afa546ab766bcc72d9b8a0 Mon Sep 17 00:00:00 2001 From: Jonathan King Date: Mon, 26 Aug 2024 14:32:48 -0400 Subject: [PATCH] hpa: Do not set replicas to 2 when override set to null (PROJQUAY-6474) - When replicas override is set to null, the deployment should not be edited --- apis/quay/v1/quayregistry_types.go | 7 ++++++- pkg/middleware/middleware.go | 6 ++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/apis/quay/v1/quayregistry_types.go b/apis/quay/v1/quayregistry_types.go index d71c09a0b..382ac974c 100644 --- a/apis/quay/v1/quayregistry_types.go +++ b/apis/quay/v1/quayregistry_types.go @@ -25,6 +25,7 @@ import ( "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" quaycontext "github.com/quay/quay-operator/pkg/context" @@ -754,7 +755,7 @@ func init() { } // GetReplicasOverrideForComponent returns the overrides set by the user for the provided -// component. Returns nil if not set. +// component. Returns nil if not set. Returns -1 if the override is set to nil. func GetReplicasOverrideForComponent(quay *QuayRegistry, kind ComponentKind) *int32 { for _, cmp := range quay.Spec.Components { if cmp.Kind != kind { @@ -762,6 +763,10 @@ func GetReplicasOverrideForComponent(quay *QuayRegistry, kind ComponentKind) *in } if cmp.Overrides == nil { + return ptr.To[int32](2) + } + + if cmp.Overrides.Replicas == nil { return nil } diff --git a/pkg/middleware/middleware.go b/pkg/middleware/middleware.go index 70ed815e1..488577d33 100644 --- a/pkg/middleware/middleware.go +++ b/pkg/middleware/middleware.go @@ -14,7 +14,6 @@ import ( "k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/util/intstr" - "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/client" "sigs.k8s.io/yaml" @@ -122,12 +121,11 @@ func Process(quay *v1.QuayRegistry, qctx *quaycontext.QuayRegistryContext, obj c // if no number of replicas has been set in kustomization files // we set its value to two or to the value provided by the user // as an override (if provided). - desired := ptr.To[int32](2) + if r := v1.GetReplicasOverrideForComponent(quay, kind); r != nil { - desired = r + dep.Spec.Replicas = r } - dep.Spec.Replicas = desired break } }