From d8d452d499a83b5581c4323db88b01028c4023d4 Mon Sep 17 00:00:00 2001 From: "Connor Bell (Makeshift)" Date: Thu, 21 Apr 2022 11:13:12 +0100 Subject: [PATCH 1/5] Make userdata gzipped in case the user provided userdata is long --- modules/runners/main.tf | 40 +++++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/modules/runners/main.tf b/modules/runners/main.tf index e1352b4175..c02a1366f1 100644 --- a/modules/runners/main.tf +++ b/modules/runners/main.tf @@ -39,6 +39,30 @@ locals { enable_job_queued_check = var.enable_job_queued_check == null ? !var.enable_ephemeral_runners : var.enable_job_queued_check } +data "template_cloudinit_config" "userdata" { + gzip = true + base64_encode = true + part { + filename = "00-init" + content_type = "text/x-shellscript" + content = templatefile(local.userdata_template, { + pre_install = var.userdata_pre_install + install_runner = templatefile(local.userdata_install_runner[var.runner_os], { + S3_LOCATION_RUNNER_DISTRIBUTION = var.s3_location_runner_binaries + RUNNER_ARCHITECTURE = var.runner_architecture + }) + post_install = var.userdata_post_install + start_runner = templatefile(local.userdata_start_runner[var.runner_os], {}) + ghes_url = var.ghes_url + ghes_ssl_verify = var.ghes_ssl_verify + ## retain these for backwards compatibility + environment = var.environment + enable_cloudwatch_agent = var.enable_cloudwatch_agent + ssm_key_cloudwatch_agent_config = var.enable_cloudwatch_agent ? aws_ssm_parameter.cloudwatch_agent_config_runner[0].name : "" + }) + } +} + data "aws_ami" "runner" { most_recent = "true" @@ -116,21 +140,7 @@ resource "aws_launch_template" "runner" { } - user_data = var.enabled_userdata ? base64encode(templatefile(local.userdata_template, { - pre_install = var.userdata_pre_install - install_runner = templatefile(local.userdata_install_runner[var.runner_os], { - S3_LOCATION_RUNNER_DISTRIBUTION = var.s3_location_runner_binaries - RUNNER_ARCHITECTURE = var.runner_architecture - }) - post_install = var.userdata_post_install - start_runner = templatefile(local.userdata_start_runner[var.runner_os], {}) - ghes_url = var.ghes_url - ghes_ssl_verify = var.ghes_ssl_verify - ## retain these for backwards compatibility - environment = var.environment - enable_cloudwatch_agent = var.enable_cloudwatch_agent - ssm_key_cloudwatch_agent_config = var.enable_cloudwatch_agent ? aws_ssm_parameter.cloudwatch_agent_config_runner[0].name : "" - })) : "" + user_data = var.enabled_userdata ? data.template_cloudinit_config.userdata.rendered : "" tags = local.tags From 2325e21ec3ef7a5797e5fe25f911ff1cfecc3994 Mon Sep 17 00:00:00 2001 From: "Connor Bell (Makeshift)" Date: Thu, 21 Apr 2022 11:34:24 +0100 Subject: [PATCH 2/5] user_data might not support gzip? --- modules/runners/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/runners/main.tf b/modules/runners/main.tf index c02a1366f1..2cd8bba0fa 100644 --- a/modules/runners/main.tf +++ b/modules/runners/main.tf @@ -40,7 +40,7 @@ locals { } data "template_cloudinit_config" "userdata" { - gzip = true + gzip = false base64_encode = true part { filename = "00-init" From 53446e0f37b178fda1bcf5562dac1874b58a1b1e Mon Sep 17 00:00:00 2001 From: "Connor Bell (Makeshift)" Date: Thu, 21 Apr 2022 11:39:12 +0100 Subject: [PATCH 3/5] Revert "user_data might not support gzip?" This reverts commit 2325e21ec3ef7a5797e5fe25f911ff1cfecc3994. --- modules/runners/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/runners/main.tf b/modules/runners/main.tf index 2cd8bba0fa..c02a1366f1 100644 --- a/modules/runners/main.tf +++ b/modules/runners/main.tf @@ -40,7 +40,7 @@ locals { } data "template_cloudinit_config" "userdata" { - gzip = false + gzip = true base64_encode = true part { filename = "00-init" From 043c77ddcd57e256b28c01636a3e7860e7d9b994 Mon Sep 17 00:00:00 2001 From: "Connor Bell (Makeshift)" Date: Thu, 21 Apr 2022 11:47:36 +0100 Subject: [PATCH 4/5] Add check for no userdata --- modules/runners/main.tf | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/runners/main.tf b/modules/runners/main.tf index c02a1366f1..4f975d7162 100644 --- a/modules/runners/main.tf +++ b/modules/runners/main.tf @@ -40,6 +40,8 @@ locals { } data "template_cloudinit_config" "userdata" { + count = var.enabled_userdata ? 1 : 0 + gzip = true base64_encode = true part { From 28e431762a52212909ffaca37d8630b0148d652b Mon Sep 17 00:00:00 2001 From: "Connor Bell (Makeshift)" Date: Thu, 21 Apr 2022 11:58:22 +0100 Subject: [PATCH 5/5] Oops, forgot count makes resources into an array --- modules/runners/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/runners/main.tf b/modules/runners/main.tf index 4f975d7162..97c69db3b1 100644 --- a/modules/runners/main.tf +++ b/modules/runners/main.tf @@ -142,7 +142,7 @@ resource "aws_launch_template" "runner" { } - user_data = var.enabled_userdata ? data.template_cloudinit_config.userdata.rendered : "" + user_data = var.enabled_userdata ? data.template_cloudinit_config.userdata[0].rendered : "" tags = local.tags