https://github.com/iknowjavascript/terraform-aws-runner-resources
Implementation for article "Building the Self-Hosted On-Demand Runner Infrastructure with Terraform" using "terraform-aws-github-runner" module.
https://github.com/iknowjavascript/terraform-aws-runner-resources
aws cicd github-actions terraform
Last synced: 3 months ago
JSON representation
Implementation for article "Building the Self-Hosted On-Demand Runner Infrastructure with Terraform" using "terraform-aws-github-runner" module.
- Host: GitHub
- URL: https://github.com/iknowjavascript/terraform-aws-runner-resources
- Owner: iKnowJavaScript
- License: mit
- Created: 2023-11-23T01:46:47.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-11-23T03:15:30.000Z (over 1 year ago)
- Last Synced: 2025-04-06T02:12:07.999Z (3 months ago)
- Topics: aws, cicd, github-actions, terraform
- Language: HCL
- Homepage: https://lnkd.in/dKWgT4zD
- Size: 8.79 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://github.com/philips-labs/terraform-aws-github-runner/blob/main/README.md). 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
```bash
cd ../lambdas-download
terraform init
terraform apply
cd -
```Before running Terraform, ensure the GitHub app is configured. See the [configuration details](https://github.com/philips-labs/terraform-aws-github-runner/blob/main/README.md#usages) for more details.
```bash
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:
```bash
terraform output webhook_secret
terraform output -json webhook_secret
```## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.3.0 |
| [aws](#requirement\_aws) | ~> 5.2 |
| [local](#requirement\_local) | ~> 2.0 |
| [random](#requirement\_random) | ~> 3.0 |## Providers
| Name | Version |
|------|---------|
| [random](#provider\_random) | 3.5.1 |## Modules
| Name | Source | Version |
|------|--------|---------|
| [runners](#module\_runners) | philips-labs/github-runner/aws | 5.3.0 |
| [webhook\_github\_app](#module\_webhook\_github\_app) | philips-labs/github-runner/aws//modules/webhook-github-app | 5.3.0 |## Resources
| Name | Type |
|------|------|
| [random_id.random](https://registry.terraform.io/providers/hashicorp/random/latest/docs/resources/id) | resource |## Inputs
| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [environment](#input\_environment) | Environment name, used as prefix | `string` | `null` | no |
| [github\_app](#input\_github\_app) | GitHub for API usages. |object({| n/a | yes |
id = string
key_base64 = string
})## Outputs
| Name | Description |
|------|-------------|
| [runners](#output\_runners) | n/a |
| [webhook\_endpoint](#output\_webhook\_endpoint) | n/a |
| [webhook\_secret](#output\_webhook\_secret) | n/a |