Skip to content

Commit 33e4d10

Browse files
authored
Validate target_replica_concurrency <= max_replica_concurrency (#1039)
1 parent 6281d76 commit 33e4d10

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

pkg/types/spec/errors.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ const (
3333
ErrDuplicateEndpoint = "spec.duplicate_endpoint"
3434
ErrSpecifyAllOrNone = "spec.specify_all_or_none"
3535
ErrOneOfPrerequisitesNotDefined = "spec.one_of_prerequisites_not_defined"
36+
ErrConfigGreaterThanOtherConfig = "spec.config_greater_than_other_config"
3637
ErrMinReplicasGreaterThanMax = "spec.min_replicas_greater_than_max"
3738
ErrInitReplicasGreaterThanMax = "spec.init_replicas_greater_than_max"
3839
ErrInitReplicasLessThanMin = "spec.init_replicas_less_than_min"
@@ -123,6 +124,13 @@ func ErrorOneOfPrerequisitesNotDefined(argName string, prerequisite string, prer
123124
})
124125
}
125126

127+
func ErrorConfigGreaterThanOtherConfig(tooBigKey string, tooBigVal interface{}, tooSmallKey string, tooSmallVal interface{}) error {
128+
return errors.WithStack(&errors.Error{
129+
Kind: ErrConfigGreaterThanOtherConfig,
130+
Message: fmt.Sprintf("%s (%s) cannot be greater than %s (%s)", tooBigKey, s.UserStr(tooBigVal), tooSmallKey, s.UserStr(tooSmallVal)),
131+
})
132+
}
133+
126134
func ErrorMinReplicasGreaterThanMax(min int32, max int32) error {
127135
return errors.WithStack(&errors.Error{
128136
Kind: ErrMinReplicasGreaterThanMax,

pkg/types/spec/validations.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -765,6 +765,10 @@ func validateAutoscaling(autoscaling *userconfig.Autoscaling) error {
765765
autoscaling.TargetReplicaConcurrency = pointer.Float64(float64(autoscaling.WorkersPerReplica * autoscaling.ThreadsPerWorker))
766766
}
767767

768+
if *autoscaling.TargetReplicaConcurrency > float64(autoscaling.MaxReplicaConcurrency) {
769+
return ErrorConfigGreaterThanOtherConfig(userconfig.TargetReplicaConcurrencyKey, *autoscaling.TargetReplicaConcurrency, userconfig.MaxReplicaConcurrencyKey, autoscaling.MaxReplicaConcurrency)
770+
}
771+
768772
if autoscaling.MinReplicas > autoscaling.MaxReplicas {
769773
return ErrorMinReplicasGreaterThanMax(autoscaling.MinReplicas, autoscaling.MaxReplicas)
770774
}

0 commit comments

Comments
 (0)