Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Secrets should be more tightly knit into Builders #41

Open
milescrabill opened this issue Feb 5, 2020 · 1 comment
Open

Secrets should be more tightly knit into Builders #41

milescrabill opened this issue Feb 5, 2020 · 1 comment
Labels
enhancement New feature or request

Comments

@milescrabill
Copy link
Contributor

Right now secrets are more or less an afterthought - a YAML file specifies secret locations and values, and they are dumped onto the filesystem.

The issue is that we re-use builders for multiple deployment environments. For example, level 1 builders (untrusted) in firefox-ci-tc use the same docker_worker_gcp builder as the community-tc deployment. The difference comes when baking the image, when the secrets file is specified.

This presents an opportunity for user error, if the secrets file is incorrectly specified, the wrong secrets are used for the wrong environment, etc.

We should tie secrets more closely to builders, and consider having a builder per environment / deployment. We already sort of do this with the trusted / L3 builder. Secrets could become part of the builder config, and a builder could specify a filename key with an expected secrets mapping.

This would translate fairly well to password stores like sops and pass which store files on disk, and we could support decryption options so that decrypted secrets don't have to be stored on disk to use with monopacker.

So, instead of passing SECRETS_FILE=/path/to/secrets, the secrets file to use would be configured for the builder, and a root secrets directory and decryption command would be configured on the command line, i.e. SECRETS_STORE=~/.password-store/docker-worker/yaml/

This is still an idea, but I think it would help address a pain point with monopacker as it stands.

@milescrabill milescrabill added the enhancement New feature or request label Feb 5, 2020
@djmitche
Copy link
Contributor

djmitche commented May 26, 2020

From https://github.com/taskcluster/taskcluster/projects/9:


Secrets should be per-builder, rather than global to all builders.

Secrets handling in tc-admin might be a good example.

Operations that require secrets should fail if they are not present (for example, I just accidentally built images without secrets)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants