Releases: philips-labs/terraform-aws-github-runner
v6.0.0
6.0.0 (2024-12-20)
This release contains several breaking changes
- Terraform AWS provider minimal version is upgraded to support node 22
- EventBridge is used by default, opt out can be configured
- FIFO queued are removed, an update will re-crate all queues. This can cause loss of messages. When the EventBridge is enabled messages can be replayed if needed.
- Deprecated variables are removed
⚠ BREAKING CHANGES
- Enable eventbridge by default (#4320)
- remove deprecated metric feature flag (#4319)
- Upgrade Node to 22 (LTS) (#4318)
- remove deprecated variables (#4073)
- Remove FIFO queues (#4072)
- remove deprecated runners_scale_up_Lambda_memory_size as it breaks CDKTF (#4276) @stefanrusu-loctax
Features
Bug Fixes
v5.21.0
5.21.0 (2024-12-20)
Features
- Natively support runner pre/post job hooks (#4263) (259a852) @winwinashwin
Bug Fixes
- Incorrect syncer binary location in tf outputs (#4274) (401a373), closes #4137 @winwinashwin
- lambda: bump @octokit/types from 13.6.1 to 13.6.2 in /lambdas in the octokit group (#4303) (9f76c4c)
- lambda: bump axios from 1.7.7 to 1.7.9 in /lambdas (#4305) (e3cd5b4)
- lambda: bump the aws group across 1 directory with 7 updates (#4314) (3f9b768)
v5.20.1
5.20.1 (2024-12-09)
Bug Fixes
- lambda: bump @octokit/types from 13.6.1 to 13.6.2 in /lambdas in the octokit group (#4291) (d8d7519)
- lambda: bump the aws group across 1 directory with 7 updates (#4288) (039f5db)
- lambda: bump the aws group in /lambdas with 4 updates (#4290) (eb9c123)
- lambda: bump the aws-powertools group in /lambdas with 4 updates (#4281) (e1f330b)
- lambda: bump typescript from 5.6.3 to 5.7.2 in /lambdas (#4293) (f6e4b92)
v5.20.0
5.20.0 (2024-11-19)
Features
- runners: add support to disable default labels (Linux) (#3491) (772e1a5) @jgutierrezglez
- runners: add support to disable default labels (Windows) (#4261) (ad9bcc4) @jgutierrezglez
Bug Fixes
v5.19.0
5.19.0 (2024-11-12)
Features
Bug Fixes
- dispatch only queued events to runners (#4257) (a0a8322)
- lambda: bump @octokit/auth-app from 6.1.2 to 6.1.3 in /lambdas in the octokit group (#4252) (25f3538)
- lambda: bump the aws group in /lambdas with 7 updates (#4251) (6a98712)
Migration notes
This release removes experimental / beta feature enable_workflow_job_events_queue
. When depending on the events on this queue you can migrate to using the EventBridgge.
Enable eventbridge
module "runners" {
...
eventbridge {
enable = true
}
...
Add rule to forward events to a queue
resource "aws_cloudwatch_event_rule" "workflow_job_in_progress" {
name = "workflow-job-in-progress"
event_bus_name = modules.runners.webhook.eventbridge.name # The name of the event bus output by the module
event_pattern = <<EOF
{
"detail-type": ["workflow_job"],
"detail": {
"action": ["in_progress"]
}
}
EOF
}
resource "aws_sqs_queue" "workflow_job_in_progress" {
name = "workflow_job_in_progress
}
resource "aws_sqs_queue_policy" "workflow_job_in_progress" {
queue_url = aws_sqs_queue.workflow_job_in_progress.id
policy = data.aws_iam_policy_document.sqs_policy.json
}
data "aws_iam_policy_document" "sqs_policy" {
statement {
sid = "AllowFromEventBridge"
actions = ["sqs:SendMessage"]
principals {
type = "Service"
identifiers = ["events.amazonaws.com"]
}
resources = [aws_sqs_queue.workflow_job_in_progress.arn]
condition {
test = "ArnEquals"
variable = "aws:SourceArn"
values = [aws_cloudwatch_event_rule.workflow_job_in_progress.arn]
}
}
}
v5.18.4
v5.18.3
v5.18.2
v5.18.1
5.18.1 (2024-10-29)
Bug Fixes
v5.18.0
5.18.0 (2024-10-28)
Features
Migration directions
This release is adding optional the EventBridge as option to the webhook. No matter if the feature is enabled or not resources are moved internally. Which will destroy all webhook related resources update to this verions.
To retain data for the Loggroup of the webhook or mmetrics for the webhook the resources not to be moved in the Terraform state. You can add HCL moved blocked to your deployment to instruct Terraform to move the resources instead of re-create.
Examples Terraform `moved` blockes
With module defaults or eventbridge is not eanavbled
# log group
moved {
from = module.<runner-module-name>.module.webhook.aws_cloudwatch_log_group.webhook
to = module.<runner-module-name>.module.webhook.module.direct[0].aws_cloudwatch_log_group.webhook
}
# lambda
moved {
from = module.<runner-module-name>.module.webhook.aws_lambda_function.webhook
to = module.<runner-module-name>.module.webhook.module.direct[0].aws_lambda_function.webhook
}
With EventBridge enabled
# log group
moved {
from = module.<runner-module-name>.module.webhook.aws_cloudwatch_log_group.webhook
to = module.<runner-module-name>.module.webhook.module.direct[0].aws_cloudwatch_log_group.webhook
}
# lambda
moved {
from = module.<runner-module-name>.module.webhook.aws_lambda_function.webhook
to = module.<runner-module-name>.module.webhook.module.direct[0].aws_lambda_function.webhook
}
Ater upgrade swithcing between webhook to EventBridge
When enable mode eventbridge
# log group
moved {
from = module.runners.module.webhook.module.direct[0].aws_cloudwatch_log_group.webhook
to = module.runners.module.webhook.module.eventbridge[0].aws_cloudwatch_log_group.webhook
}
# lambda
moved {
from = module.runners.module.webhook.module.direct[0].aws_lambda_function.webhook
to = module.runners.module.webhook.module.eventbridge[0].aws_lambda_function.webhook
}
Or vice versa for moving from eventbride
to webhook