From 607b84cbdbd74c4707e9321e9c70448ab4141288 Mon Sep 17 00:00:00 2001 From: Gabriele Bozzola Date: Wed, 29 Oct 2025 13:42:59 -0700 Subject: [PATCH 1/2] fix(runners): support for AMIs with parentheses in the name Some AMIs, like the `AWS Deep Learning Base GPU AMI (Ubuntu 24.04)`, have parentheses in the name. Parentheses are not allowed in SSM tags, leading to an error. This commit strips the parentheses out of the name. --- modules/runners/main.tf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/runners/main.tf b/modules/runners/main.tf index 7184b08ee0..690d6cecbb 100644 --- a/modules/runners/main.tf +++ b/modules/runners/main.tf @@ -102,7 +102,8 @@ resource "aws_ssm_parameter" "runner_ami_id" { tags = merge( local.tags, { - "ghr:ami_name" = data.aws_ami.runner.name + # Remove parentheses from AMI name to comply with SSM tag constraints + "ghr:ami_name" = replace(data.aws_ami.runner.name, "/[()]/", "") }, { "ghr:ami_creation_date" = data.aws_ami.runner.creation_date From 52acc964fe3d531878b6ab9f6edff2038f091d28 Mon Sep 17 00:00:00 2001 From: Gabriele Bozzola Date: Wed, 29 Oct 2025 14:30:10 -0700 Subject: [PATCH 2/2] docs: fix typo --- docs/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/index.md b/docs/index.md index 9cc0ccd184..cc1fe474bd 100644 --- a/docs/index.md +++ b/docs/index.md @@ -31,7 +31,7 @@ The diagram below shows the architecture of the module, groups are indicating th ### Webhook -The moment a GitHub action workflow requiring a `self-hosted` runner is triggered, GitHub will try to find a runner which can execute the workload. See [additional notes](additional_notes.md) for how the selection is made. The module can be deployed in two modes. One mode called `direct`, after accepting the [`workflow_job` event](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events/webhook-events-and-payloads#workflow_job) event the module will dispatch the event to a SQS queue on which the scale-up function will act. The second mode, `eventbridge` will funnel events via the AWS EventBridge. the EventBridge enables act on other events then only the `workflow_job` event with status `queued`. besides that the EventBridge supports replay functionality. For future extensions to act on events or create a data lake we will relay on the EventBridge. +The moment a GitHub action workflow requiring a `self-hosted` runner is triggered, GitHub will try to find a runner which can execute the workload. See [additional notes](additional_notes.md) for how the selection is made. The module can be deployed in two modes. One mode called `direct`, after accepting the [`workflow_job` event](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events/webhook-events-and-payloads#workflow_job) event the module will dispatch the event to a SQS queue on which the scale-up function will act. The second mode, `eventbridge` will funnel events via the AWS EventBridge. the EventBridge enables act on other events then only the `workflow_job` event with status `queued`. besides that the EventBridge supports replay functionality. For future extensions to act on events or create a data lake we will rely on the EventBridge. For receiving the `workflow_job` event by the webhook (lambda), a webhook needs to be created in GitHub. The same app as for API calls can be used to create the webhook. Or a dedicated webhook can be defined.