mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-08 03:33:56 +00:00
Merge pull request #117202 from pohly/scheduler-perf-zero-count
scheduler perf: allow creating 0 items
This commit is contained in:
commit
aa026a6b30
@ -265,6 +265,14 @@ func isValidParameterizable(val string) bool {
|
|||||||
return strings.HasPrefix(val, "$")
|
return strings.HasPrefix(val, "$")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func isValidCount(allowParameterization bool, count int, countParam string) bool {
|
||||||
|
if !allowParameterization || countParam == "" {
|
||||||
|
// Ignore parameter. The value itself must be okay.
|
||||||
|
return count >= 0
|
||||||
|
}
|
||||||
|
return isValidParameterizable(countParam)
|
||||||
|
}
|
||||||
|
|
||||||
// createNodesOp defines an op where nodes are created as a part of a workload.
|
// createNodesOp defines an op where nodes are created as a part of a workload.
|
||||||
type createNodesOp struct {
|
type createNodesOp struct {
|
||||||
// Must be "createNodes".
|
// Must be "createNodes".
|
||||||
@ -288,9 +296,7 @@ func (cno *createNodesOp) isValid(allowParameterization bool) error {
|
|||||||
if cno.Opcode != createNodesOpcode {
|
if cno.Opcode != createNodesOpcode {
|
||||||
return fmt.Errorf("invalid opcode %q", cno.Opcode)
|
return fmt.Errorf("invalid opcode %q", cno.Opcode)
|
||||||
}
|
}
|
||||||
ok := cno.Count > 0 ||
|
if !isValidCount(allowParameterization, cno.Count, cno.CountParam) {
|
||||||
(cno.CountParam != "" && allowParameterization && isValidParameterizable(cno.CountParam))
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("invalid Count=%d / CountParam=%q", cno.Count, cno.CountParam)
|
return fmt.Errorf("invalid Count=%d / CountParam=%q", cno.Count, cno.CountParam)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -331,9 +337,7 @@ func (cmo *createNamespacesOp) isValid(allowParameterization bool) error {
|
|||||||
if cmo.Opcode != createNamespacesOpcode {
|
if cmo.Opcode != createNamespacesOpcode {
|
||||||
return fmt.Errorf("invalid opcode %q", cmo.Opcode)
|
return fmt.Errorf("invalid opcode %q", cmo.Opcode)
|
||||||
}
|
}
|
||||||
ok := cmo.Count > 0 ||
|
if !isValidCount(allowParameterization, cmo.Count, cmo.CountParam) {
|
||||||
(cmo.CountParam != "" && allowParameterization && isValidParameterizable(cmo.CountParam))
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("invalid Count=%d / CountParam=%q", cmo.Count, cmo.CountParam)
|
return fmt.Errorf("invalid Count=%d / CountParam=%q", cmo.Count, cmo.CountParam)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
@ -390,9 +394,7 @@ func (cpo *createPodsOp) isValid(allowParameterization bool) error {
|
|||||||
if cpo.Opcode != createPodsOpcode {
|
if cpo.Opcode != createPodsOpcode {
|
||||||
return fmt.Errorf("invalid opcode %q; expected %q", cpo.Opcode, createPodsOpcode)
|
return fmt.Errorf("invalid opcode %q; expected %q", cpo.Opcode, createPodsOpcode)
|
||||||
}
|
}
|
||||||
ok := cpo.Count > 0 ||
|
if !isValidCount(allowParameterization, cpo.Count, cpo.CountParam) {
|
||||||
(cpo.CountParam != "" && allowParameterization && isValidParameterizable(cpo.CountParam))
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("invalid Count=%d / CountParam=%q", cpo.Count, cpo.CountParam)
|
return fmt.Errorf("invalid Count=%d / CountParam=%q", cpo.Count, cpo.CountParam)
|
||||||
}
|
}
|
||||||
if cpo.CollectMetrics && cpo.SkipWaitToCompletion {
|
if cpo.CollectMetrics && cpo.SkipWaitToCompletion {
|
||||||
@ -438,9 +440,7 @@ func (cpso *createPodSetsOp) isValid(allowParameterization bool) error {
|
|||||||
if cpso.Opcode != createPodSetsOpcode {
|
if cpso.Opcode != createPodSetsOpcode {
|
||||||
return fmt.Errorf("invalid opcode %q; expected %q", cpso.Opcode, createPodSetsOpcode)
|
return fmt.Errorf("invalid opcode %q; expected %q", cpso.Opcode, createPodSetsOpcode)
|
||||||
}
|
}
|
||||||
ok := cpso.Count > 0 ||
|
if !isValidCount(allowParameterization, cpso.Count, cpso.CountParam) {
|
||||||
(cpso.CountParam != "" && allowParameterization && isValidParameterizable(cpso.CountParam))
|
|
||||||
if !ok {
|
|
||||||
return fmt.Errorf("invalid Count=%d / CountParam=%q", cpso.Count, cpso.CountParam)
|
return fmt.Errorf("invalid Count=%d / CountParam=%q", cpso.Count, cpso.CountParam)
|
||||||
}
|
}
|
||||||
return cpso.CreatePodsOp.isValid(allowParameterization)
|
return cpso.CreatePodsOp.isValid(allowParameterization)
|
||||||
|
Loading…
Reference in New Issue
Block a user