Add label support to runner configuration
What does this MR do?
Adds support for labels in runner configuration by introducing a Labels field to both global config and runner-specific settings. Global labels are automatically propagated to individual runner configurations during config loading, and labels are included in job requests sent to GitLab.
Why was this MR needed?
This enables runners to be tagged with custom labels that can be used for cost metrics and runner identification, providing more flexible runner management capabilities.
What's the best way to test this MR?
- Add labels to the global config section and verify they appear in runner configurations
- Add runner-specific labels and confirm they're preserved alongside global labels
- Verify labels are properly sent in job request payloads to GitLab (GitLab will just ignore the new field for now, but it's possible to confirm the payload from Runner is now including Labels)
What are the relevant issue numbers?
https://gitlab.com/gitlab-org/ci-cd/shared-runners/infrastructure/-/issues/311+s
Edited by Davis Bickford