Problem to solve
We run GitLab Runners in Kubernetes with the following workflow:
- Deploy runners with initial tags (e.g.,
testing
) - Run e2e tests against these runners to verify their health
- Upon successful tests, update the runner tags to make them available for developer jobs
Questions for Discussion
- Is this a valid approach for managing runner lifecycle in Kubernetes?
- Would moving to immutable runners be a better pattern? (i.e., create new runners with final tags, test them, and destroy/replace old ones)
- What are the pros/cons of each approach that other teams have experienced?
- Are there existing tools/patterns we should consider for either approach?
Looking forward to community insights and experiences with similar setups.
Context
- Environment: Kubernetes
- Using: gitlab-runner Kubernetes executor
- Looking to understand best practices for runner lifecycle management
Versions
Please select whether options apply, and add the version information.
- Self-managed
-
GitLab.com
SaaS - Dedicated
- Self-hosted Runners
Versions
- GitLab Runner:
17.4.0