Add pool balancing strategy
This change adds the ability to specify the pool balancing strategy to use when processing queued jobs. Before this change, GARM would round-robin through all pools that matched the set of tags requested by queued jobs. When round-robin (default) is used for an entity (repo, org or enterprise) and you have 2 pools defined for that entity with a common set of tags that match 10 jobs (for example), then those jobs would trigger the creation of a new runner in each of the two pools in turn. Job 1 would go to pool 1, job 2 would go to pool 2, job 3 to pool 1, job 4 to pool 2 and so on. When "stack" is used, those same 10 jobs would trigger the creation of a new runner in the pool with the highest priority, every time. In both cases, if a pool is full, the next one would be tried automatically. For the stack case, this would mean that if pool 2 had a priority of 10 and pool 1 would have a priority of 5, pool 2 would be saturated first, then pool 1. Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
parent
569d512819
commit
ce3c917ae5
34 changed files with 362 additions and 137 deletions
|
|
@ -78,6 +78,7 @@ func (s *EnterpriseTestSuite) SetupTest() {
|
|||
name,
|
||||
fmt.Sprintf("test-creds-%v", i),
|
||||
fmt.Sprintf("test-webhook-secret-%v", i),
|
||||
params.PoolBalancerTypeRoundRobin,
|
||||
)
|
||||
if err != nil {
|
||||
s.FailNow(fmt.Sprintf("failed to create database object (test-enterprise-%v)", i))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue