Add support for config-only/wildcard platform properties
Context
At the moment, BuildGrid uses all the platform properties specified in an Action to determine which workers are capable of executing the Action. This is done by finding a worker whose platform properties provide a complete match for all the properties.
However, this approach doesn't make sense for every platform property. Specifically, it can sometimes be useful to use platform properties to pass information about the execution to the worker, such as the chrootRootDigest
property used by buildbox-run-userchroot. Currently all the potential values of properties like this need to be defined in the worker's command line, which limits flexibility and ease-of-use.
We should fix this by augmenting BuildGrid's Execution Service configuration. Currently, custom platform properties need to be defined in the YAML file. This definition is just the name of the property at the moment; we could extend it to include information about whether the property is intended for matching Actions to workers, or intended for more general communication of some information to the worker, such as in the chrootRootDigest
case.
Acceptance Criteria
It is possible to specify and set platform properties which will not be used for matching Actions to workers, but will still be passed through to workers for determining how to run an Action.