From d78835c1e69a10d3f691e6740145ad53f908da46 Mon Sep 17 00:00:00 2001 From: ya-luotao Date: Thu, 12 Mar 2026 16:37:45 +0800 Subject: [PATCH 1/2] fix(aws): derive AMI name prefix from var.prefix The Packer template names AMIs as "${var.prefix}orch-", but all node pool modules had image_family_prefix hardcoded to "e2b-orch-". This breaks AMI lookup for any custom PREFIX (e.g. "e2bdev-" produces "e2bdev-orch-" AMIs that Terraform can't find). Introduce local.ami_family_prefix computed from var.prefix and use it for all node pools. Also wire build_image_family_prefix which was previously missing from main.tf (silently falling back to the hardcoded default in the submodule). Co-Authored-By: Claude Opus 4.6 (1M context) --- iac/provider-aws/main.tf | 12 ++++++++---- iac/provider-aws/variables.tf | 20 -------------------- 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/iac/provider-aws/main.tf b/iac/provider-aws/main.tf index b879668666..ab4c3e9c5e 100644 --- a/iac/provider-aws/main.tf +++ b/iac/provider-aws/main.tf @@ -71,6 +71,9 @@ locals { clickhouse_pool_name = "clickhouse" clickhouse_jobs_prefix = "clickhouse" + # AMI name prefix must match what Packer produces: "${var.prefix}orch-" + ami_family_prefix = "${var.prefix}orch-" + redis_cluster_url = var.redis_managed ? "rediss://${module.redis[0].endpoint_address}:${local.redis_port}" : "" redis_tls_ca_base64 = var.redis_managed ? module.redis[0].endpoint_ca_pem_base64 : "" redis_url = local.redis_cluster_url == "" ? "redis.service.consul:${local.redis_port}" : "" @@ -105,7 +108,7 @@ module "cluster" { consul_gossip_encryption_key = module.init.cluster.consul_gossip_encryption_key control_server_cluster_size = var.control_server_cluster_size - control_server_image_family_prefix = var.control_server_image_family_prefix + control_server_image_family_prefix = local.ami_family_prefix control_server_machine_type = var.control_server_machine_type control_server_target_group_arns = [aws_lb_target_group.nomad.arn] control_server_security_group_ids = [aws_security_group.cluster_node.id] @@ -126,7 +129,7 @@ module "cluster" { api_node_pool_name = local.api_pool_name api_cluster_size = var.api_cluster_size - api_image_family_prefix = var.api_image_family_prefix + api_image_family_prefix = local.ami_family_prefix api_machine_type = var.api_server_machine_type api_security_group_ids = [aws_security_group.cluster_node.id] api_target_group_arns = [ @@ -136,6 +139,7 @@ module "cluster" { build_node_pool_name = local.build_pool_name build_cluster_size = var.build_cluster_size + build_image_family_prefix = local.ami_family_prefix build_machine_type = var.build_server_machine_type build_server_nested_virtualization = var.build_server_nested_virtualization build_security_group_ids = [aws_security_group.cluster_node.id] @@ -143,7 +147,7 @@ module "cluster" { client_node_pool_name = local.client_pool_name client_cluster_size = var.client_cluster_size - client_image_family_prefix = var.client_image_family_prefix + client_image_family_prefix = local.ami_family_prefix client_machine_type = var.client_server_machine_type client_security_group_ids = [aws_security_group.cluster_node.id] client_server_nested_virtualization = var.client_server_nested_virtualization @@ -151,7 +155,7 @@ module "cluster" { clickhouse_az = "${data.aws_region.current.name}a" clickhouse_cluster_size = var.clickhouse_cluster_size - clickhouse_image_family_prefix = var.clickhouse_image_family_prefix + clickhouse_image_family_prefix = local.ami_family_prefix clickhouse_machine_type = var.clickhouse_server_machine_type clickhouse_node_pool_name = local.clickhouse_pool_name clickhouse_security_group_ids = [aws_security_group.cluster_node.id] diff --git a/iac/provider-aws/variables.tf b/iac/provider-aws/variables.tf index d9f771bf3d..4200c17510 100644 --- a/iac/provider-aws/variables.tf +++ b/iac/provider-aws/variables.tf @@ -44,11 +44,6 @@ variable "api_server_machine_type" { default = "t3.xlarge" } -variable "api_image_family_prefix" { - type = string - default = "e2b-orch-" -} - variable "ingress_count" { type = number default = 1 @@ -69,11 +64,6 @@ variable "clickhouse_server_machine_type" { default = "t3.xlarge" } -variable "clickhouse_image_family_prefix" { - type = string - default = "e2b-orch-" -} - variable "client_cluster_size" { type = number default = 1 @@ -95,21 +85,11 @@ variable "client_node_labels" { default = [] } -variable "client_image_family_prefix" { - type = string - default = "e2b-orch-" -} - variable "control_server_machine_type" { type = string default = "t3.medium" } -variable "control_server_image_family_prefix" { - type = string - default = "e2b-orch-" -} - variable "orchestrator_port" { type = number default = 5008 From 144fc397f4a439c97ce8a5199584934a51328dd6 Mon Sep 17 00:00:00 2001 From: ya-luotao Date: Thu, 12 Mar 2026 21:22:41 +0800 Subject: [PATCH 2/2] fix: keep per-node-pool AMI prefix overridable Per review: restore image_family_prefix variables with default="" and use conditional evaluation so each node pool can still be overridden independently. When empty (default), falls back to local.ami_family_prefix derived from var.prefix. Co-Authored-By: Claude Opus 4.6 (1M context) --- iac/provider-aws/main.tf | 8 ++++---- iac/provider-aws/variables.tf | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/iac/provider-aws/main.tf b/iac/provider-aws/main.tf index ab4c3e9c5e..e0fc86b2ac 100644 --- a/iac/provider-aws/main.tf +++ b/iac/provider-aws/main.tf @@ -108,7 +108,7 @@ module "cluster" { consul_gossip_encryption_key = module.init.cluster.consul_gossip_encryption_key control_server_cluster_size = var.control_server_cluster_size - control_server_image_family_prefix = local.ami_family_prefix + control_server_image_family_prefix = var.control_server_image_family_prefix != "" ? var.control_server_image_family_prefix : local.ami_family_prefix control_server_machine_type = var.control_server_machine_type control_server_target_group_arns = [aws_lb_target_group.nomad.arn] control_server_security_group_ids = [aws_security_group.cluster_node.id] @@ -129,7 +129,7 @@ module "cluster" { api_node_pool_name = local.api_pool_name api_cluster_size = var.api_cluster_size - api_image_family_prefix = local.ami_family_prefix + api_image_family_prefix = var.api_image_family_prefix != "" ? var.api_image_family_prefix : local.ami_family_prefix api_machine_type = var.api_server_machine_type api_security_group_ids = [aws_security_group.cluster_node.id] api_target_group_arns = [ @@ -147,7 +147,7 @@ module "cluster" { client_node_pool_name = local.client_pool_name client_cluster_size = var.client_cluster_size - client_image_family_prefix = local.ami_family_prefix + client_image_family_prefix = var.client_image_family_prefix != "" ? var.client_image_family_prefix : local.ami_family_prefix client_machine_type = var.client_server_machine_type client_security_group_ids = [aws_security_group.cluster_node.id] client_server_nested_virtualization = var.client_server_nested_virtualization @@ -155,7 +155,7 @@ module "cluster" { clickhouse_az = "${data.aws_region.current.name}a" clickhouse_cluster_size = var.clickhouse_cluster_size - clickhouse_image_family_prefix = local.ami_family_prefix + clickhouse_image_family_prefix = var.clickhouse_image_family_prefix != "" ? var.clickhouse_image_family_prefix : local.ami_family_prefix clickhouse_machine_type = var.clickhouse_server_machine_type clickhouse_node_pool_name = local.clickhouse_pool_name clickhouse_security_group_ids = [aws_security_group.cluster_node.id] diff --git a/iac/provider-aws/variables.tf b/iac/provider-aws/variables.tf index 4200c17510..3b8204c97f 100644 --- a/iac/provider-aws/variables.tf +++ b/iac/provider-aws/variables.tf @@ -44,6 +44,11 @@ variable "api_server_machine_type" { default = "t3.xlarge" } +variable "api_image_family_prefix" { + type = string + default = "" +} + variable "ingress_count" { type = number default = 1 @@ -64,6 +69,11 @@ variable "clickhouse_server_machine_type" { default = "t3.xlarge" } +variable "clickhouse_image_family_prefix" { + type = string + default = "" +} + variable "client_cluster_size" { type = number default = 1 @@ -85,11 +95,21 @@ variable "client_node_labels" { default = [] } +variable "client_image_family_prefix" { + type = string + default = "" +} + variable "control_server_machine_type" { type = string default = "t3.medium" } +variable "control_server_image_family_prefix" { + type = string + default = "" +} + variable "orchestrator_port" { type = number default = 5008