-
Notifications
You must be signed in to change notification settings - Fork 4
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
add ephemeral runners #302
Conversation
PR Description updated to latest commit (2656d95) |
PR Review
Code feedback:
✨ Review tool usage guide:Overview: The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
See the review usage page for a comprehensive guide on using this tool. |
PR Code Suggestions
✨ Improve tool usage guide:Overview:
See the improve usage page for a comprehensive guide on using this tool. |
0d57169
to
b1e729f
Compare
66604e1
to
5a3c438
Compare
User description
Terraform module Self-Hosted Scalable GitHub Actions runners on AWS based on the official Philips AWS Module. https://github.com/philips-labs/terraform-aws-github-runner under MIT License.
This PR removes some features and modules not required for our infra use case and makes use of more granular modules.
Scale up and down based on GitHub events
Scale down to zero when no jobs are running
Runners are created on-demand and terminated after use (ephemeral runners)
Runners are created on spot instances
use custom AMI, define the instance types and subnets to use.
OS support: Linux (x64/arm64) and Windows
CI workflow for deployment
Type
enhancement
Description
Changes walkthrough
variables.tf
Add Variables for Configuring AWS, GitHub App, Runners, and Lambdas
github-runners/terraform/autoscaling/variables.tf
VPC, subnets, tags, GitHub app parameters, runner settings, and more.
enabling ephemeral runners, job queued check, and managed runner
security group.
size, timeout, and S3 bucket details for lambda functions.
OS support.
main.tf
Configure AWS Resources, Runners, and Lambda Functions
github-runners/terraform/autoscaling/main.tf
module, and runners module.
main.tf
Setup AWS Launch Template and Security Groups for Runners
github-runners/terraform/autoscaling/modules/runners/main.tf
instance type, security groups, and user data.
variables.tf
Add Variables for Runner Binaries Syncer Lambda Configuration
github-runners/terraform/autoscaling/modules/runner-binaries-syncer/variables.tf
function.
details, and logging.
runner-binaries-syncer.tf
Configure Runner Binaries Syncer Lambda and Trigger
github-runners/terraform/autoscaling/modules/runner-binaries-syncer/runner-binaries-syncer.tf
policies, and cloudwatch event rule.
deployment.
main.tf
Setup Lambda Function for Runner Pool Management
github-runners/terraform/autoscaling/modules/runners/pool/main.tf
on schedule.
variables.tf
Add Variables for Termination Watcher Lambda Configuration
github-runners/terraform/autoscaling/modules/termination-watcher/variables.tf
function.
and environment variables.