Ability to override runner tags via a new global keyword

Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.

Proposal

This proposal is to provide a way to globally override all jobs' tags values. This is useful when a certain Runner has issues and we want to switch all jobs to a new runner temporarily.

Currently if CI/CD jobs have tags configured, the user must go and change each job to get jobs to be picked up by a different/temporary runner. If we provide a way to override the jobs' tags with a global keyword, the user can switch from a problematic runner to a temporary one quickly.

For example add default:overrides:tags to override all jobs' tags, where job1's runner tag will be overridden by the default:overrides:tags so it will be picked up by "my-runner":

default:
  tags:
    - default-tag
  overrides:
    tags:
      - my-runner

job1:
  tags:
    - job-specific-runner

Related Ticket - internal only: https://gitlab.zendesk.com/agent/tickets/409255

Edited by 🤖 GitLab Bot 🤖