Skip to content
This repository has been archived by the owner on Aug 29, 2024. It is now read-only.

GARO - serverless (AWS Lambda) GitHub Actions self-hosted EC2 runner orchestration tool

License

Notifications You must be signed in to change notification settings

alphagov/github-actions-runner-orchestration

Repository files navigation

github-actions-runner-orchestration (GARO)

Experimental Test and deploy to staging and production Create AMI

What is it?

GARO is an experimental serverless (AWS Lambda) API for running GitHub Action runners in self-hosted, ephemeral EC2 instances.

How to use?

The garo client will start up an instance and wait for it to be active.
See the client README for details and an example.

There are also the workflows here which use this tool.

Requirements for garo client (or direct API use)

  • subnets with external internet access (recommend via a NAT gateway)
  • security group for the runner instances
  • 2x IAM roles (see terraform_module for these)
    1. role for assuming from API (with random external ID added as a condition)
    2. role for instances to use (allow assume from the first role)
  • PAT in SSM (/github/runner/pat) with repo write access (for adding runners to a repo)
  • Params in GitHub secrets / environment variables (recommend using GitHub Environments with branch protections)

Development

See the development documentation.

About

GARO - serverless (AWS Lambda) GitHub Actions self-hosted EC2 runner orchestration tool

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published