From fe75894a719aad7a51c26e034fb5b0f24b68201d Mon Sep 17 00:00:00 2001 From: Yong Wu Date: Fri, 27 Feb 2026 10:14:01 -0800 Subject: [PATCH] Update cpu intance types with more cores and memory --- terraform/autoscalers.tf | 1 + terraform/modules/autoscaler/main.tf | 7 +++++++ terraform/modules/autoscaler/variables.tf | 5 +++++ terraform/variables.tf | 1 + terraform/vars/tvm-ci-prod.auto.tfvars | 14 ++++++++------ 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/terraform/autoscalers.tf b/terraform/autoscalers.tf index a7a0d353..c27c0e16 100644 --- a/terraform/autoscalers.tf +++ b/terraform/autoscalers.tf @@ -108,4 +108,5 @@ module "Jenkins-Autoscalers" { max_size = each.value.max_size on_demand_base_capacity = each.value.on_demand_base_capacity on_demand_percentage_above_base_capacity = each.value.on_demand_percentage_above_base_capacity + additional_instance_types = lookup(each.value, "additional_instance_types", []) } diff --git a/terraform/modules/autoscaler/main.tf b/terraform/modules/autoscaler/main.tf index 6b7ec90c..523864a6 100644 --- a/terraform/modules/autoscaler/main.tf +++ b/terraform/modules/autoscaler/main.tf @@ -62,6 +62,13 @@ resource "aws_autoscaling_group" "agents" { launch_template_id = aws_launch_template.autoscaler.id version = aws_launch_template.autoscaler.latest_version } + + dynamic "override" { + for_each = var.additional_instance_types + content { + instance_type = override.value + } + } } } lifecycle { diff --git a/terraform/modules/autoscaler/variables.tf b/terraform/modules/autoscaler/variables.tf index ca7c3d8f..fd803aa8 100644 --- a/terraform/modules/autoscaler/variables.tf +++ b/terraform/modules/autoscaler/variables.tf @@ -53,3 +53,8 @@ variable "on_demand_base_capacity" { variable "on_demand_percentage_above_base_capacity" { type = number } + +variable "additional_instance_types" { + type = list(string) + default = [] +} diff --git a/terraform/variables.tf b/terraform/variables.tf index 810ea54f..acae5760 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -63,6 +63,7 @@ variable "autoscaler_types" { max_size = number on_demand_percentage_above_base_capacity = number on_demand_base_capacity = number + additional_instance_types = optional(list(string), []) })) default = {} } diff --git a/terraform/vars/tvm-ci-prod.auto.tfvars b/terraform/vars/tvm-ci-prod.auto.tfvars index 7460f970..89442b8e 100644 --- a/terraform/vars/tvm-ci-prod.auto.tfvars +++ b/terraform/vars/tvm-ci-prod.auto.tfvars @@ -31,7 +31,7 @@ jenkins_pub_key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBZvGmyspz5yaZ2n0H2U2XG8x autoscaler_types = { "Prod-Autoscaler-Jenkins-CPU" = { image_family = "jenkins-stock-agent-x64" - agent_instance_type = "c4.4xlarge" + agent_instance_type = "c6a.8xlarge" labels = "CPU" min_size = 0 max_size = 90 @@ -40,7 +40,7 @@ autoscaler_types = { } "Prod-Autoscaler-Jenkins-CPU-Large" = { image_family = "jenkins-stock-agent-x64" - agent_instance_type = "c4.4xlarge" + agent_instance_type = "c6a.8xlarge" labels = "CPU-LARGE" min_size = 0 max_size = 90 @@ -49,7 +49,7 @@ autoscaler_types = { } "Prod-Autoscaler-Jenkins-CPU-Large-SPOT" = { image_family = "jenkins-stock-agent-x64" - agent_instance_type = "c4.4xlarge" + agent_instance_type = "c6a.8xlarge" labels = "CPU-LARGE-SPOT" min_size = 0 max_size = 90 @@ -58,7 +58,7 @@ autoscaler_types = { } "Prod-Autoscaler-Jenkins-CPU-SPOT" = { image_family = "jenkins-stock-agent-x64" - agent_instance_type = "c4.4xlarge" + agent_instance_type = "c6a.8xlarge" labels = "CPU-SPOT" min_size = 0 max_size = 90 @@ -67,7 +67,7 @@ autoscaler_types = { } "Prod-Autoscaler-Jenkins-CPU-Small" = { image_family = "jenkins-stock-agent-x64" - agent_instance_type = "r5.large" + agent_instance_type = "r6a.xlarge" labels = "CPU-SMALL" min_size = 0 max_size = 400 @@ -76,7 +76,7 @@ autoscaler_types = { } "Prod-Autoscaler-Jenkins-CPU-Small-Spot" = { image_family = "jenkins-stock-agent-x64" - agent_instance_type = "r5.large" + agent_instance_type = "r6a.xlarge" labels = "CPU-SMALL-SPOT" min_size = 0 max_size = 100 @@ -91,6 +91,7 @@ autoscaler_types = { max_size = 150 on_demand_percentage_above_base_capacity = 100 on_demand_base_capacity = 0 + additional_instance_types = ["g4dn.2xlarge", "g4dn.4xlarge", "g5.xlarge", "g5.2xlarge", "g5.4xlarge"] } "Prod-Autoscaler-Jenkins-GPU-SPOT" = { image_family = "jenkins-gpu-agent-x64" @@ -100,6 +101,7 @@ autoscaler_types = { max_size = 64 on_demand_percentage_above_base_capacity = 0 on_demand_base_capacity = 0 + additional_instance_types = ["g4dn.2xlarge", "g4dn.4xlarge", "g5.xlarge", "g5.2xlarge", "g5.4xlarge"] } "Prod-Autoscaler-Jenkins-ARM" = { image_family = "jenkins-stock-agent-arm"