We have a number of inputs that go into Gecko tasks:
- docker image
- tooltool artifacts
- toolchain artifacts
- previous builds
- pypi / npm / etc modules
and we define those in various ways: requirements files, tooltool files, docker image task definition locations, env vars, etc. Having to audit or verify the inputs to a task is a very complex ask right now.
If we could define explicit inputs to a task,
- worker downloads inputs
- for any given shas, verify shas
- for any given pubkeys, verify signatures
- use the docker image downloaded once it passes verification
- pass the other artifacts into the task environment
- we can upload an inputs manifest with the above information
That's much easier to audit. It also could be the initial steps towards limiting outbound traffic once the task starts. This reminds me of @petemoore 's inputs/outputs to tasks proposal... where tasks can be chained like commandline pipes, although it's not one-dimensional (many-to-many piping).
We have a number of inputs that go into Gecko tasks:
and we define those in various ways: requirements files, tooltool files, docker image task definition locations, env vars, etc. Having to audit or verify the inputs to a task is a very complex ask right now.
If we could define explicit inputs to a task,
That's much easier to audit. It also could be the initial steps towards limiting outbound traffic once the task starts. This reminds me of @petemoore 's inputs/outputs to tasks proposal... where tasks can be chained like commandline pipes, although it's not one-dimensional (many-to-many piping).