coordination #12876
closedcoordination #32851: [tools][EPIC] Scheduling redesign
[epic] Offer a way for jobs to dynamically schedule children
Description
As discussed with Vladimir, we want to offer an API in mmapi for tests to schedule children. The use case are mainly slenkins control nodes, but we can also use it to ease dynamic tests.
The use case is:
slenkins-nfs-control starts and installs the slenkins package into the VM.
The test then figures from the given control file that it needs a nfs-server and a nfs-client with a
given set of settings (currently implemented in the slenkins-import script).
It asks mmapi to schedule two tests as children following its own settings, but with a set of new variables (each).
If mmapi refuses to schedule them, the test waits and retries in a couple of minutes.
If the jobs are scheduled, we get to the normal mmapi function to wait for the children to boot before we call into slenkins.
openQA in return will schedule the children jobs with a high priority (to avoid dead locks), but will refuse to create
any jobs if there are still scheduled jobs with that high priority (or some other means to check other children are taken).
And we need to make sure the slenkins tests are only run on a very limited amount of workers - as they fork children basically
the formula is number(slenkins tests) = number(available nodes with slenkins worker class) - max(possible children). Otherwise
we can create a deadlock.
The benefit is that slenkins tests don't require manual mantenance anymore, but only once registration.