Autop upgrade of Gitlab Runners
Problem to solve
I'm seeing a lot of my internal customers wanting to use Gitlab runners in CI and CD pipelines. Potentially we could end up with hundreds of runners out in our data centres. Keeping Gitlab-runners up to date is becoming an increasingly difficult manual job and should be automated.
Gitlab should use this feature, when I upgrade Gitlab to a newer version it should either automatically update all it's attached runners or provide me with a button on the runners admin page where I can click a button to trigger an upgrade.
The goal would be to automate the upgrade of Gitlab runners so an operations team does not have to manually login to every server and replace the binary.
When I upgrade Gitlab I'd like it to include a repo for the latest Gitlab runners. Each Gitlab runner should then be pre- configured with a job that can allow it to pull from the repo and update it's binary. Maybe have a checkbox for auto or manual upgrade.
Permissions and Security
If the Gitlab-runner binary on the target server is owned by the Gitlab-runner user no additional permissions should be required. The upgrade process would be no different to a normal Gitlab-runner shell job i.e. Git clone the repo containing the new code and some shell commands to replace and restart the runner.
What does success look like, and how can we measure that?
Upgrade of all Gitlab runenrs from the Runners admin page, no requirement to ssh into a target server to run an upgrade.