Caution
Archived as not required anymore
Setup the a GitHub Actions Runner in an existing kubernetes cluster
To setup the runner controller see the actions runner controller module from the terraform-kubectl-github-actions-runner-controller repository.
module "actions_runner" {
source = "../.."
repo_owner = "infinite-automations"
repo_name = "terraform-kubectl-github-actions-runner"
labels = var.labels
namespace = "github-actions-runner"
create_namespace = true
name = "github-actions-runner"
runner_service_account_name = "github-actions-runner"
job_service_account_name = "github-actions-job"
runner_image = "summerwind/actions-runner:latest"
ephemeral = true
min_count = 1
max_count = 3
scale_down_delay_seconds = 300
metrics = [
{
type = "PercentageRunnersBusy"
scaleUpThreshold = "0.75"
scaleDownThreshold = "0.25"
scaleUpFactor = "2"
scaleDownFactor = "0.5"
},
{
"type" = "TotalNumberOfQueuedAndInProgressWorkflowRuns"
"repository" = "infinite-automations/terraform-kubectl-github-actions-runner"
"name" = "total"
}
]
storage_class_name = "standard"
storage_size = "100Mi"
depends_on = [module.actions_runner_controller]
}| Name | Version |
|---|---|
| terraform | >= 0.13 |
| kubectl | >= 1.14.0 |
| kubernetes | >= 2.23.0 |
| Name | Version |
|---|---|
| kubectl | >= 1.14.0 |
| kubernetes | >= 2.23.0 |
| Name | Type |
|---|---|
| kubectl_manifest.runner | resource |
| kubectl_manifest.runner_autoscaler | resource |
| kubernetes_config_map.job-template | resource |
| kubernetes_namespace.this | resource |
| kubernetes_role.runner | resource |
| kubernetes_role_binding.runner | resource |
| kubernetes_secret.job | resource |
| kubernetes_secret.runner | resource |
| kubernetes_service_account.job | resource |
| kubernetes_service_account.runner | resource |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| repo_name | The name of the repository | string |
n/a | yes |
| repo_owner | The owner of the repository | string |
n/a | yes |
| create_namespace | If true, the namespace will be created | bool |
true |
no |
| ephemeral | If true, the runner will be ephemeral | bool |
true |
no |
| job_service_account_name | The name of the service account for the job | string |
"github-actions-job" |
no |
| labels | The labels for the runner | list(string) |
[ |
no |
| max_count | The maximum number of runners | number |
3 |
no |
| metrics | The metrics for the runner | list(map(string)) |
[ |
no |
| min_count | The minimum number of runners | number |
1 |
no |
| name | The name of the runner deployment | string |
"github-actions-runner" |
no |
| namespace | The namespace to deploy the runner controller into | string |
"github-actions-runner" |
no |
| runner_image | The image for the runner | string |
"summerwind/actions-runner:latest" |
no |
| runner_service_account_name | The name of the service account for the runner | string |
"github-actions-runner" |
no |
| scale_down_delay_seconds | The number of seconds from scaling out to wait before scaling down | number |
300 |
no |
| storage_class_name | The storage class name for the runner | string |
"default" |
no |
| storage_size | The storage size for the runner | string |
"100Mi" |
no |