Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Refactor autoscaler (githubrunnerscalesetlistener) in a way that it would be easier to use with other implementations (like ECS) #3779

Hi-Fi started this conversation in Ideas
Refactor autoscaler (githubrunnerscalesetlistener) in a way that it would be easier to use with other implementations (like ECS) #3779
Oct 19, 2024 * 1 comment
Return to top
Discussion options

Hi-Fi
Oct 19, 2024

Currently githubrunnerscalesetlistener bundles Kubernetes usage quite deeply, which requires quite a lot of code duplication when using same approach within e.g. AWS ECS, Azure Container Apps or Google Cloud Run. It would be nice if the code could be refactored in a way that actual implementation of job/container/pod creation would be abstracted away so that same code could easier be reused with other platforms.

I have made a PoC myself towards those 3 mentioned platforms (ECS, ACA, Cloud Run), and it was very helpful to be able to utilize the Actions service connections (from github.com/actions/actions-runner-controller/github/actions) . But the actual polling and message hanling had to be copied explicitly as those are part of main package (https://github.com/actions/actions-runner-controller/blob/master/cmd/githubrunnerscalesetlistener/autoScalerService.go#L100C19-L100C33).

Within my PoC (https://github.com/Hi-Fi/gha-runners-on-managed-env/blob/main/autoscaler/main.go#L70) there's already a bit of example of the abstraction, as the actual service just takes in handler that fullfills the interface needs, allowing easily to change the target of the spawned things.

It might be that this option still wouldn't enable usage of mentioned platforms same way as Kubernetes, but would allow e.g. easy way to autoscale runners (without container support) in those.

You must be logged in to vote

Replies: 1 comment

Comment options

Hi

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Ideas
Labels
None yet
2 participants