Garbage collect old/non-communicating gitlab-runners
Description
Hi,
I use server scaling groups inside of AWS and GCP to scale up and down my servers that host my gitlab-runners based on their CPU usage. Each runner has it's own token but they are assigned a project token once started to access their projects - but the servers are controlled by AWS thus the names/ips/etc of the hardware are all random.
They start the docker image, register to my gitlab server and shut down when the overall scaling groups CPU usage hits a specific threshold. We were never really concerned with this until the recent UI/UX changes (9.x I believe) where now Project Variables are listed on the same page as our now 97 pages of gitlab-runners which will cause Gitlab to load that page incredibly slowly.
Proposal
- Having 97 pages of runners load every time we want to change a project variable is very problematic. It can take from 30s to minutes to load this page now. It'd be helpful if we could have a setting that either did garbage collection of old runners that have not been in communication over X period (most of mine are at 4 months no communication)
or
- A bulk "remove" button in the gitlab runners page. For a few seconds I considered manually going through and cleaning these out (just didn't have time to write something up to use the gitlab api) except when I was on page 97 and removed my first old runner I was sent back to page 1. So that task doesn't sound fun.
You may have better ideas.
Links / references
You can see in this link that this page is currently displaying 1572 "available" shared runners (there's actually 7 online)
I wasn't sure if this would be CE or EE, I haven't submitted tickets here in awhile.
Thanks!