Comments (15)
It looks like that the support for ephemeral was finally merged on actions/runner#660
Would be nice to have support here aswell for a better scale-up/down...
from terraform-aws-github-runner.
Implementing this is in progress. Closing this in favour of #1372. Will track the implementation of this there.
from terraform-aws-github-runner.
Thanks for creating the suggestion, and I really support this idea. Any idea for iimplementation. There are potential some caveats:
- Not every event that we recieve from GitHub is matching 1-1 with a job. So that part needs then more adjustment.
- Not easy, but possible to detect that a job is finish, requires maybe a small agent on the host.
- Having hot instances only requires to configure the runner at the moment a job should start, a command via a SSM document seems a logical choice.
from terraform-aws-github-runner.
For similar reasons to the OP, this is a feature I also like. A related project, envoyproxy/ci-infra does this by having the runners in an ASG, and detaching on job start.
from terraform-aws-github-runner.
Upvoting this as well. I don't want a bad job to leave behind stuff that could impact a future job.
from terraform-aws-github-runner.
Would be great if we can support this strategy as well. Really like the idee. Hope I have the next months some time to do some experiments!
from terraform-aws-github-runner.
It looks like there is a --once
flag you can pass to the runner on startup but it's not officially supported yet and apparently has some issues. actions/runner#510. Maybe the best solution is to wait for this to be officially supported?
from terraform-aws-github-runner.
GitHub is also started with testing an event for workflow jobs to handle a better sclaing
from terraform-aws-github-runner.
It isn't clear whether or not the new --ephemeral
flag is supported for GHES. Regardless, I see this as an essential tool, and would love to see it included here.
from terraform-aws-github-runner.
is there anyone that can test the ephemeral flag with GHES?
from terraform-aws-github-runner.
It has been confirmed in actions/runner#660 that --ephemeral
is not yet supported on GHES
from terraform-aws-github-runner.
What changes are required to implement this? I understand that it is not available for GHES but in other environments this would be amazing. https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners
from terraform-aws-github-runner.
From the top of my head:
- Add the
--ephemeral
flag to the code that installs the runner on the EC2 instance - Figure out a way to terminate the EC2 instance after the runner is done
- Implement new scaling logic for ephemeral runners, because the current logic will probably not work (e.g. the idle configuration)
- TEST! 😄
Of course all of this needs to be configurable and backwards compatible for GHES.
from terraform-aws-github-runner.
It would be nice if the idle configuration meant how many runners should be registered and waiting for jobs. Every time one getsa job, the scale up lambda would register another.
from terraform-aws-github-runner.
--ephemeral will ship in the next version of GHES (but as I said above it requires server changes to fix the race condition with client side only assignment)
from terraform-aws-github-runner.
Related Issues (20)
- Gracefully terminate old runners when AMI changes HOT 3
- Lambda ami housekeeper and the ssm parameter store HOT 4
- Default example fails HOT 2
- When to increase size of the pool HOT 3
- Using upstream module from terraform registry is not user friendly HOT 3
- Question: For different AWS profiles and vpc's do I need separate Github apps? HOT 4
- Pool is creating multiple instances while the first is still registering HOT 2
- Runner Lables no longer honored after 5.2.1->5.8.0 upgrade HOT 9
- Error: ssmHousekeeper handler not found HOT 2
- Scale down lambda terminates active runners HOT 2
- Permission Issue When Running multi-runner solution: Access denied for ssm:GetParameter action HOT 3
- Runner i-xxxx is not idle in GitHub and NOT counted as part of the pool HOT 3
- SSM parameters can exceed 4K limit breaking terraform apply HOT 4
- Add support for multiple type of platforms HOT 1
- Docker containers no longer inherit credentials from EC2 instance HOT 1
- Add the ability to use custom labels only HOT 2
- AMI Parameter cannot be a cross account parameter HOT 1
- speedup instance creation for bursty workflows HOT 2
- CodeStar Connections Being replaced by CodeConnections in April 2025 HOT 1
- optional FIFO queue on workflow job events queue HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from terraform-aws-github-runner.