All of lore.kernel.org
 help / color / mirror / Atom feed
From: Luis Chamberlain <mcgrof@kernel.org>
To: Chuck Lever <cel@kernel.org>, Daniel Gomez <da.gomez@kruces.com>,
	kdevops@lists.linux.dev
Cc: Luis Chamberlain <mcgrof@kernel.org>
Subject: [PATCH v4 6/8] aws: replace static Kconfig files with dynamically generated ones
Date: Tue, 16 Sep 2025 17:34:47 -0700	[thread overview]
Message-ID: <20250917003451.2318229-7-mcgrof@kernel.org> (raw)
In-Reply-To: <20250917003451.2318229-1-mcgrof@kernel.org>

Remove old static AWS Kconfig files and update the configuration to
use dynamically generated files instead. This change:

- Removes 8 static Kconfig files (compute, location, and 6 instance types)
- Updates terraform/aws/Kconfig to source the .generated files
- Fixes Kconfig symbol generation to handle dashes in instance names
- Filters instance families to prevent mixing related families

The dynamic files now provide:
- 146 instance family configurations (vs 6 static ones)
- 34 AWS regions (vs static subset)
- 900+ instance types with current specs

Also fixes generator to:
- Convert dashes to underscores in Kconfig symbols (e.g., metal-24xl)
- Filter instances to exact family matches (r8g vs r8gd/r8gn)
- Ensure valid Kconfig syntax for all generated files

Generated-by: Claude AI
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
 terraform/aws/Kconfig                         |   4 +-
 terraform/aws/kconfigs/Kconfig.compute        | 118 ---
 terraform/aws/kconfigs/Kconfig.location       | 679 ------------------
 .../aws/kconfigs/instance-types/Kconfig.c7a   |  28 -
 .../aws/kconfigs/instance-types/Kconfig.i4i   |  33 -
 .../aws/kconfigs/instance-types/Kconfig.im4gn |  25 -
 .../kconfigs/instance-types/Kconfig.is4gen    |  25 -
 .../aws/kconfigs/instance-types/Kconfig.m5    |  48 --
 .../aws/kconfigs/instance-types/Kconfig.m7a   |  57 --
 terraform/aws/scripts/generate_aws_kconfig.py |  20 +-
 10 files changed, 18 insertions(+), 1019 deletions(-)
 delete mode 100644 terraform/aws/kconfigs/Kconfig.compute
 delete mode 100644 terraform/aws/kconfigs/Kconfig.location
 delete mode 100644 terraform/aws/kconfigs/instance-types/Kconfig.c7a
 delete mode 100644 terraform/aws/kconfigs/instance-types/Kconfig.i4i
 delete mode 100644 terraform/aws/kconfigs/instance-types/Kconfig.im4gn
 delete mode 100644 terraform/aws/kconfigs/instance-types/Kconfig.is4gen
 delete mode 100644 terraform/aws/kconfigs/instance-types/Kconfig.m5
 delete mode 100644 terraform/aws/kconfigs/instance-types/Kconfig.m7a

diff --git a/terraform/aws/Kconfig b/terraform/aws/Kconfig
index d4015cda..de8bc028 100644
--- a/terraform/aws/Kconfig
+++ b/terraform/aws/Kconfig
@@ -1,10 +1,10 @@
 if TERRAFORM_AWS
 
 menu "Resource Location"
-source "terraform/aws/kconfigs/Kconfig.location"
+source "terraform/aws/kconfigs/Kconfig.location.generated"
 endmenu
 menu "Compute"
-source "terraform/aws/kconfigs/Kconfig.compute"
+source "terraform/aws/kconfigs/Kconfig.compute.generated"
 endmenu
 menu "Storage"
 source "terraform/aws/kconfigs/Kconfig.storage"
diff --git a/terraform/aws/kconfigs/Kconfig.compute b/terraform/aws/kconfigs/Kconfig.compute
deleted file mode 100644
index 4b9c6efb..00000000
--- a/terraform/aws/kconfigs/Kconfig.compute
+++ /dev/null
@@ -1,118 +0,0 @@
-choice
-	prompt "AWS instance types"
-	help
-	  Instance types comprise varying combinations of hardware
-	  platform, CPU count, memory size, storage, and networking
-	  capacity. Select the type that provides an appropriate mix
-	  of resources for your preferred workflows.
-
-	  Some instance types are region- and capacity-limited.
-
-	  See https://aws.amazon.com/ec2/instance-types/ for
-	  details.
-
-config TERRAFORM_AWS_INSTANCE_TYPE_M5
-	bool "M5"
-	depends on TARGET_ARCH_X86_64
-	help
-	  This is a general purpose type powered by Intel Xeon®
-	  Platinum 8175M or 8259CL processors (Skylake or Cascade
-	  Lake).
-
-	  See https://aws.amazon.com/ec2/instance-types/m5/ for
-	  details.
-
-config TERRAFORM_AWS_INSTANCE_TYPE_M7A
-	bool "M7a"
-	depends on TARGET_ARCH_X86_64
-	help
-	  This is a general purpose type powered by 4th Generation
-	  AMD EPYC processors.
-
-	  See https://aws.amazon.com/ec2/instance-types/m7a/ for
-	  details.
-
-config TERRAFORM_AWS_INSTANCE_TYPE_I4I
-	bool "I4i"
-	depends on TARGET_ARCH_X86_64
-	help
-	  This is a storage-optimized type powered by 3rd generation
-	  Intel Xeon Scalable processors (Ice Lake) and use AWS Nitro
-	  NVMe SSDs.
-
-	  See https://aws.amazon.com/ec2/instance-types/i4i/ for
-	  details.
-
-config TERRAFORM_AWS_INSTANCE_TYPE_IS4GEN
-	bool "Is4gen"
-	depends on TARGET_ARCH_ARM64
-	help
-	  This is a Storage-optimized type powered by AWS Graviton2
-	  processors.
-
-	  See https://aws.amazon.com/ec2/instance-types/i4g/ for
-	  details.
-
-config TERRAFORM_AWS_INSTANCE_TYPE_IM4GN
-	bool "Im4gn"
-	depends on TARGET_ARCH_ARM64
-	help
-	  This is a storage-optimized type powered by AWS Graviton2
-	  processors.
-
-	  See https://aws.amazon.com/ec2/instance-types/i4g/ for
-	  details.
-
-config TERRAFORM_AWS_INSTANCE_TYPE_C7A
-	depends on TARGET_ARCH_X86_64
-	bool "c7a"
-	help
-	  This is a compute-optimized type powered by 4th generation
-	  AMD EPYC processors.
-
-	  See https://aws.amazon.com/ec2/instance-types/c7a/ for
-	  details.
-
-endchoice
-
-source "terraform/aws/kconfigs/instance-types/Kconfig.m5"
-source "terraform/aws/kconfigs/instance-types/Kconfig.m7a"
-source "terraform/aws/kconfigs/instance-types/Kconfig.i4i"
-source "terraform/aws/kconfigs/instance-types/Kconfig.is4gen"
-source "terraform/aws/kconfigs/instance-types/Kconfig.im4gn"
-source "terraform/aws/kconfigs/instance-types/Kconfig.c7a"
-
-choice
-	prompt "Linux distribution"
-	default TERRAFORM_AWS_DISTRO_DEBIAN
-	help
-	  Select a popular Linux distribution to install on your
-	  instances, or use the "Custom AMI image" selection to
-	  choose an image that is off the beaten path.
-
-config TERRAFORM_AWS_DISTRO_AMAZON
-	bool "Amazon Linux"
-
-config TERRAFORM_AWS_DISTRO_DEBIAN
-	bool "Debian"
-
-config TERRAFORM_AWS_DISTRO_FEDORA
-	bool "Fedora Core"
-
-config TERRAFORM_AWS_DISTRO_RHEL
-	bool "Red Hat Enterprise Linux"
-
-config TERRAFORM_AWS_DISTRO_SLES
-	bool "Suse Linux Enterprise Server"
-
-config TERRAFORM_AWS_DISTRO_CUSTOM
-	bool "Custom AMI image"
-
-endchoice
-
-source "terraform/aws/kconfigs/distros/Kconfig.amazon"
-source "terraform/aws/kconfigs/distros/Kconfig.debian"
-source "terraform/aws/kconfigs/distros/Kconfig.fedora"
-source "terraform/aws/kconfigs/distros/Kconfig.rhel"
-source "terraform/aws/kconfigs/distros/Kconfig.sles"
-source "terraform/aws/kconfigs/distros/Kconfig.custom"
diff --git a/terraform/aws/kconfigs/Kconfig.location b/terraform/aws/kconfigs/Kconfig.location
deleted file mode 100644
index e5dacb9d..00000000
--- a/terraform/aws/kconfigs/Kconfig.location
+++ /dev/null
@@ -1,679 +0,0 @@
-choice
-	prompt "AWS region"
-	default TERRAFORM_AWS_REGION_US_WEST_2
-	help
-	  Use this option to select the AWS region that hosts your
-	  compute and storage resources. If you do not explicitly
-	  specify a region, the US West (Oregon) region is the
-	  default.
-
-	  Once selected, you can stick with the default AV zone
-	  chosen by kdevops, or use:
-
-	    aws ec2 describe-availability-zones --region <region-name>
-
-	  to list the Availability Zones that are enabled for your
-	  AWS account. Enter your selection from this list using the
-	  TERRAFORM_AWS_AV_ZONE menu.
-
-	  If you wish to expand on the region list, send a patch after
-	  reading this list:
-
-	  https://docs.aws.amazon.com/general/latest/gr/rande.html
-
-	  Note that if you change region the AMI may change as well even
-	  for the same distribution. At least that applies to Amazon EC2
-	  optimized images. Use the AWS console, to set that up it will
-	  ask you for your credentials and then a region. Before adding
-	  an entry for ami image be sure you are on the region and then
-	  query with something like:
-
-	  aws ec2 describe-images --image-ids ami-0efa651876de2a5ce
-
-	  For instance, this AMI belongs to us-west-2 only. us-east* have
-	  other AMIs for the same Amazon 2023 EC2 image. The output from
-	  here tells me:
-
-	  "OwnerId": "137112412989"
-
-	  And that is what value to use for ami-0efa651876de2a5ce
-	  for the TERRAFORM_AWS_AMI_OWNER. To get the ami-* for your regions
-	  just go to your EC2 console, that console will be associated with
-	  a region already. You have to change regions if you want to look
-	  for AMIs in other regions. There are for example two different
-	  ami-* values for Amazon Linux 2023 for different regions. However
-	  they values can be same. For example below are the us-west-2 queries
-	  for Amazon Linux 2023 for x86_64 and then for ARM64.
-
-	  aws ec2 describe-images --image-ids ami-0efa651876de2a5ce | grep OwnerId
-	    "OwnerId": "137112412989",
-	  aws ec2 describe-images --image-ids ami-0699f753302dd8b00 | grep OwnerId
-	    "OwnerId": "137112412989",
-
-config TERRAFORM_AWS_REGION_AP_NORTHEAST_1
-	bool "ap-northeast-1 - Tokyo"
-	help
-	  This option specifies the Asia-Pacific northeast-1 region.
-	  The data center is located in Tokyo, Japan.
-
-config TERRAFORM_AWS_REGION_AP_NORTHEAST_2
-	bool "ap-northeast-2 - Seoul"
-	help
-	  This option specifies the Asia-Pacific northeast-2 region.
-	  The data center is located in Seoul, South Korea.
-
-config TERRAFORM_AWS_REGION_AP_NORTHEAST_3
-	bool "ap-northeast-3 - Osaka"
-	help
-	  This option specifies the Asia-Pacific northeast-3 region.
-	  The data center is located in Osaka, Japan.
-
-config TERRAFORM_AWS_REGION_AP_SOUTH_1
-	bool "ap-south-1 - Mumbai"
-	help
-	  This option specifies the Asia-Pacific south-1 region.
-	  The data center is located in Mumbai, India.
-
-config TERRAFORM_AWS_REGION_AP_SOUTHEAST_1
-	bool "ap-southeast-1 - Singapore"
-	help
-	  This option specifies the Asia-Pacific southeast-1 region.
-	  The data center is located in the Republic of Singapore.
-
-config TERRAFORM_AWS_REGION_AP_SOUTHEAST_2
-	bool "ap-southeast-1 - Sydney"
-	help
-	  This option specifies the Asia-Pacific southeast-2 region.
-	  The data center is located in Sydney, Australia.
-
-config TERRAFORM_AWS_REGION_CA_CENTRAL_1
-	bool "ca-central-1 - Central"
-	help
-	  This option specifies the Canada central-1 region.
-	  The data center is located in Montreal, Quebec.
-
-config TERRAFORM_AWS_REGION_EU_CENTRAL_1
-	bool "eu-central-1 - Frankfurt"
-	help
-	  This option specifies the European Union central-1 region.
-	  The data center is located in Frankfurt, Germany.
-
-config TERRAFORM_AWS_REGION_EU_NORTH_1
-	bool "eu-north-1 - Stockholm"
-	help
-	  This option specifies the European Union north-1 region.
-	  The data center is located in Stockholm, Sweden.
-
-config TERRAFORM_AWS_REGION_EU_WEST_1
-	bool "eu-west-1 - Ireland"
-	help
-	  This option specifies the European Union west-1 region.
-	  The data center is located in Dublin, Republic of Ireland.
-
-config TERRAFORM_AWS_REGION_EU_WEST_2
-	bool "eu-west-2 - London"
-	help
-	  This option specifies the European Union west-2 region.
-	  The data center is located in London, United Kingdom.
-
-config TERRAFORM_AWS_REGION_EU_WEST_3
-	bool "eu-west-3 - Paris"
-	help
-	  This option specifies the European Union west-3 region.
-	  The data center is located in Paris, France.
-
-config TERRAFORM_AWS_REGION_SA_EAST_1
-	bool "sa-east-1 - Sao Paulo"
-	help
-	  This option specifies the South America east-1 region.
-	  The data center is located in São Paulo, Brazil.
-
-config TERRAFORM_AWS_REGION_US_EAST_1
-	bool "us-east-1 - N. Virginia"
-	help
-	  This option specifies the United States east-1 region.
-	  Multiple data centers are located in the US state of
-	  Virginia.
-
-config TERRAFORM_AWS_REGION_US_EAST_2
-	bool "us-east-2 - Ohio"
-	help
-	  This option specifies the United States east-2 region.
-	  The data center is located in Columbus, Ohio, US.
-
-config TERRAFORM_AWS_REGION_US_WEST_1
-	bool "us-west-1 - North California"
-	help
-	  This option specifies the United States west-1 region.
-	  The data center is located in San Francisco, California,
-	  US.
-
-config TERRAFORM_AWS_REGION_US_WEST_2
-	bool "us-west-2 - Oregon"
-	help
-	  This option specifies the United States west-2 region.
-	  Multiple data centers are located in the US state of
-	  Oregon.
-
-endchoice
-
-config TERRAFORM_AWS_REGION
-	string
-	output yaml
-	default "ap-northeast-1" if TERRAFORM_AWS_REGION_AP_NORTHEAST_1
-	default "ap-northeast-2" if TERRAFORM_AWS_REGION_AP_NORTHEAST_2
-	default "ap-northeast-3" if TERRAFORM_AWS_REGION_AP_NORTHEAST_3
-	default "ap-south-1" if TERRAFORM_AWS_REGION_AP_SOUTH_1
-	default "ap-southeast-1" if TERRAFORM_AWS_REGION_AP_SOUTHEAST_1
-	default "ap-southeast-2" if TERRAFORM_AWS_REGION_AP_SOUTHEAST_2
-	default "ca-central-1" if TERRAFORM_AWS_REGION_CA_CENTRAL_1
-	default "eu-central-1" if TERRAFORM_AWS_REGION_EU_CENTRAL_1
-	default "eu-north-1" if TERRAFORM_AWS_REGION_EU_NORTH_1
-	default "eu-west-1" if TERRAFORM_AWS_REGION_EU_WEST_1
-	default "eu-west-2" if TERRAFORM_AWS_REGION_EU_WEST_2
-	default "eu-west-3" if TERRAFORM_AWS_REGION_EU_WEST_3
-	default "sa-east-1" if TERRAFORM_AWS_REGION_SA_EAST_1
-	default "us-east-1" if TERRAFORM_AWS_REGION_US_EAST_1
-	default "us-east-2" if TERRAFORM_AWS_REGION_US_EAST_2
-	default "us-west-1" if TERRAFORM_AWS_REGION_US_WEST_1
-	default "us-west-2" if TERRAFORM_AWS_REGION_US_WEST_2
-
-if TERRAFORM_AWS_REGION_AP_NORTHEAST_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_1A
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_1A
-	bool "ap-northeast-1a"
-	help
-	  This option selects the ap-northeast-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_1C
-	bool "ap-northeast-1c"
-	help
-	  This option selects the ap-northeast-1c availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_1D
-	bool "ap-northeast-1d"
-	help
-	  This option selects the ap-northeast-1d availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_AP_NORTHEAST_1
-
-if TERRAFORM_AWS_REGION_AP_NORTHEAST_2
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2A
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2A
-	bool "ap-northeast-2a"
-	help
-	  This option selects the ap-northeast-2a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2B
-	bool "ap-northeast-2b"
-	help
-	  This option selects the ap-northeast-2b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2C
-	bool "ap-northeast-2c"
-	help
-	  This option selects the ap-northeast-2c availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2D
-	bool "ap-northeast-2d"
-	help
-	  This option selects the ap-northeast-2d availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_AP_NORTHEAST_2
-
-if TERRAFORM_AWS_REGION_AP_NORTHEAST_3
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_3A
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_3A
-	bool "ap-northeast-3a"
-	help
-	  This option selects the ap-northeast-3a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_3B
-	bool "ap-northeast-3b"
-	help
-	  This option selects the ap-northeast-3b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_3C
-	bool "ap-northeast-3c"
-	help
-	  This option selects the ap-northeast-3c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_AP_NORTHEAST_3
-
-if TERRAFORM_AWS_REGION_AP_SOUTH_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_AP_SOUTH_1A
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTH_1A
-	bool "ap-south-1a"
-	help
-	  This option selects the ap-south-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTH_1B
-	bool "ap-south-1b"
-	help
-	  This option selects the ap-south-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTH_1C
-	bool "ap-south-1c"
-	help
-	  This option selects the ap-south-1c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_AP_SOUTH_1
-
-if TERRAFORM_AWS_REGION_AP_SOUTHEAST_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_1A
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_1A
-	bool "ap-southeast-1a"
-	help
-	  This option selects the ap-southeast-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_1B
-	bool "ap-southeast-1b"
-	help
-	  This option selects the ap-southeast-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_1C
-	bool "ap-southeast-1c"
-	help
-	  This option selects the ap-southeast-1c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_AP_SOUTHEAST_1
-
-if TERRAFORM_AWS_REGION_AP_SOUTHEAST_2
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_2A
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_2A
-	bool "ap-southeast-2a"
-	help
-	  This option selects the ap-southeast-2a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_2B
-	bool "ap-southeast-2b"
-	help
-	  This option selects the ap-southeast-2b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_2C
-	bool "ap-southeast-2c"
-	help
-	  This option selects the ap-southeast-2c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_AP_SOUTHEAST_2
-
-if TERRAFORM_AWS_REGION_CA_CENTRAL_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_CA_CENTRAL_1A
-
-config TERRAFORM_AWS_AV_ZONE_CA_CENTRAL_1A
-	bool "ca-central-1a"
-	help
-	  This option selects the ca-central-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_CA_CENTRAL_1B
-	bool "ca-central-1b"
-	help
-	  This option selects the ca-central-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_CA_CENTRAL_1D
-	bool "ca-central-1d"
-	help
-	  This option selects the ca-central-1d availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_CA_CENTRAL_1
-
-if TERRAFORM_AWS_REGION_EU_CENTRAL_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_EU_CENTRAL_1A
-
-config TERRAFORM_AWS_AV_ZONE_EU_CENTRAL_1A
-	bool "eu-central-1a"
-	help
-	  This option selects the eu-central-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_CENTRAL_1B
-	bool "eu-central-1b"
-	help
-	  This option selects the eu-central-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_CENTRAL_1C
-	bool "eu-central-1c"
-	help
-	  This option selects the eu-central-1c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_EU_CENTRAL_1
-
-if TERRAFORM_AWS_REGION_EU_NORTH_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_EU_NORTH_1A
-
-config TERRAFORM_AWS_AV_ZONE_EU_NORTH_1A
-	bool "eu-north-1a"
-	help
-	  This option selects the eu-north-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_NORTH_1B
-	bool "eu-north-1b"
-	help
-	  This option selects the eu-north-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_NORTH_1C
-	bool "eu-north-1c"
-	help
-	  This option selects the eu-north-1c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_EU_NORTH_1
-
-if TERRAFORM_AWS_REGION_EU_WEST_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_EU_WEST_1A
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_1A
-	bool "eu-west-1a"
-	help
-	  This option selects the eu-west-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_1B
-	bool "eu-west-1b"
-	help
-	  This option selects the eu-west-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_1C
-	bool "eu-west-1c"
-	help
-	  This option selects the eu-west-1c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_EU_WEST_1
-
-if TERRAFORM_AWS_REGION_EU_WEST_2
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_EU_WEST_2A
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_2A
-	bool "eu-west-2a"
-	help
-	  This option selects the eu-west-2a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_2B
-	bool "eu-west-2b"
-	help
-	  This option selects the eu-west-2b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_2C
-	bool "eu-west-2c"
-	help
-	  This option selects the eu-west-2c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_EU_WEST_2
-
-if TERRAFORM_AWS_REGION_EU_WEST_3
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_EU_WEST_3A
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_3A
-	bool "eu-west-3a"
-	help
-	  This option selects the eu-west-3a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_3B
-	bool "eu-west-3b"
-	help
-	  This option selects the eu-west-3b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_EU_WEST_3C
-	bool "eu-west-3c"
-	help
-	  This option selects the eu-west-3c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_EU_WEST_3
-
-if TERRAFORM_AWS_REGION_SA_EAST_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_SA_EAST_1A
-
-config TERRAFORM_AWS_AV_ZONE_SA_EAST_1A
-	bool "sa-east-1a"
-	help
-	  This option selects the sa-east-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_SA_EAST_1B
-	bool "sa-east-1b"
-	help
-	  This option selects the sa-east-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_SA_EAST_1C
-	bool "sa-east-1c"
-	help
-	  This option selects the sa-east-1c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_SA_EAST_1
-
-if TERRAFORM_AWS_REGION_US_EAST_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_US_EAST_1A
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_1A
-	bool "us-east-1a"
-	help
-	  This option selects the us-east-1a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_1B
-	bool "us-east-1b"
-	help
-	  This option selects the us-east-1b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_1C
-	bool "us-east-1c"
-	help
-	  This option selects the us-east-1c availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_1D
-	bool "us-east-1d"
-	help
-	  This option selects the us-east-1d availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_1E
-	bool "us-east-1e"
-	help
-	  This option selects the us-east-1e availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_1F
-	bool "us-east-1f"
-	help
-	  This option selects the us-east-1f availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_US_EAST_1
-
-if TERRAFORM_AWS_REGION_US_EAST_2
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_US_EAST_2A
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_2A
-	bool "us-east-2a"
-	help
-	  This option selects the us-east-2a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_2B
-	bool "us-east-2b"
-	help
-	  This option selects the us-east-2a availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_EAST_2C
-	bool "us-east-2c"
-	help
-	  This option selects the us-east-2c availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_US_EAST_2
-
-if TERRAFORM_AWS_REGION_US_WEST_1
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_US_WEST_1B
-	help
-	  This option sets the AWS availablity zone to the specified value.
-	  If you wish to expand on this list send a patch after reading this
-	  list:
-
-	  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
-	  https://gist.github.com/neilstuartcraig/0ccefcf0887f29b7f240
-
-config TERRAFORM_AWS_AV_ZONE_US_WEST_1B
-	bool "us-west-1b"
-	help
-	  This option selects the us-west-1b availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_US_WEST_1
-
-if TERRAFORM_AWS_REGION_US_WEST_2
-
-choice
-	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_US_WEST_2B
-	help
-	  This option sets the AWS availablity zone to the specified value.
-	  If you wish to expand on this list send a patch after reading this
-	  list:
-
-	  https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Concepts.RegionsAndAvailabilityZones.html
-	  https://gist.github.com/neilstuartcraig/0ccefcf0887f29b7f240
-
-config TERRAFORM_AWS_AV_ZONE_US_WEST_2B
-	bool "us-west-2b"
-	help
-	  This option selects the us-west-2b availability zone.
-
-config TERRAFORM_AWS_AV_ZONE_US_WEST_2D
-	bool "us-west-2d"
-	help
-	  This option selects the us-west-2d availability zone.
-
-endchoice
-
-endif # TERRAFORM_AWS_REGION_US_WEST_2
-
-config TERRAFORM_AWS_AV_ZONE
-	string
-	output yaml
-	default "ap-northeast-1a" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_1A
-	default "ap-northeast-1c" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_1C
-	default "ap-northeast-1d" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_1D
-	default "ap-northeast-2a" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2A
-	default "ap-northeast-2b" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2B
-	default "ap-northeast-2c" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2C
-	default "ap-northeast-2d" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_2D
-	default "ap-northeast-3a" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_3A
-	default "ap-northeast-3b" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_3B
-	default "ap-northeast-3c" if TERRAFORM_AWS_AV_ZONE_AP_NORTHEAST_3C
-	default "ap-south-1a" if TERRAFORM_AWS_AV_ZONE_AP_SOUTH_1A
-	default "ap-south-1b" if TERRAFORM_AWS_AV_ZONE_AP_SOUTH_1B
-	default "ap-south-1c" if TERRAFORM_AWS_AV_ZONE_AP_SOUTH_1C
-	default "ap-southeast-1a" if TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_1A
-	default "ap-southeast-1b" if TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_1B
-	default "ap-southeast-1c" if TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_1C
-	default "ap-southeast-2a" if TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_2A
-	default "ap-southeast-2b" if TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_2B
-	default "ap-southeast-2c" if TERRAFORM_AWS_AV_ZONE_AP_SOUTHEAST_2C
-	default "ca-central-1a" if TERRAFORM_AWS_AV_ZONE_CA_CENTRAL_1A
-	default "ca-central-1b" if TERRAFORM_AWS_AV_ZONE_CA_CENTRAL_1B
-	default "ca-central-1d" if TERRAFORM_AWS_AV_ZONE_CA_CENTRAL_1D
-	default "eu-central-1a" if TERRAFORM_AWS_AV_ZONE_EU_CENTRAL_1A
-	default "eu-central-1b" if TERRAFORM_AWS_AV_ZONE_EU_CENTRAL_1B
-	default "eu-central-1c" if TERRAFORM_AWS_AV_ZONE_EU_CENTRAL_1C
-	default "eu-north-1a" if TERRAFORM_AWS_AV_ZONE_EU_NORTH_1A
-	default "eu-north-1b" if TERRAFORM_AWS_AV_ZONE_EU_NORTH_1B
-	default "eu-north-1c" if TERRAFORM_AWS_AV_ZONE_EU_NORTH_1C
-	default "eu-west-1a" if TERRAFORM_AWS_AV_ZONE_EU_WEST_1A
-	default "eu-west-1b" if TERRAFORM_AWS_AV_ZONE_EU_WEST_1B
-	default "eu-west-1c" if TERRAFORM_AWS_AV_ZONE_EU_WEST_1C
-	default "eu-west-2a" if TERRAFORM_AWS_AV_ZONE_EU_WEST_2A
-	default "eu-west-2b" if TERRAFORM_AWS_AV_ZONE_EU_WEST_2B
-	default "eu-west-2c" if TERRAFORM_AWS_AV_ZONE_EU_WEST_2C
-	default "eu-west-3a" if TERRAFORM_AWS_AV_ZONE_EU_WEST_3A
-	default "eu-west-3b" if TERRAFORM_AWS_AV_ZONE_EU_WEST_3B
-	default "eu-west-3c" if TERRAFORM_AWS_AV_ZONE_EU_WEST_3C
-	default "sa-east-1a" if TERRAFORM_AWS_AV_ZONE_SA_EAST_1A
-	default "sa-east-1b" if TERRAFORM_AWS_AV_ZONE_SA_EAST_1B
-	default "sa-east-1c" if TERRAFORM_AWS_AV_ZONE_SA_EAST_1C
-	default "us-east-1a" if TERRAFORM_AWS_AV_ZONE_US_EAST_1A
-	default "us-east-1b" if TERRAFORM_AWS_AV_ZONE_US_EAST_1B
-	default "us-east-1c" if TERRAFORM_AWS_AV_ZONE_US_EAST_1C
-	default "us-east-1d" if TERRAFORM_AWS_AV_ZONE_US_EAST_1D
-	default "us-east-1e" if TERRAFORM_AWS_AV_ZONE_US_EAST_1E
-	default "us-east-1f" if TERRAFORM_AWS_AV_ZONE_US_EAST_1F
-	default "us-east-2a" if TERRAFORM_AWS_AV_ZONE_US_EAST_2A
-	default "us-east-2b" if TERRAFORM_AWS_AV_ZONE_US_EAST_2B
-	default "us-east-2c" if TERRAFORM_AWS_AV_ZONE_US_EAST_2C
-	default "us-west-1b" if TERRAFORM_AWS_AV_ZONE_US_WEST_1B
-	default "us-west-2b" if TERRAFORM_AWS_AV_ZONE_US_WEST_2B
-	default "us-west-2d" if TERRAFORM_AWS_AV_ZONE_US_WEST_2D
diff --git a/terraform/aws/kconfigs/instance-types/Kconfig.c7a b/terraform/aws/kconfigs/instance-types/Kconfig.c7a
deleted file mode 100644
index 147999d9..00000000
--- a/terraform/aws/kconfigs/instance-types/Kconfig.c7a
+++ /dev/null
@@ -1,28 +0,0 @@
-if TERRAFORM_AWS_INSTANCE_TYPE_C7A
-
-choice
-	prompt "AWS instance size"
-	default TERRAFORM_AWS_INSTANCE_SIZE_C7A_8XLARGE
-	help
-	  Add storage by increasing the number of EBS volumes per
-	  instance.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_C7A_8XLARGE
-	bool "c7a.8xlarge"
-	help
-	  32 core, 64 GiB RAM, EBS drives.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_C7A_METAL_48XL
-	bool "c7a.metal-48xl"
-	help
-	  192 core, 384 GiB RAM, EBS drive.
-
-endchoice
-
-config TERRAFORM_AWS_INSTANCE_TYPE
-	string
-	output yaml
-	default "c7a.8xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_C7A_8XLARGE
-	default "c7a.metal-48xl" if TERRAFORM_AWS_INSTANCE_SIZE_C7A_METAL_48XL
-
-endif # TERRAFORM_AWS_INSTANCE_TYPE_C7A
diff --git a/terraform/aws/kconfigs/instance-types/Kconfig.i4i b/terraform/aws/kconfigs/instance-types/Kconfig.i4i
deleted file mode 100644
index 3f7b2218..00000000
--- a/terraform/aws/kconfigs/instance-types/Kconfig.i4i
+++ /dev/null
@@ -1,33 +0,0 @@
-if TERRAFORM_AWS_INSTANCE_TYPE_I4I
-
-choice
-	prompt "AWS instance type"
-	default TERRAFORM_AWS_INSTANCE_SIZE_I4I_4XLARGE
-
-config TERRAFORM_AWS_INSTANCE_SIZE_I4I_LARGE
-	bool "i4i.large"
-	help
-	  16 GiB RAM, 2 vcpus, 1 x 468 AWS Nitro SSD, 10 Gbps Net, 10 Gbps EBS.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_I4I_4XLARGE
-	bool "i4i.4xlarge"
-	help
-	  128 GiB RAM, 16 vcpus, 1 x 3,750 AWS Nitro SSD, 25 Gbps Net,
-	  10 Gbps EBS.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_I4I_METAL
-	bool "i4i.metal"
-	help
-	  1024 GiB RAM, 128 real cpus?, 8 x 3,750 AWS Nitro SSD,
-	  75 Gbps Net, 40 Gbps EBS. The bees' knees I guess.
-
-endchoice
-
-config TERRAFORM_AWS_INSTANCE_TYPE
-	string
-	output yaml
-	default "i4i.large" if TERRAFORM_AWS_INSTANCE_SIZE_I4I_LARGE
-	default "i4i.4xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_I4I_4XLARGE
-	default "i4i.metal" if TERRAFORM_AWS_INSTANCE_SIZE_I4I_METAL
-
-endif # TERRAFORM_AWS_INSTANCE_TYPE_I4I
diff --git a/terraform/aws/kconfigs/instance-types/Kconfig.im4gn b/terraform/aws/kconfigs/instance-types/Kconfig.im4gn
deleted file mode 100644
index e224bdca..00000000
--- a/terraform/aws/kconfigs/instance-types/Kconfig.im4gn
+++ /dev/null
@@ -1,25 +0,0 @@
-if TERRAFORM_AWS_INSTANCE_TYPE_IM4GN
-
-choice
-	prompt "AWS instance size"
-	default TERRAFORM_AWS_INSTANCE_SIZE_IM4GN_LARGE
-
-config TERRAFORM_AWS_INSTANCE_SIZE_IM4GN_LARGE
-	bool "im4gn.large"
-	help
-	  8 GiB RAM, 2vCPUs, 1 x 937 GiB NVMe SSD, 25 Gbps Net, 9.5 Gbps EBS.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_IM4GN_4XLARGE
-	bool "im4gn.4xlarge"
-	help
-	  64 GiB RAM, 16 vcpus, 1 x 7500 NVMe SSD, 25 Gbps Net, 9.5 Gbps EBS.
-
-endchoice
-
-config TERRAFORM_AWS_INSTANCE_TYPE
-	string
-	output yaml
-	default "im4gn.large" if TERRAFORM_AWS_INSTANCE_SIZE_IM4GN_LARGE
-	default "im4gn.4xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_IM4GN_4XLARGE
-
-endif # TERRAFORM_AWS_INSTANCE_TYPE_IM4GN
diff --git a/terraform/aws/kconfigs/instance-types/Kconfig.is4gen b/terraform/aws/kconfigs/instance-types/Kconfig.is4gen
deleted file mode 100644
index 4fdca17b..00000000
--- a/terraform/aws/kconfigs/instance-types/Kconfig.is4gen
+++ /dev/null
@@ -1,25 +0,0 @@
-if TERRAFORM_AWS_INSTANCE_TYPE_IS4GEN
-
-choice
-	prompt "AWS instance size"
-	default TERRAFORM_AWS_INSTANCE_SIZE_IS4GEN_MEDIUM
-
-config TERRAFORM_AWS_INSTANCE_SIZE_IS4GEN_MEDIUM
-	bool "is4gen.medium"
-	help
-	  6 GiB RAM, 1vCPU, 1 x 937 GiB NVMe SSD, 25 Gbps Net, 9.6 Gbps EBS.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_IS4GEN_8XLARGE
-	bool "is4gen.8xlarge"
-	help
-	  192 GiB RAM, 32 vCPUs, 4 x 7500 NVMe SSD, 50 Gbps Net, 19 Gbps EBS.
-
-endchoice
-
-config TERRAFORM_AWS_INSTANCE_TYPE
-	string
-	output yaml
-	default "is4gen.medium" if TERRAFORM_AWS_INSTANCE_SIZE_IS4GEN_MEDIUM
-	default "is4gen.8xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_IS4GEN_8XLARGE
-
-endif # TERRAFORM_AWS_INSTANCE_TYPE_IS4GEN
diff --git a/terraform/aws/kconfigs/instance-types/Kconfig.m5 b/terraform/aws/kconfigs/instance-types/Kconfig.m5
deleted file mode 100644
index 534a20e7..00000000
--- a/terraform/aws/kconfigs/instance-types/Kconfig.m5
+++ /dev/null
@@ -1,48 +0,0 @@
-if TERRAFORM_AWS_INSTANCE_TYPE_M5
-
-choice
-	prompt "AWS instance type"
-	default TERRAFORM_AWS_INSTANCE_SIZE_M5AD_4XLARGE
-	help
-	  Add storage by increasing the number of EBS volumes per
-	  instance.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M5AD_LARGE
-	bool "m5ad.large"
-	depends on TARGET_ARCH_X86_64
-	help
-	  8 GiB RAM, 2 AMD vcpus, 1 10 GiB main drive, up to 10 Gbps
-	  network speed, and one 75 GiB NVMe drive.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M5AD_XLARGE
-	bool "m5ad.xlarge"
-	depends on TARGET_ARCH_X86_64
-	help
-	  16 GiB RAM, 4 AMD vcpus, 1 10 GiB main drive, up to 10 Gbps
-	  network speed, and one 150 GiB NVMe drive.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M5AD_2XLARGE
-	bool "m5ad.2xlarge"
-	depends on TARGET_ARCH_X86_64
-	help
-	  32 GiB RAM, 8 AMD vcpus, 1 10 GiB main drive, up to 10 Gbps
-	  network speed, and one 300 GiB NVMe drive.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M5AD_4XLARGE
-	bool "m5ad.4xlarge"
-	depends on TARGET_ARCH_X86_64
-	help
-	  64 GiB RAM, 16 AMD vcpus, 1 10 GiB main drive, up to 10 Gbps
-	  and two 300 GiB NVMe drives.
-
-endchoice
-
-config TERRAFORM_AWS_INSTANCE_TYPE
-	string
-	output yaml
-	default "m5ad.large" if TERRAFORM_AWS_INSTANCE_SIZE_M5AD_LARGE
-	default "m5ad.xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_M5AD_XLARGE
-	default "m5ad.2xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_M5AD_2XLARGE
-	default "m5ad.4xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_M5AD_4XLARGE
-
-endif # TERRAFORM_AWS_INSTANCE_TYPE_M5
diff --git a/terraform/aws/kconfigs/instance-types/Kconfig.m7a b/terraform/aws/kconfigs/instance-types/Kconfig.m7a
deleted file mode 100644
index fd7bd6f4..00000000
--- a/terraform/aws/kconfigs/instance-types/Kconfig.m7a
+++ /dev/null
@@ -1,57 +0,0 @@
-if TERRAFORM_AWS_INSTANCE_TYPE_M7A
-
-choice
-	prompt "AWS instance type"
-	default TERRAFORM_AWS_INSTANCE_SIZE_M7A_XLARGE
-	help
-	  Add storage by increasing the number of EBS volumes per
-	  instance.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M7A_MEDIUM
-	bool "m7a.medium"
-	depends on TARGET_ARCH_X86_64
-	help
-	  4 GiB RAM, 1 AMD Ryzen vcpu, 1 10 GiB main drive, and up to
-	  12.5 Gbs network speed.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M7A_LARGE
-	bool "m7a.large"
-	depends on TARGET_ARCH_X86_64
-	help
-	  8 GiB RAM, 2 AMD Ryzen vcpus, 1 10 GiB main drive, and up to
-	  12.5 Gbs network speed.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M7A_XLARGE
-	bool "m7a.xlarge"
-	depends on TARGET_ARCH_X86_64
-	help
-	  16 GiB RAM, 4 AMD Ryzen vcpus, 1 10 GiB main drive, and up to
-	  12.5 Gbs network speed.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M7A_2XLARGE
-	bool "m7a.2xlarge"
-	depends on TARGET_ARCH_X86_64
-	help
-	  32 GiB RAM, 8 AMD Ryzen vcpus, 1 10 GiB main drive, and up to
-	  12.5 Gbs network speed.
-
-config TERRAFORM_AWS_INSTANCE_SIZE_M7A_4XLARGE
-	bool "m7a.4xlarge"
-	depends on TARGET_ARCH_X86_64
-	help
-	  64 GiB RAM, 16 AMD Ryzen vcpus, 1 10 GiB main drive, and up to
-	  12.5 Gbs network speed.
-
-endchoice
-
-config TERRAFORM_AWS_INSTANCE_TYPE
-	string
-	output yaml
-	default "m7a.medium" if TERRAFORM_AWS_INSTANCE_SIZE_M7A_MEDIUM
-	default "m7a.large" if TERRAFORM_AWS_INSTANCE_SIZE_M7A_LARGE
-	default "m7a.xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_M7A_XLARGE
-	default "m7a.xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_M7A_XLARGE
-	default "m7a.2xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_M7A_2XLARGE
-	default "m7a.4xlarge" if TERRAFORM_AWS_INSTANCE_SIZE_M7A_4XLARGE
-
-endif # TERRAFORM_AWS_INSTANCE_TYPE_M7A
diff --git a/terraform/aws/scripts/generate_aws_kconfig.py b/terraform/aws/scripts/generate_aws_kconfig.py
index c6a60a83..a8f25b4e 100755
--- a/terraform/aws/scripts/generate_aws_kconfig.py
+++ b/terraform/aws/scripts/generate_aws_kconfig.py
@@ -221,8 +221,19 @@ def generate_family_kconfig(family: str, instances: List[Dict]) -> str:
     """Generate Kconfig content for a single family."""
     content = [f"# AWS {family.upper()} instance sizes (dynamically generated)", ""]
 
+    # Filter instances to only include the exact family (not related families)
+    # e.g., for "r8g" family, exclude "r8gd" and "r8gn" instances
+    filtered_instances = [
+        inst for inst in instances
+        if inst['instance_type'].split('.')[0] == family
+    ]
+
+    if not filtered_instances:
+        # If no exact matches, use all instances (backward compatibility)
+        filtered_instances = instances
+
     # Sort instances by a logical order
-    sorted_instances = sorted(instances, key=lambda x: (
+    sorted_instances = sorted(filtered_instances, key=lambda x: (
         'metal' not in x['instance_type'],  # metal instances last
         x.get('vcpus', 0),  # then by vCPUs
         x.get('memory_gb', 0)  # then by memory
@@ -238,14 +249,15 @@ def generate_family_kconfig(family: str, instances: List[Dict]) -> str:
     # Generate choice block
     content.append("choice")
     content.append(f'\tprompt "Instance size for {family.upper()} family"')
-    content.append(f'\tdefault TERRAFORM_AWS_INSTANCE_{default.replace(".", "_").upper()}')
+    content.append(f'\tdefault TERRAFORM_AWS_INSTANCE_{default.replace(".", "_").replace("-", "_").upper()}')
     content.append("\thelp")
     content.append(f"\t  Select the specific instance size within the {family.upper()} family.")
     content.append("")
 
     # Generate config entries
     for inst in sorted_instances:
-        type_upper = inst['instance_type'].replace('.', '_').upper()
+        # Replace both dots and dashes with underscores for valid Kconfig symbols
+        type_upper = inst['instance_type'].replace('.', '_').replace('-', '_').upper()
         content.append(f"config TERRAFORM_AWS_INSTANCE_{type_upper}")
         content.append(f'\tbool "{inst["instance_type"]}"')
         content.append("\thelp")
@@ -262,7 +274,7 @@ def generate_family_kconfig(family: str, instances: List[Dict]) -> str:
     content.append("\tstring")
 
     for inst in sorted_instances:
-        type_upper = inst['instance_type'].replace('.', '_').upper()
+        type_upper = inst['instance_type'].replace('.', '_').replace('-', '_').upper()
         content.append(f'\tdefault "{inst["instance_type"]}" if TERRAFORM_AWS_INSTANCE_{type_upper}')
 
     content.append(f'\tdefault "{default}"')
-- 
2.51.0


  parent reply	other threads:[~2025-09-17  0:34 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-17  0:34 [PATCH v4 0/8] aws: add dynamic kconfig support Luis Chamberlain
2025-09-17  0:34 ` [PATCH v4 1/8] aws: prevent SSH key conflicts across multiple kdevops directories Luis Chamberlain
2025-09-17  3:36   ` Chuck Lever
2025-09-17  0:34 ` [PATCH v4 2/8] terraform/aws: Add scripts to gather provider resource information Luis Chamberlain
2025-09-17  0:34 ` [PATCH v4 3/8] aws: add optimized Kconfig generator using Chuck's scripts Luis Chamberlain
2025-09-17  3:58   ` Chuck Lever
2025-09-17  0:34 ` [PATCH v4 4/8] aws: integrate dynamic Kconfig generation with make targets Luis Chamberlain
2025-09-17  3:40   ` Chuck Lever
2025-09-17  7:05     ` Luis Chamberlain
2025-09-17  0:34 ` [PATCH v4 5/8] aws: add cloud billing support with make cloud-bill Luis Chamberlain
2025-09-17  0:34 ` Luis Chamberlain [this message]
2025-09-17  0:34 ` [PATCH v4 7/8] aws: add GPU instance defconfigs for AI/ML workloads Luis Chamberlain
2025-09-17  0:34 ` [PATCH v4 8/8] docs: add documentation for dynamic cloud configuration Luis Chamberlain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250917003451.2318229-7-mcgrof@kernel.org \
    --to=mcgrof@kernel.org \
    --cc=cel@kernel.org \
    --cc=da.gomez@kruces.com \
    --cc=kdevops@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.