@@ -352,19 +352,33 @@ func (o *GinkgoRunSuiteOptions) Run(suite *TestSuite, clusterConfig *clusterdisc
352
352
}
353
353
}
354
354
355
- parallelism := o .Parallelism
356
- if parallelism == 0 {
357
- parallelism = suite .Parallelism
355
+ // start with suite value
356
+ parallelism := suite .Parallelism
357
+ logrus .Infof ("Suite defined parallelism %d" , parallelism )
358
+
359
+ // adjust based on the number of workers
360
+ totalNodes , workerNodes , err := getClusterNodeCounts (ctx , restConfig )
361
+ if err != nil {
362
+ logrus .Errorf ("Failed to get cluster node counts: %v" , err )
363
+ } else {
364
+ // default to 10 concurrent tests per worker but use the min of that
365
+ // and the current parallelism value
366
+ if workerNodes > 0 {
367
+ workerParallelism := 10 * workerNodes
368
+ logrus .Infof ("Parallelism based on worker node count: %d" , workerParallelism )
369
+ parallelism = min (parallelism , workerParallelism )
370
+ }
358
371
}
359
372
373
+ // if 0 set our min value
360
374
if parallelism == 0 {
361
375
parallelism = 10
362
376
}
363
377
364
- // adjust based on the number of workers
365
- totalNodes , workerNodes , err := getClusterNodeCounts ( ctx , restConfig )
366
- if err != nil {
367
- logrus .Errorf ( "Failed to get cluster node counts : %v " , err )
378
+ // if explicitly set then use the specified value
379
+ if o . Parallelism > 0 {
380
+ parallelism = o . Parallelism
381
+ logrus .Infof ( "Using specified parallelism value : %d " , parallelism )
368
382
}
369
383
370
384
logrus .Infof ("Total nodes: %d, Worker nodes: %d, Parallelism: %d" , totalNodes , workerNodes , parallelism )
0 commit comments