Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deployment: Make Nirin Runners Ephemeral and Autoscale using Kubernetes #2

Open
CodeGat opened this issue Oct 16, 2023 · 1 comment

Comments

@CodeGat
Copy link
Contributor

CodeGat commented Oct 16, 2023

Background
Having 4 permanent runners is cool and all, but we need to think about:

  • What happens if we need more runners at some point in the future - are we going to register these all individually? What about when PATs expire, we would need to go through each runner and reconfigure them, as noted in Set up Github Actions runners on NCI for deployment workflows build-ci#5 (comment)
  • What happens if we need more runners during a job? For example, a highly-parallelized job.
  • What happens if we don't need all the runners at any one time? There isn't much point in keeping them all listening.

The Solution
Utilize runners that are ephemeral (the runner is created and destroyed as needed) and autoscaling (the amount of runners at any one time conform to the workload). We can achieve this using Kubernetes and a GitHub-created runner controller called the Actions Runner Controller.
See here: https://docs.github.com/en/actions/hosting-your-own-runners/managing-self-hosted-runners/autoscaling-with-self-hosted-runners

Considerations

  • Can we install Kubernetes on Nirin? If we can install Docker, surely we can install Kubernetes.
  • What happens if we have a highly parallelized job that spawns many runners, that could make all runners extremely slow?

Tagging @jo-basevi as she has had some Kubernetes experience

References ACCESS-NRI/build-ci#5

@CodeGat CodeGat transferred this issue from ACCESS-NRI/build-ci Oct 26, 2023
@CodeGat
Copy link
Contributor Author

CodeGat commented Nov 1, 2023

Update for today:

@CodeGat CodeGat removed their assignment Nov 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants