From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A7A691898F8 for ; Wed, 17 Sep 2025 00:34:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.137.202.133 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758069295; cv=none; b=H3b6v1z40PCFXETl7ysPY+PXkq+93M3P7J59+7Kb88SFfEPrtwe7kYSEAlGQ2iTm+rQnakvz6mxlzM20PkDAp3BdVbdRYcK6OCSneNkjlRHIowBWrNafm320vSMHdaVIgDZF2oyyozJ53S5FGP+DGc1oYoBnjY7sDwzvc2j8Iuw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1758069295; c=relaxed/simple; bh=HNyWvjeYw8oOwkfbhrsr0Mcgzc1VAMUGSQWNF2znkMs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=ZERuTBWko+pHKMwgHyhRUSr2lOef/hQC+UgDVPsK/kyHnJw+VcnSS0Qx/iTRrevEOQo5YFD5dv5ASpF7H11AM/IAOXCvGZGASidJLMkFIw5hrRGIVyPEOeb2HNUDZbPPMQBptUlNLElTBUdNcvVcd39KDKPpNJtNXld4NljCPgY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org; spf=none smtp.mailfrom=infradead.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b=b2cqpOgm; arc=none smtp.client-ip=198.137.202.133 Authentication-Results: smtp.subspace.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=kernel.org Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=infradead.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="b2cqpOgm" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description; bh=iHAG7ISVZ0PRIkMvBUXbmW+XOqGObs+gvlec7Q4GLeI=; b=b2cqpOgmetB8ImX5j6Y8jadfNl 45DZ0dnbbVh4nADjkqmaaRDxdhQSWcQidE56EIINCFls1SSRw+uAPQL5okSooX40SJ8AO3v0Nvekl e6sroQYbSogGBZthf8MGIAqV9HXU+A7au7QHgRvGImzFsK02azvjEZ794DOE+Gr88/+C1xjC2GH0G kwUjvAs63oi3pkYfwl0/jLnTuoE8DeQbRkoph2XEgHwB8MOyOYcp1WpbQ282ghUO5cH9pmqbS4sox n4lYM1OY7At7GECwam8tDfJ8UgWgJ9xtiiAn8AQQkfVxDfbjQDKr6teoxw3FduWDEwEosum1EIlk7 lWkIF4fQ==; Received: from mcgrof by bombadil.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uyg8K-00000009j5S-0Nag; Wed, 17 Sep 2025 00:34:52 +0000 From: Luis Chamberlain To: Chuck Lever , Daniel Gomez , kdevops@lists.linux.dev Cc: Luis Chamberlain Subject: [PATCH v4 6/8] aws: replace static Kconfig files with dynamically generated ones Date: Tue, 16 Sep 2025 17:34:47 -0700 Message-ID: <20250917003451.2318229-7-mcgrof@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20250917003451.2318229-1-mcgrof@kernel.org> References: <20250917003451.2318229-1-mcgrof@kernel.org> Precedence: bulk X-Mailing-List: kdevops@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: Luis Chamberlain 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 --- 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 - - 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