Closed Bug 1492665 Opened 6 years ago Closed 6 years ago

[ci-admin] support configuring different TC installs based on rootUrl

Categories

(Firefox Build System :: Task Configuration, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: dustin, Assigned: dustin)

References

Details

Attachments

(3 files)

This will allow us to configure staging and production clusters from the same configuration.
I think this basically entails upgrading the taskcluster-client version.  I'd like to also have some way for the configs to differ between the two -- for example, crontasks should not be enabled in staging.  I need to think about how best to represent that so that it doesn't get in the way of production.
It seems natural to introduce the concept of an "environment", probably either "staging" and "production".

I'd like to have some configuration of the rootUrl for each environment, with a check of TASKCLUSTER_ROOT_URL on startup to ensure that it matches.  That will help prevent "accidents" applying staging configs to production.  It's probably also best to require that the environment be specified on every run (with no default), again to avoid mistakes.

What I haven't figured out is, how to apply different configurations in staging and production.  Such differences would be primarily to avoid introducing too much load to the staging cluster.  Actions, crons, and (with bug 1225243) decisions all come from the hooks service, so just some minor post-processing of the hooks should do the trick.  How's this: for each environment, we define a transformation function that is applied to the set of resources after it is generated.  For production, it should do nothing.  For staging, it can do things like strip schedules from hooks.

All of this should probably be defined in ci-configuration.  Something like

# environments.yml
production:
  rootUrl: https://taskcluster.net

staging:
  rootUrl: https://taskcluster-staging.prod.mozgcp.net
  modify-resources:
    - remove-hook-schedules
    - change-something-else  # I'm sure we'll think of something else..
Please feel free to disagree with the overall design here!
Comment on attachment 9012242 [details]
Bug 1492665 - add environments.yml

Brian Stack [:bstack] has approved the revision.
Attachment #9012242 - Flags: review+
Comment on attachment 9012243 [details]
Bug 1492665 - add support for environments.yml

Brian Stack [:bstack] has approved the revision.
Attachment #9012243 - Flags: review+
Comment on attachment 9012244 [details]
Bug 1492665 - add modify_resources support

Brian Stack [:bstack] has approved the revision.
Attachment #9012244 - Flags: review+
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: