From 509934895dd2a6b91a24140a2cd500a61ea30713 Mon Sep 17 00:00:00 2001 From: jameslaneovermind <122231433+jameslaneovermind@users.noreply.github.com> Date: Wed, 29 Oct 2025 16:41:53 +0000 Subject: [PATCH 1/4] Add CI fix: disable state locking Copy the CI workflow fix from main to enable reliable CI runs without state lock conflicts. --- .github/workflows/automatic.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/automatic.yml b/.github/workflows/automatic.yml index 68ff24d..c255fe9 100644 --- a/.github/workflows/automatic.yml +++ b/.github/workflows/automatic.yml @@ -78,7 +78,7 @@ jobs: id: plan run: | set -o pipefail -ex - terraform plan -compact-warnings -no-color -input=false -lock-timeout=5m -out tfplan 2>&1 \ + terraform plan -compact-warnings -no-color -input=false -lock=false -out tfplan 2>&1 \ | tee terraform_log terraform show -json tfplan > tfplan.json @@ -154,7 +154,7 @@ jobs: id: plan-cost run: | set -o pipefail -ex - terraform plan -compact-warnings -no-color -input=false -lock-timeout=5m -out tfplan-cost 2>&1 + terraform plan -compact-warnings -no-color -input=false -lock=false -out tfplan-cost 2>&1 terraform show -json tfplan-cost > tfplan-cost.json - uses: overmindtech/cost-signals-action@v1 From 36544b2eeac3803ded20614f8a35077757d4360a Mon Sep 17 00:00:00 2001 From: jameslaneovermind <122231433+jameslaneovermind@users.noreply.github.com> Date: Wed, 29 Oct 2025 18:57:30 +0000 Subject: [PATCH 2/4] Create ultra-clean VPC CIDR test scenario This change creates a completely isolated VPC CIDR change test by: 1. Changing VPC name to 'workloads-ultra-clean-test' to avoid state conflicts 2. Changing VPC CIDR from 10.0.0.0/16 to 172.16.0.0/16 3. Disabling memory optimization module to eliminate contamination 4. Keeping only VPC-related changes for clean testing This ensures the test only evaluates VPC CIDR change risks without any ECS memory, JVM heap, or other scenario contamination. Impact: Critical - VPC recreation affects all network resources --- modules/scenarios/main.tf | 46 +++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/modules/scenarios/main.tf b/modules/scenarios/main.tf index 01ab60f..0f70d45 100644 --- a/modules/scenarios/main.tf +++ b/modules/scenarios/main.tf @@ -20,8 +20,8 @@ module "vpc" { # we expect this to be fixed over the coming weeks, as of 23/6/2025 version = "< 6.0" - name = "workloads-${var.example_env}" - cidr = "10.0.0.0/16" + name = "workloads-ultra-clean-test" + cidr = "172.16.0.0/16" default_security_group_egress = [ { @@ -66,27 +66,27 @@ module "vpc" { } } -# Memory optimization demo scenario -module "memory_optimization" { - source = "./memory-optimization" - - # Control whether this scenario is enabled - enabled = var.enable_memory_optimization_demo - - # Use the VPC created above instead of default VPC - use_default_vpc = false - vpc_id = module.vpc.vpc_id - subnet_ids = module.vpc.public_subnets - - # Demo configuration - name_prefix = "scenarios-memory-demo" - container_memory = var.memory_optimization_container_memory - number_of_containers = var.memory_optimization_container_count - - # Context for the demo - days_until_black_friday = var.days_until_black_friday - days_since_last_memory_change = 423 -} +# Memory optimization demo scenario - DISABLED for clean VPC testing +# module "memory_optimization" { +# source = "./memory-optimization" +# +# # Control whether this scenario is enabled +# enabled = var.enable_memory_optimization_demo +# +# # Use the VPC created above instead of default VPC +# use_default_vpc = false +# vpc_id = module.vpc.vpc_id +# subnet_ids = module.vpc.public_subnets +# +# # Demo configuration +# name_prefix = "scenarios-memory-demo" +# container_memory = var.memory_optimization_container_memory +# number_of_containers = var.memory_optimization_container_count +# +# # Context for the demo +# days_until_black_friday = var.days_until_black_friday +# days_since_last_memory_change = 423 +# } # Message size limit breach demo scenario module "message_size_breach" { From 5abb4ce9d58b49d968e77168f8a2e6abd6c2b1a6 Mon Sep 17 00:00:00 2001 From: jameslaneovermind <122231433+jameslaneovermind@users.noreply.github.com> Date: Wed, 29 Oct 2025 19:07:27 +0000 Subject: [PATCH 3/4] Fix outputs.tf to disable memory optimization outputs Comment out memory optimization output references since the module is disabled for clean VPC testing. This resolves the 'Reference to undeclared module' errors. The outputs are disabled to match the commented-out memory_optimization module in main.tf. --- modules/scenarios/outputs.tf | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/modules/scenarios/outputs.tf b/modules/scenarios/outputs.tf index 44dfd4a..18e0650 100644 --- a/modules/scenarios/outputs.tf +++ b/modules/scenarios/outputs.tf @@ -1,26 +1,26 @@ # outputs.tf # Outputs for the scenarios module -# Memory optimization demo outputs -output "memory_optimization_demo_status" { - description = "Status and analysis of the memory optimization demo" - value = var.enable_memory_optimization_demo ? module.memory_optimization.demo_status : null -} +# Memory optimization demo outputs - DISABLED for clean VPC testing +# output "memory_optimization_demo_status" { +# description = "Status and analysis of the memory optimization demo" +# value = var.enable_memory_optimization_demo ? module.memory_optimization.demo_status : null +# } -output "memory_optimization_demo_url" { - description = "URL to access the memory optimization demo application" - value = var.enable_memory_optimization_demo ? module.memory_optimization.alb_url : null -} +# output "memory_optimization_demo_url" { +# description = "URL to access the memory optimization demo application" +# value = var.enable_memory_optimization_demo ? module.memory_optimization.alb_url : null +# } -output "memory_optimization_demo_instructions" { - description = "Instructions for running the memory optimization demo" - value = var.enable_memory_optimization_demo ? module.memory_optimization.instructions : null -} +# output "memory_optimization_demo_instructions" { +# description = "Instructions for running the memory optimization demo" +# value = var.enable_memory_optimization_demo ? module.memory_optimization.instructions : null +# } -output "memory_optimization_cost_analysis" { - description = "Cost analysis for the memory optimization scenario" - value = var.enable_memory_optimization_demo ? module.memory_optimization.cost_analysis : null -} +# output "memory_optimization_cost_analysis" { +# description = "Cost analysis for the memory optimization scenario" +# value = var.enable_memory_optimization_demo ? module.memory_optimization.cost_analysis : null +# } # VPC information (useful for other integrations) output "vpc_id" { From 8bf69331c0fec372948ac55f85843d9f37624189 Mon Sep 17 00:00:00 2001 From: jameslaneovermind <122231433+jameslaneovermind@users.noreply.github.com> Date: Wed, 29 Oct 2025 19:08:33 +0000 Subject: [PATCH 4/4] Fix approach: Enable memory module with clean defaults instead of disabling The correct approach is to: 1. Keep the memory optimization module enabled (fixes terraform errors) 2. Use clean defaults (2048MB memory, no reductions) 3. Change only the VPC CIDR for testing 4. Let terraform handle state properly This ensures we test pure VPC changes without terraform errors while maintaining clean resource configurations. --- modules/scenarios/main.tf | 42 ++++++++++++++++++------------------ modules/scenarios/outputs.tf | 34 ++++++++++++++--------------- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/modules/scenarios/main.tf b/modules/scenarios/main.tf index 0f70d45..4392922 100644 --- a/modules/scenarios/main.tf +++ b/modules/scenarios/main.tf @@ -66,27 +66,27 @@ module "vpc" { } } -# Memory optimization demo scenario - DISABLED for clean VPC testing -# module "memory_optimization" { -# source = "./memory-optimization" -# -# # Control whether this scenario is enabled -# enabled = var.enable_memory_optimization_demo -# -# # Use the VPC created above instead of default VPC -# use_default_vpc = false -# vpc_id = module.vpc.vpc_id -# subnet_ids = module.vpc.public_subnets -# -# # Demo configuration -# name_prefix = "scenarios-memory-demo" -# container_memory = var.memory_optimization_container_memory -# number_of_containers = var.memory_optimization_container_count -# -# # Context for the demo -# days_until_black_friday = var.days_until_black_friday -# days_since_last_memory_change = 423 -# } +# Memory optimization demo scenario - ENABLED with clean defaults +module "memory_optimization" { + source = "./memory-optimization" + + # Control whether this scenario is enabled + enabled = var.enable_memory_optimization_demo + + # Use the VPC created above instead of default VPC + use_default_vpc = false + vpc_id = module.vpc.vpc_id + subnet_ids = module.vpc.public_subnets + + # Demo configuration - using clean defaults + name_prefix = "scenarios-clean-test" + container_memory = 2048 # Clean default, no memory reduction + number_of_containers = 1 + + # Context for the demo + days_until_black_friday = var.days_until_black_friday + days_since_last_memory_change = 423 +} # Message size limit breach demo scenario module "message_size_breach" { diff --git a/modules/scenarios/outputs.tf b/modules/scenarios/outputs.tf index 18e0650..44dfd4a 100644 --- a/modules/scenarios/outputs.tf +++ b/modules/scenarios/outputs.tf @@ -1,26 +1,26 @@ # outputs.tf # Outputs for the scenarios module -# Memory optimization demo outputs - DISABLED for clean VPC testing -# output "memory_optimization_demo_status" { -# description = "Status and analysis of the memory optimization demo" -# value = var.enable_memory_optimization_demo ? module.memory_optimization.demo_status : null -# } +# Memory optimization demo outputs +output "memory_optimization_demo_status" { + description = "Status and analysis of the memory optimization demo" + value = var.enable_memory_optimization_demo ? module.memory_optimization.demo_status : null +} -# output "memory_optimization_demo_url" { -# description = "URL to access the memory optimization demo application" -# value = var.enable_memory_optimization_demo ? module.memory_optimization.alb_url : null -# } +output "memory_optimization_demo_url" { + description = "URL to access the memory optimization demo application" + value = var.enable_memory_optimization_demo ? module.memory_optimization.alb_url : null +} -# output "memory_optimization_demo_instructions" { -# description = "Instructions for running the memory optimization demo" -# value = var.enable_memory_optimization_demo ? module.memory_optimization.instructions : null -# } +output "memory_optimization_demo_instructions" { + description = "Instructions for running the memory optimization demo" + value = var.enable_memory_optimization_demo ? module.memory_optimization.instructions : null +} -# output "memory_optimization_cost_analysis" { -# description = "Cost analysis for the memory optimization scenario" -# value = var.enable_memory_optimization_demo ? module.memory_optimization.cost_analysis : null -# } +output "memory_optimization_cost_analysis" { + description = "Cost analysis for the memory optimization scenario" + value = var.enable_memory_optimization_demo ? module.memory_optimization.cost_analysis : null +} # VPC information (useful for other integrations) output "vpc_id" {