diff --git a/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job.go b/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job.go index 9eafed378f2d..e27bb43ef639 100755 --- a/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job.go +++ b/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job.go @@ -145,8 +145,9 @@ func (c *ScalingJob) ScaleFHPA(cronFHPA *autoscalingv1alpha1.CronFederatedHPA) e fhpa.Spec.MaxReplicas = *c.rule.TargetMaxReplicas update = true } - if c.rule.TargetMinReplicas != nil && *fhpa.Spec.MinReplicas != *c.rule.TargetMinReplicas { - *fhpa.Spec.MinReplicas = *c.rule.TargetMinReplicas + if c.rule.TargetMinReplicas != nil && (fhpa.Spec.MinReplicas == nil || *fhpa.Spec.MinReplicas != *c.rule.TargetMinReplicas) { + targetMinReplicas := *c.rule.TargetMinReplicas + fhpa.Spec.MinReplicas = &targetMinReplicas update = true } diff --git a/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job_test.go b/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job_test.go index 49cb6ed89dce..541972fb9f03 100644 --- a/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job_test.go +++ b/pkg/controllers/cronfederatedhpa/cronfederatedhpa_job_test.go @@ -123,6 +123,31 @@ func TestScaleFHPA(t *testing.T) { expectedUpdate: true, expectedErr: false, }, + { + name: "Initialize Nil MinReplicas", + cronFHPA: &autoscalingv1alpha1.CronFederatedHPA{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-cron-fhpa", + Namespace: "default", + }, + Spec: autoscalingv1alpha1.CronFederatedHPASpec{ + ScaleTargetRef: autoscalingv2.CrossVersionObjectReference{ + Name: "test-fhpa", + }, + }, + }, + existingFHPA: &autoscalingv1alpha1.FederatedHPA{ + ObjectMeta: metav1.ObjectMeta{ + Name: "test-fhpa", + Namespace: "default", + }, + }, + rule: autoscalingv1alpha1.CronFederatedHPARule{ + TargetMinReplicas: new(int32(3)), + }, + expectedUpdate: true, + expectedErr: false, + }, { name: "No Updates Needed", cronFHPA: &autoscalingv1alpha1.CronFederatedHPA{