From 14c41a99df18cb1c9b2a941a7715922843783b38 Mon Sep 17 00:00:00 2001 From: Alexey Kazakov Date: Fri, 2 Aug 2024 11:06:27 -0700 Subject: [PATCH] Add Autoscaler Buffer CPU to configuration (#422) --- go.mod | 2 +- go.sum | 4 ++-- .../memberoperatorconfig/configuration.go | 6 +++++- .../memberoperatorconfig/configuration_test.go | 14 ++++++++++++++ pkg/test/config/memberoperatorconfig.go | 7 +++++++ 5 files changed, 29 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 544e19a5..9cfb697e 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/codeready-toolchain/toolchain-common go 1.20 require ( - github.com/codeready-toolchain/api v0.0.0-20240801160201-ed4387f19137 + github.com/codeready-toolchain/api v0.0.0-20240802163003-cce070815e69 github.com/go-logr/logr v1.2.3 github.com/golang-jwt/jwt/v5 v5.2.0 github.com/lestrrat-go/jwx v1.2.29 diff --git a/go.sum b/go.sum index d4540374..668d111f 100644 --- a/go.sum +++ b/go.sum @@ -115,8 +115,8 @@ github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWH github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= -github.com/codeready-toolchain/api v0.0.0-20240801160201-ed4387f19137 h1:axAZH/Ku+QHu2eQjlx/a7dctWRgj0T3K4gfnq1fzKFo= -github.com/codeready-toolchain/api v0.0.0-20240801160201-ed4387f19137/go.mod h1:ie9p4LenCCS0LsnbWp6/xwpFDdCWYE0KWzUO6Sk1g0E= +github.com/codeready-toolchain/api v0.0.0-20240802163003-cce070815e69 h1:e6up2k4O7QdG6hu0iOwNGap60b932N0JXlweDmmvCAQ= +github.com/codeready-toolchain/api v0.0.0-20240802163003-cce070815e69/go.mod h1:ie9p4LenCCS0LsnbWp6/xwpFDdCWYE0KWzUO6Sk1g0E= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= diff --git a/pkg/configuration/memberoperatorconfig/configuration.go b/pkg/configuration/memberoperatorconfig/configuration.go index 3fef4b38..d8ea6f40 100644 --- a/pkg/configuration/memberoperatorconfig/configuration.go +++ b/pkg/configuration/memberoperatorconfig/configuration.go @@ -132,7 +132,11 @@ func (a AutoscalerConfig) Deploy() bool { } func (a AutoscalerConfig) BufferMemory() string { - return commonconfig.GetString(a.autoscaler.BufferMemory, "50Mi") // TODO temporarily changed to e2e value, should be changed back to "" after autoscaler handling is moved to memberoperatorconfig controller + return commonconfig.GetString(a.autoscaler.BufferMemory, "50Mi") +} + +func (a AutoscalerConfig) BufferCPU() string { + return commonconfig.GetString(a.autoscaler.BufferCPU, "50m") } func (a AutoscalerConfig) BufferReplicas() int { diff --git a/pkg/configuration/memberoperatorconfig/configuration_test.go b/pkg/configuration/memberoperatorconfig/configuration_test.go index 07f43e34..41a37288 100644 --- a/pkg/configuration/memberoperatorconfig/configuration_test.go +++ b/pkg/configuration/memberoperatorconfig/configuration_test.go @@ -54,6 +54,20 @@ func TestAutoscaler(t *testing.T) { assert.Equal(t, "5GiB", memberOperatorCfg.Autoscaler().BufferMemory()) }) }) + t.Run("buffer cpu", func(t *testing.T) { + t.Run("default", func(t *testing.T) { + cfg := commonconfig.NewMemberOperatorConfigWithReset(t) + memberOperatorCfg := Configuration{cfg: &cfg.Spec} + + assert.Equal(t, "50m", memberOperatorCfg.Autoscaler().BufferCPU()) + }) + t.Run("non-default", func(t *testing.T) { + cfg := commonconfig.NewMemberOperatorConfigWithReset(t, testconfig.Autoscaler().BufferCPU("2000m")) + memberOperatorCfg := Configuration{cfg: &cfg.Spec} + + assert.Equal(t, "2000m", memberOperatorCfg.Autoscaler().BufferCPU()) + }) + }) t.Run("buffer replicas", func(t *testing.T) { t.Run("default", func(t *testing.T) { cfg := commonconfig.NewMemberOperatorConfigWithReset(t) diff --git a/pkg/test/config/memberoperatorconfig.go b/pkg/test/config/memberoperatorconfig.go index aa78383d..2d141c6e 100644 --- a/pkg/test/config/memberoperatorconfig.go +++ b/pkg/test/config/memberoperatorconfig.go @@ -75,6 +75,13 @@ func (o AutoscalerOption) BufferMemory(value string) AutoscalerOption { return o } +func (o AutoscalerOption) BufferCPU(value string) AutoscalerOption { + o.addFunction(func(config *toolchainv1alpha1.MemberOperatorConfig) { + config.Spec.Autoscaler.BufferCPU = &value + }) + return o +} + func (o AutoscalerOption) BufferReplicas(value int) AutoscalerOption { o.addFunction(func(config *toolchainv1alpha1.MemberOperatorConfig) { config.Spec.Autoscaler.BufferReplicas = &value