From a321448b8ea623247e118806f17b25760852382b Mon Sep 17 00:00:00 2001 From: Jean Schmidt Date: Thu, 11 Dec 2025 15:55:13 -0800 Subject: [PATCH 1/2] [ALI] add variables to enable pin linux and linux arm64 images Signed-off-by: Jean Schmidt --- terraform-aws-github-runner/main.tf | 2 ++ .../modules/runners-instances/launch-template.tf | 8 +++++--- .../modules/runners-instances/variables.tf | 12 ++++++++++++ terraform-aws-github-runner/variables.tf | 12 ++++++++++++ 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/terraform-aws-github-runner/main.tf b/terraform-aws-github-runner/main.tf index fe5e8bf29e..e10a41d557 100644 --- a/terraform-aws-github-runner/main.tf +++ b/terraform-aws-github-runner/main.tf @@ -188,6 +188,8 @@ module "runners_instances" { block_device_mappings = var.block_device_mappings runner_architecture = local.runner_architecture + ami_id_pining_linux = var.ami_id_pining_linux + ami_id_pining_linux_arm64 = var.ami_id_pining_linux_arm64 ami_owners_linux = var.ami_owners_linux ami_owners_linux_arm64 = var.ami_owners_linux_arm64 ami_owners_windows = var.ami_owners_windows diff --git a/terraform-aws-github-runner/modules/runners-instances/launch-template.tf b/terraform-aws-github-runner/modules/runners-instances/launch-template.tf index 2db15cdf56..ea3fc4f523 100644 --- a/terraform-aws-github-runner/modules/runners-instances/launch-template.tf +++ b/terraform-aws-github-runner/modules/runners-instances/launch-template.tf @@ -31,6 +31,7 @@ locals { } data "aws_ami" "runner_ami_linux" { + count = var.ami_id_pining_linux == null ? 1 : 0 most_recent = "true" dynamic "filter" { @@ -45,6 +46,7 @@ data "aws_ami" "runner_ami_linux" { } data "aws_ami" "runner_ami_linux_arm64" { + count = var.ami_id_pining_linux_arm64 == null ? 1 : 0 most_recent = "true" dynamic "filter" { @@ -81,7 +83,7 @@ resource "aws_launch_template" "linux_runner" { instance_initiated_shutdown_behavior = "terminate" - image_id = data.aws_ami.runner_ami_linux.id + image_id = var.ami_id_pining_linux == null ? data.aws_ami.runner_ami_linux.id : var.ami_id_pining_linux instance_type = var.instance_type key_name = var.key_name @@ -138,7 +140,7 @@ resource "aws_launch_template" "linux_runner_nvidia" { instance_initiated_shutdown_behavior = "terminate" - image_id = data.aws_ami.runner_ami_linux.id + image_id = var.ami_id_pining_linux == null ? data.aws_ami.runner_ami_linux.id : var.ami_id_pining_linux instance_type = var.instance_type key_name = var.key_name @@ -195,7 +197,7 @@ resource "aws_launch_template" "linux_arm64_runner" { instance_initiated_shutdown_behavior = "terminate" - image_id = data.aws_ami.runner_ami_linux_arm64.id + image_id = var.ami_id_pining_linux_arm64 == null ? data.aws_ami.runner_ami_linux_arm64.id : var.ami_id_pining_linux_arm64 instance_type = var.instance_type key_name = var.key_name diff --git a/terraform-aws-github-runner/modules/runners-instances/variables.tf b/terraform-aws-github-runner/modules/runners-instances/variables.tf index e249c50876..29beb91f38 100644 --- a/terraform-aws-github-runner/modules/runners-instances/variables.tf +++ b/terraform-aws-github-runner/modules/runners-instances/variables.tf @@ -62,6 +62,18 @@ variable "instance_type" { default = "m5.large" } +variable "ami_id_pining_linux" { + description = "The AMI ID to pin the linux action runner instances to." + type = string + default = null +} + +variable "ami_id_pining_linux_arm64" { + description = "The AMI ID to pin the linux action runner instances to." + type = string + default = null +} + variable "ami_filter_linux" { description = "List of maps used to create the AMI filter for the action runner AMI." type = map(list(string)) diff --git a/terraform-aws-github-runner/variables.tf b/terraform-aws-github-runner/variables.tf index 0bea807826..7a25b0e7e7 100644 --- a/terraform-aws-github-runner/variables.tf +++ b/terraform-aws-github-runner/variables.tf @@ -253,6 +253,18 @@ variable "block_device_mappings" { default = {} } +variable "ami_id_pining_linux" { + description = "The AMI ID to pin the linux action runner instances to." + type = string + default = null +} + +variable "ami_id_pining_linux_arm64" { + description = "The AMI ID to pin the linux action runner instances to." + type = string + default = null +} + variable "ami_filter_linux" { description = "List of maps used to create the AMI filter for the action runner AMI." type = map(list(string)) From 72d1cc5f6da577baac16ead863e932435bf6dff6 Mon Sep 17 00:00:00 2001 From: Jean Schmidt Date: Thu, 11 Dec 2025 16:05:11 -0800 Subject: [PATCH 2/2] 20251211160511 --- .../modules/runners-instances/launch-template.tf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/terraform-aws-github-runner/modules/runners-instances/launch-template.tf b/terraform-aws-github-runner/modules/runners-instances/launch-template.tf index ea3fc4f523..f82fc66b44 100644 --- a/terraform-aws-github-runner/modules/runners-instances/launch-template.tf +++ b/terraform-aws-github-runner/modules/runners-instances/launch-template.tf @@ -83,7 +83,7 @@ resource "aws_launch_template" "linux_runner" { instance_initiated_shutdown_behavior = "terminate" - image_id = var.ami_id_pining_linux == null ? data.aws_ami.runner_ami_linux.id : var.ami_id_pining_linux + image_id = var.ami_id_pining_linux == null ? data.aws_ami.runner_ami_linux[0].id : var.ami_id_pining_linux instance_type = var.instance_type key_name = var.key_name @@ -140,7 +140,7 @@ resource "aws_launch_template" "linux_runner_nvidia" { instance_initiated_shutdown_behavior = "terminate" - image_id = var.ami_id_pining_linux == null ? data.aws_ami.runner_ami_linux.id : var.ami_id_pining_linux + image_id = var.ami_id_pining_linux == null ? data.aws_ami.runner_ami_linux[0].id : var.ami_id_pining_linux instance_type = var.instance_type key_name = var.key_name @@ -197,7 +197,7 @@ resource "aws_launch_template" "linux_arm64_runner" { instance_initiated_shutdown_behavior = "terminate" - image_id = var.ami_id_pining_linux_arm64 == null ? data.aws_ami.runner_ami_linux_arm64.id : var.ami_id_pining_linux_arm64 + image_id = var.ami_id_pining_linux_arm64 == null ? data.aws_ami.runner_ami_linux_arm64[0].id : var.ami_id_pining_linux_arm64 instance_type = var.instance_type key_name = var.key_name