Switch to using aliases for worker-types in taskgraph.

RESOLVED FIXED

Status

task
RESOLVED FIXED
5 months ago
11 days ago

People

(Reporter: tomprince, Assigned: tomprince)

Tracking

(Blocks 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(6 attachments, 1 obsolete attachment)

There are a number of ways we want to vary workers over time and jobs, including

  • we are working on migrating to gce
  • mac pgo builds have a dedicated worker-type for level 3 but not level 1

Rather than have all tasks know about how the machines are provisioned, we should move to using short-names for the worker types, and then have a config mapping those to the actual worker types.

This will probably subsume taskgraph.util.worker_types eventually.

Assignee: nobody → mozilla
Status: NEW → ASSIGNED

💖!

A few extra thoughts:

  • it'd be great to have this in ci-configuration, so that we can change workerType names across all repos simultaneously

  • it'd be great to allow overriding this in a try push (maybe by just supplying a URL to a different worker-types.yml?)

    For Windows workerTypes, pmoore and grenade often do try pushes to run builds/tests on "beta" workertypes. That's a nice model and it would be great to support it more naturally.

  • it'd be great if this could later be expanded to allow proportional allocation

    When we upgraded mac tests from buildbot + buildbot-bridge to taskcluster workers, we reformatted them in batches, and added some custom code that would send N% of requests to the old worker-type and (100-N)% to the new worker-types. We did so in a stable fashion (so that a particular task was always on the same worker-type).

This slightly decreases the amount of code that needs to know how to determine this.

Currently the scopes are handled in some test-specific code. However, there is
logic not to be in generic code.

Some of those sound like useful ideas, and some of them I'm not sure of. I will keep the surface area of the code that care about the mapping to real names small, so that we can extend it to handle some of those use cases easier in the future.

Keywords: leave-open
Pushed by mozilla@hocat.ca:
https://hg.mozilla.org/integration/autoland/rev/421bdcc103d3
[taskgraph] Set worker `os` and `implementation` earlier in job transform; r=dustin
https://hg.mozilla.org/integration/autoland/rev/722b3915da31
[taskgraph] Move handling of windows scopes to taskgraph.transfroms.task; r=dustin
Pushed by mozilla@hocat.ca:
https://hg.mozilla.org/integration/autoland/rev/6b1f78426763
[taskgraph] Set worker `os` and `implementation` earlier in job transform; r=dustin
https://hg.mozilla.org/integration/autoland/rev/29168c60c4e6
[taskgraph] Move handling of windows scopes to taskgraph.transfroms.task; r=dustin
Flags: needinfo?(mozilla)

:dustin, I've included a sketch of what I'm thinking, can you have look over it, and see if you think it is reasonable?

Flags: needinfo?(dustin)
Attachment #9049255 - Attachment description: Bug 1532783: [sketch] Implement worker aliases. → Bug 1532783: Implement worker aliases;

This adds worker-type alias that has dedicated workers at level-3 for running
instrumented builds, but uses a test worker type at other levels.

Comment on attachment 9051101 [details]
Bug 1532783: Add worker types for running instrumented builds;

Revision D23576 was moved to bug 1535132. Setting attachment 9051101 [details] to obsolete.

Attachment #9051101 - Attachment is obsolete: true
Flags: needinfo?(dustin)
Blocks: 1535132
Pushed by mozilla@hocat.ca:
https://hg.mozilla.org/integration/autoland/rev/4eabf4f36fef
Implement worker aliases; r=aki,glandium,jmaher,dustin
Pushed by mozilla@jorgk.com:
https://hg.mozilla.org/comm-central/rev/2120bf85232a
Port bug 1532783 - Implement worker aliases. rs=bustage-fix

Hi all, Rob isn't here so I pushed this with a "selection" of workers that sounded familiar. AFAIK, TB doesn't do android, PGO and aarch64 also seemed unfamiliar.

Can you please let me know what I should add or subtract.

Pushed by mozilla@hocat.ca:
https://hg.mozilla.org/integration/autoland/rev/cef374e9b298
[taskgraph] Switch to using worker aliases for docker-worker and generic-worker; r=dustin
https://hg.mozilla.org/integration/autoland/rev/49006e43876f
[taskgraph] Remove entries from WORKER_TYPES that correspond to workers with aliases; r=dustin
Pushed by mozilla@jorgk.com:
https://hg.mozilla.org/comm-central/rev/0d3f162fe5bb
Port bug 1532783: [taskgraph] Switch to using worker aliases for docker-worker and generic-worker. rs=bustage-fix
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Blocks: 1565378
You need to log in before you can comment on or make changes to this bug.