Some thoughts about pipeline routing

At the moment, we can use DRONE_RUNNER_LABELS to mark up particular runners to process particular types of jobs.

This is useful (indeed, I use it), but slightly limited.

The limitation is that, unless I’m desperately wrong (which is always possible), there has to be a 1:1 match in both directions.

  • A pipeline marked “type: dumbo” will only run on a runner marked “type: dumbo”

  • A runner marked “type: dumbo” will only run a pipeline item marked “type: dumbo”

In my world, at least, we have runners that could potentially run anything… and runners (generally making use of capacity on older machines) that can only run tiny jobs (type: bambi)

What would be really useful would be a “one directional” match…

… by which I mean either a way of flagging certain pipeline steps as “run on whatever’s available”, or a way of flagging certain runners as “feel free to run anything.”

I don’t need both… but EITHER would allow me to tag my runners and pipelines more efficiently.

Obviously, the ultimate would be a wildcarding (in either pipelines OR runners, or both :slight_smile: ), so I could say this runner is tagged with “DRONE_RUNNER_LABELS=type:*”…
… and then be capable of running either dumbos or bambis, or for that matter.

[Non-Disney metaphors are available, but heh…]