/terraform-aws-runner-resources

Implementation for article "Building the Self-Hosted On-Demand Runner Infrastructure with Terraform" using "terraform-aws-github-runner" module.

Primary LanguageHCLMIT LicenseMIT

Action runners deployment

This module shows how to create GitHub action runners. Lambda release will be downloaded from GitHub.

Usages

Steps for the full setup, such as creating a GitHub app can be found in the root module's README. First download the Lambda releases from GitHub. Alternatively you can build the lambdas locally by running the lambda-download module, Kindly move the downloaded files from lambda-download folder to the this root directory and you might want to update the specify S3 bucket that also holds the binary too.

Ensure you have set the version in modules/lambdas-download/main.tf for running the example. The version needs to be set to a GitHub release version, see https://github.com/philips-labs/terraform-aws-github-runner/releases

cd ../lambdas-download
terraform init
terraform apply
cd -

Before running Terraform, ensure the GitHub app is configured. See the configuration details for more details.

terraform init
terraform apply

The module will try to update the GitHub App webhook and secret (only linux/mac). You can receive the webhook details by running:

terraform output webhook_secret
terraform output -json webhook_secret

Requirements

Name Version
terraform >= 1.3.0
aws ~> 5.2
local ~> 2.0
random ~> 3.0

Providers

Name Version
random 3.5.1

Modules

Name Source Version
runners philips-labs/github-runner/aws 5.3.0
webhook_github_app philips-labs/github-runner/aws//modules/webhook-github-app 5.3.0

Resources

Name Type
random_id.random resource

Inputs

Name Description Type Default Required
environment Environment name, used as prefix string null no
github_app GitHub for API usages.
object({
id = string
key_base64 = string
})
n/a yes

Outputs

Name Description
runners n/a
webhook_endpoint n/a
webhook_secret n/a