All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1 00/26] Various fixes
@ 2025-08-27 14:27 Chuck Lever
  2025-08-27 14:27 ` [PATCH v1 01/26] scripts: Update gen_ssh_key.sh Chuck Lever
                   ` (26 more replies)
  0 siblings, 27 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:27 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

I've finally gotten most of my test runners moved to cloud providers
so I'm able to rebase my version of kdevops on

  linux-kdevops/kdevops : HEAD

In the process I've found and fixed myriad small issues. One or two
of these might need some attention and additional work. Please have
a close look -- they are all short subjects.

Chuck Lever (26):
  scripts: Update gen_ssh_key.sh
  terraform/azure: Fix count of managed disks
  terraform/azure: Remove tags from terraform configuration
  terraform/azure: Enable network acceleration
  terraform/azure: Make the resource group name a variable
  terraform/azure: Remove the provider version constraint
  terraform/azure: Update the RHEL publishers
  terraform/oci: Work around oracle/oci provider bug
  terraform/oci:
  terraform/oci: Enable preemptible compute instances
  terraform/aws: Fix zone selection for us_west1
  Revert "terraform/aws: Add Oracle Linux AMI selections"
  terraform/aws: Remove unused terraform tags
  terraform/GCE: Fix the default disk throughput values
  terraform/gce: Remove unused tags
  terraform/gce: Remove support for Fedora
  terraform/gce: Update existing machine types and introduce new ones
  terraform: Create the user's .ssh/config if it does not already exist
  pynfs: Don't install xdrlib3 on older RHEL
  guestfs: Update the guestfs playbook description
  gen_hosts: Add 'localhost' to the [all] group
  gen_host: Add [service] group to the builder template
  guestfs: Don't run the 'destroy' tags on the controller
  base_image: Skip "locales-all" package on Fedora
  update_etc_hosts: ipaddr
  Add an Ansible requirements.yml file

 playbooks/guestfs.yml                         |   2 +-
 .../base_image/templates/virt-builder.j2      |   2 +-
 .../roles/gen_hosts/templates/builder.j2      |   5 +
 .../templates/azure/terraform.tfvars.j2       |   1 +
 .../templates/oci/terraform.tfvars.j2         |   1 +
 .../pynfs/tasks/install-deps/redhat/main.yml  |   2 +
 playbooks/roles/terraform/tasks/main.yml      |   1 +
 .../roles/update_etc_hosts/tasks/main.yml     |   4 +-
 requirements.yml                              |   8 ++
 scripts/ansible.Makefile                      |   5 +
 scripts/gen_ssh_key.sh                        |   2 +-
 scripts/guestfs.Makefile                      |   1 +
 terraform/aws/kconfigs/Kconfig.compute        |   4 -
 terraform/aws/kconfigs/Kconfig.location       |  21 ++-
 terraform/aws/kconfigs/distros/Kconfig.oracle |  48 -------
 terraform/aws/main.tf                         |  13 --
 terraform/azure/kconfigs/Kconfig.location     |  16 +++
 terraform/azure/kconfigs/Kconfig.storage      |   1 +
 .../azure/kconfigs/publishers/Kconfig.rhel    |  10 +-
 terraform/azure/main.tf                       |  35 +----
 terraform/azure/provider.tf                   |   2 +-
 terraform/azure/vars.tf                       |   5 +
 terraform/gce/kconfigs/Kconfig.compute        |   4 -
 terraform/gce/kconfigs/Kconfig.storage        |   6 +-
 terraform/gce/kconfigs/images/Kconfig.fedora  |  95 -------------
 .../gce/kconfigs/machines/Kconfig.c3-standard |  41 ++++++
 .../kconfigs/machines/Kconfig.c3d-standard    |  46 ++++++
 .../gce/kconfigs/machines/Kconfig.c4-standard |  23 +--
 .../kconfigs/machines/Kconfig.c4a-standard    |  57 ++++++++
 .../kconfigs/machines/Kconfig.c4d-standard    |  51 +++++++
 .../gce/kconfigs/machines/Kconfig.e2-highcpu  |  58 ++++++++
 .../gce/kconfigs/machines/Kconfig.e2-standard |  58 ++++++++
 .../gce/kconfigs/machines/Kconfig.n1-highcpu  |  55 ++++++++
 .../gce/kconfigs/machines/Kconfig.n1-standard |  26 ++--
 .../gce/kconfigs/machines/Kconfig.n2-highcpu  |  16 +--
 .../gce/kconfigs/machines/Kconfig.n2-standard |  16 +--
 .../gce/kconfigs/machines/Kconfig.n2d-highcpu |  15 +-
 .../kconfigs/machines/Kconfig.n2d-standard    |  17 ++-
 .../gce/kconfigs/machines/Kconfig.n4-highcpu  |  16 +--
 .../gce/kconfigs/machines/Kconfig.n4-standard |  16 +--
 terraform/gce/main.tf                         |   2 -
 terraform/oci/kconfigs/Kconfig.storage        | 132 ++++++++++++++++++
 terraform/oci/main.tf                         |   8 ++
 terraform/oci/provider.tf                     |   4 +-
 terraform/oci/vars.tf                         |   5 +
 terraform/oci/volumes/main.tf                 |  12 +-
 terraform/oci/volumes/vars.tf                 |   5 +
 47 files changed, 687 insertions(+), 286 deletions(-)
 create mode 100644 requirements.yml
 delete mode 100644 terraform/aws/kconfigs/distros/Kconfig.oracle
 delete mode 100644 terraform/gce/kconfigs/images/Kconfig.fedora
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c3-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c3d-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c4a-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c4d-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.e2-highcpu
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.e2-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.n1-highcpu

-- 
2.51.0


^ permalink raw reply	[flat|nested] 29+ messages in thread

* [PATCH v1 01/26] scripts: Update gen_ssh_key.sh
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
@ 2025-08-27 14:27 ` Chuck Lever
  2025-08-27 14:27 ` [PATCH v1 02/26] terraform/azure: Fix count of managed disks Chuck Lever
                   ` (25 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:27 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Drop the -b option. We're stuck with RSA because some cloud providers
require it, but ssh-keygen's default bit length for RSA keys is 3072,
which is better than the value specified here.

Leaving off -b means when ssh-keygen increases its default, kdevops
will get that change without human intervention.

I'm also adding a -C option here because I got really confused when
I looked at the terraform state imported back from the provider. The
public ssh key comment was "cel@ ... ". I thought that this was my
personal public key.

It's is not my public key, thankfully. Rather the comment chosen by
ssh-keygen happens to be the same as the one in my personal public
key. So let's pick a more distinct eye-catcher to avoid future
myocardial infarction.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 scripts/gen_ssh_key.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/gen_ssh_key.sh b/scripts/gen_ssh_key.sh
index 72bdb22694aa..4f656fe35b7c 100755
--- a/scripts/gen_ssh_key.sh
+++ b/scripts/gen_ssh_key.sh
@@ -5,4 +5,4 @@ source ${TOPDIR}/.config
 source ${TOPDIR}/scripts/lib.sh
 
 echo "Creating $KDEVOPS_SSH_PRIVKEY"
-ssh-keygen -b 2048 -t rsa -f $KDEVOPS_SSH_PRIVKEY -q -N ""
+ssh-keygen -t rsa -C generated-by-kdevops -f $KDEVOPS_SSH_PRIVKEY -q -N ""
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 02/26] terraform/azure: Fix count of managed disks
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
  2025-08-27 14:27 ` [PATCH v1 01/26] scripts: Update gen_ssh_key.sh Chuck Lever
@ 2025-08-27 14:27 ` Chuck Lever
  2025-08-27 14:27 ` [PATCH v1 03/26] terraform/azure: Remove tags from terraform configuration Chuck Lever
                   ` (24 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:27 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

The Kconfig choice menu allows the selection of a single disk, but
there was no default setting for that, causing the gen_tfvars
playbook to fail with:

ansible.errors.AnsibleUndefinedVariable:
  'terraform_azure_managed_disks_per_instance' is undefined.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/azure/kconfigs/Kconfig.storage | 1 +
 1 file changed, 1 insertion(+)

diff --git a/terraform/azure/kconfigs/Kconfig.storage b/terraform/azure/kconfigs/Kconfig.storage
index 5bfe1441c09c..d4885163a3b6 100644
--- a/terraform/azure/kconfigs/Kconfig.storage
+++ b/terraform/azure/kconfigs/Kconfig.storage
@@ -64,6 +64,7 @@ endchoice
 config TERRAFORM_AZURE_MANAGED_DISKS_PER_INSTANCE
 	int
 	output yaml
+	default 1 if TERRAFORM_AZURE_MANAGED_DISKS_PER_INSTANCE_1
 	default 2 if TERRAFORM_AZURE_MANAGED_DISKS_PER_INSTANCE_2
 	default 3 if TERRAFORM_AZURE_MANAGED_DISKS_PER_INSTANCE_3
 	default 4 if TERRAFORM_AZURE_MANAGED_DISKS_PER_INSTANCE_4
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 03/26] terraform/azure: Remove tags from terraform configuration
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
  2025-08-27 14:27 ` [PATCH v1 01/26] scripts: Update gen_ssh_key.sh Chuck Lever
  2025-08-27 14:27 ` [PATCH v1 02/26] terraform/azure: Fix count of managed disks Chuck Lever
@ 2025-08-27 14:27 ` Chuck Lever
  2025-08-27 14:27 ` [PATCH v1 04/26] terraform/azure: Enable network acceleration Chuck Lever
                   ` (23 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:27 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Clean up: as far as I can tell these are unused anywhere.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/azure/main.tf | 24 ------------------------
 1 file changed, 24 deletions(-)

diff --git a/terraform/azure/main.tf b/terraform/azure/main.tf
index 2df0dc609381..e1d99cecf003 100644
--- a/terraform/azure/main.tf
+++ b/terraform/azure/main.tf
@@ -3,10 +3,6 @@
 resource "azurerm_resource_group" "kdevops_group" {
   name     = "kdevops_resource_group"
   location = var.azure_location
-
-  tags = {
-    environment = "kdevops tests"
-  }
 }
 
 locals {
@@ -18,10 +14,6 @@ resource "azurerm_virtual_network" "kdevops_network" {
   address_space       = [local.kdevops_private_net]
   location            = var.azure_location
   resource_group_name = azurerm_resource_group.kdevops_group.name
-
-  tags = {
-    environment = "kdevops tests"
-  }
 }
 
 resource "azurerm_subnet" "kdevops_subnet" {
@@ -37,10 +29,6 @@ resource "azurerm_public_ip" "kdevops_publicip" {
   location            = var.azure_location
   resource_group_name = azurerm_resource_group.kdevops_group.name
   allocation_method   = "Static"
-
-  tags = {
-    environment = "kdevops tests"
-  }
 }
 
 resource "azurerm_network_security_group" "kdevops_sg" {
@@ -59,10 +47,6 @@ resource "azurerm_network_security_group" "kdevops_sg" {
     source_address_prefix      = "*"
     destination_address_prefix = "*"
   }
-
-  tags = {
-    environment = "kdevops tests"
-  }
 }
 
 resource "azurerm_network_interface_security_group_association" "kdevops_sg_assoc" {
@@ -83,10 +67,6 @@ resource "azurerm_network_interface" "kdevops_nic" {
     private_ip_address_allocation = "Dynamic"
     public_ip_address_id          = element(azurerm_public_ip.kdevops_publicip.*.id, count.index)
   }
-
-  tags = {
-    environment = "kdevops tests"
-  }
 }
 
 resource "azurerm_linux_virtual_machine" "kdevops_vm" {
@@ -132,10 +112,6 @@ resource "azurerm_linux_virtual_machine" "kdevops_vm" {
     username   = var.ssh_config_user
     public_key = var.ssh_config_pubkey_file != "" ? file(var.ssh_config_pubkey_file) : ""
   }
-
-  tags = {
-    environment = "kdevops tests"
-  }
 }
 
 module "kdevops_managed_disks" {
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 04/26] terraform/azure: Enable network acceleration
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (2 preceding siblings ...)
  2025-08-27 14:27 ` [PATCH v1 03/26] terraform/azure: Remove tags from terraform configuration Chuck Lever
@ 2025-08-27 14:27 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 05/26] terraform/azure: Make the resource group name a variable Chuck Lever
                   ` (22 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:27 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

This option appears to be on by default when creating VM machines
via the Azure console.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/azure/main.tf | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/terraform/azure/main.tf b/terraform/azure/main.tf
index e1d99cecf003..c178c34d0180 100644
--- a/terraform/azure/main.tf
+++ b/terraform/azure/main.tf
@@ -56,10 +56,11 @@ resource "azurerm_network_interface_security_group_association" "kdevops_sg_asso
 }
 
 resource "azurerm_network_interface" "kdevops_nic" {
-  count               = local.kdevops_num_boxes
-  name                = format("kdevops_nic_%02d", count.index + 1)
-  location            = var.azure_location
-  resource_group_name = azurerm_resource_group.kdevops_group.name
+  count                          = local.kdevops_num_boxes
+  accelerated_networking_enabled = true
+  name                           = format("kdevops_nic_%02d", count.index + 1)
+  location                       = var.azure_location
+  resource_group_name            = azurerm_resource_group.kdevops_group.name
 
   ip_configuration {
     name                          = "kdevops_nic_configuration"
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 05/26] terraform/azure: Make the resource group name a variable
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (3 preceding siblings ...)
  2025-08-27 14:27 ` [PATCH v1 04/26] terraform/azure: Enable network acceleration Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 06/26] terraform/azure: Remove the provider version constraint Chuck Lever
                   ` (21 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Resource groups appear to be global. To run more than one instance
of kdevops in Azure at the same time, each instance needs a unique
resource group. Hoist the resource group name into Kconfig so that
it can be set to a unique value.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 .../templates/azure/terraform.tfvars.j2          |  1 +
 terraform/azure/kconfigs/Kconfig.location        | 16 ++++++++++++++++
 terraform/azure/main.tf                          |  2 +-
 terraform/azure/vars.tf                          |  5 +++++
 4 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/playbooks/roles/gen_tfvars/templates/azure/terraform.tfvars.j2 b/playbooks/roles/gen_tfvars/templates/azure/terraform.tfvars.j2
index 8be48e800036..7ce0f6170e22 100644
--- a/playbooks/roles/gen_tfvars/templates/azure/terraform.tfvars.j2
+++ b/playbooks/roles/gen_tfvars/templates/azure/terraform.tfvars.j2
@@ -1,4 +1,5 @@
 azure_subscription_id = "{{ terraform_azure_subscription_id }}"
+azure_resource_group_name = "{{ terraform_azure_resource_group_name }}"
 azure_location = "{{ terraform_azure_location }}"
 azure_vmsize = "{{ terraform_azure_vm_size }}"
 azure_image_publisher = "{{ terraform_azure_image_publisher }}"
diff --git a/terraform/azure/kconfigs/Kconfig.location b/terraform/azure/kconfigs/Kconfig.location
index a7e8bae37507..2cc0e419d54d 100644
--- a/terraform/azure/kconfigs/Kconfig.location
+++ b/terraform/azure/kconfigs/Kconfig.location
@@ -134,3 +134,19 @@ config TERRAFORM_AZURE_LOCATION
 	default "westus2" if TERRAFORM_AZURE_REGION_WESTUS2
 	default "westus3" if TERRAFORM_AZURE_REGION_WESTUS3
 	default "westcentralus" if TERRAFORM_AZURE_REGION_WESTCENTRALUS
+
+config TERRAFORM_AZURE_RESOURCE_GROUP_NAME
+	string "Azure resource group name"
+	output yaml
+	default "kdevops_resource_group"
+	help
+	  An Azure resource group is a container that holds related
+	  resources so they can be managed as a single unit. These
+	  resources share the same life cycle and are deployed,
+	  updated, and deleted together. Resource groups are global
+	  to your subscription.
+
+	  To run concurrent kdevops jobs in Azure, each run must
+	  have a unique resouce group name.
+
+	  https://learn.microsoft.com/en-us/azure/azure-resource-manager/management/overview#resource-groups
diff --git a/terraform/azure/main.tf b/terraform/azure/main.tf
index c178c34d0180..8dcead78b5fd 100644
--- a/terraform/azure/main.tf
+++ b/terraform/azure/main.tf
@@ -1,7 +1,7 @@
 # Azure terraform provider main
 
 resource "azurerm_resource_group" "kdevops_group" {
-  name     = "kdevops_resource_group"
+  name     = var.azure_resource_group_name
   location = var.azure_location
 }
 
diff --git a/terraform/azure/vars.tf b/terraform/azure/vars.tf
index 2d06857905e2..dd3c20ed05c7 100644
--- a/terraform/azure/vars.tf
+++ b/terraform/azure/vars.tf
@@ -33,6 +33,11 @@ variable "azure_managed_disks_tier" {
   type        = string
 }
 
+variable "azure_resource_group_name" {
+  description = "Name of the set of resources for this run"
+  type        = string
+}
+
 variable "azure_subscription_id" {
   description = "Your Azure subscription ID"
   type        = string
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 06/26] terraform/azure: Remove the provider version constraint
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (4 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 05/26] terraform/azure: Make the resource group name a variable Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 07/26] terraform/azure: Update the RHEL publishers Chuck Lever
                   ` (20 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

The most recent version 3 release of hashicorp/azurerm was 3.117.1,
released on February 28, 2025. Version 3 is no longer getting fixes.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/azure/provider.tf | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/terraform/azure/provider.tf b/terraform/azure/provider.tf
index 97baad4245d7..4b6380bbc68c 100644
--- a/terraform/azure/provider.tf
+++ b/terraform/azure/provider.tf
@@ -2,7 +2,7 @@ terraform {
   required_providers {
     azurerm = {
       source  = "hashicorp/azurerm"
-      version = "~>3"
+      version = "> 4"
     }
   }
 }
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 07/26] terraform/azure: Update the RHEL publishers
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (5 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 06/26] terraform/azure: Remove the provider version constraint Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 08/26] terraform/oci: Work around oracle/oci provider bug Chuck Lever
                   ` (19 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Make the most recent RHEL 9 update (update 6, announced two months
ago) the default selection.

Since update 10 has been available for more than a year, add a RHEL
8.10 menu choice.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/azure/kconfigs/publishers/Kconfig.rhel | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/terraform/azure/kconfigs/publishers/Kconfig.rhel b/terraform/azure/kconfigs/publishers/Kconfig.rhel
index 16ec92903976..3a6a7d9a1797 100644
--- a/terraform/azure/kconfigs/publishers/Kconfig.rhel
+++ b/terraform/azure/kconfigs/publishers/Kconfig.rhel
@@ -4,7 +4,7 @@ if TARGET_ARCH_X86_64
 
 choice
 	prompt "Red Hat Enterprise Linux release"
-	default TERRAFORM_AZURE_IMAGE_LINUX_RHEL_9_5
+	default TERRAFORM_AZURE_IMAGE_LINUX_RHEL_9_6
 	help
 	  This option specifies which of a publisher's offers to use
 	  when creating kdevops compute instances.
@@ -21,6 +21,12 @@ config TERRAFORM_AZURE_IMAGE_LINUX_RHEL_8_9
 	  This option sets the OS image to Red Hat Enterprise Linux
 	  release 8 update 9.
 
+config TERRAFORM_AZURE_IMAGE_LINUX_RHEL_8_10
+	bool "RHEL 8.10 x64"
+	help
+	  This option sets the OS image to Red Hat Enterprise Linux
+	  release 8 update 10.
+
 config TERRAFORM_AZURE_IMAGE_LINUX_RHEL_9_5
 	bool "RHEL 9.5 x64"
 	help
@@ -40,6 +46,7 @@ config TERRAFORM_AZURE_IMAGE_OFFER
 	output yaml
 	default "RHEL" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_7_9
 	default "RHEL" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_8_9
+	default "RHEL" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_8_10
 	default "RHEL" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_9_5
 	default "RHEL" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_9_6
 
@@ -48,6 +55,7 @@ config TERRAFORM_AZURE_IMAGE_SKU
 	output yaml
 	default "7_9" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_7_9
 	default "8_9" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_8_9
+	default "8_10" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_8_10
 	default "9_5" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_9_5
 	default "9_6" if TERRAFORM_AZURE_IMAGE_LINUX_RHEL_9_6
 
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 08/26] terraform/oci: Work around oracle/oci provider bug
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (6 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 07/26] terraform/azure: Update the RHEL publishers Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 09/26] terraform/oci: Chuck Lever
                   ` (18 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

First, I was getting

module.volumes[0].oci_core_volume.kdevops_volume_extra[0]: Creating...
╷
│ Error: 400-CannotParseRequest, Incorrectly formatted request. Please refer to our documentation for help.

No idea why, though maybe this is the first time I've tried using
us-east1 when my home region is us-central. Nothing I tried changed
this result, and there's no obvious problem with the way that the
oci_core_volume resource is specified, which hasn't changed in many
months.

All documentation I consulted stated that because the root module
explicitly specifies exactly one provider, child modules are
supposed to inherit that provider. But that isn't happening here:

$ terraform providers

Providers required by configuration:
.
├── provider[registry.terraform.io/oracle/oci] ~> 6.0
└── module.volumes
    └── provider[registry.terraform.io/hashicorp/oci]

And looks like it's a bug that was never fixed:
https://github.com/oracle/terraform-provider-oci/issues/1608

The only workaround I understood was to switch the root module
back to using the hashicorp/oci provider so that the root and
"volumes" module use the same provider.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/oci/provider.tf | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/terraform/oci/provider.tf b/terraform/oci/provider.tf
index 08d0d2c526c6..610d2059577a 100644
--- a/terraform/oci/provider.tf
+++ b/terraform/oci/provider.tf
@@ -2,8 +2,8 @@ terraform {
   required_version = ">= 0.12.6"
   required_providers {
     oci = {
-      source = "oracle/oci"
-      version = "~> 6"
+      source = "hashicorp/oci"
+      version = "> 7"
     }
   }
 }
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 09/26] terraform/oci:
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (7 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 08/26] terraform/oci: Work around oracle/oci provider bug Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 10/26] terraform/oci: Enable preemptible compute instances Chuck Lever
                   ` (17 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Add the vpus_per_gb argument when provisioning disk drives to
control how much performance is available. This is similar to
the performance settings available for other providers.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 .../templates/oci/terraform.tfvars.j2         |   1 +
 terraform/oci/kconfigs/Kconfig.storage        | 132 ++++++++++++++++++
 terraform/oci/main.tf                         |   1 +
 terraform/oci/vars.tf                         |   5 +
 terraform/oci/volumes/main.tf                 |  12 +-
 terraform/oci/volumes/vars.tf                 |   5 +
 6 files changed, 151 insertions(+), 5 deletions(-)

diff --git a/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2 b/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2
index 9c32ea5884d4..0839bfacfb24 100644
--- a/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2
+++ b/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2
@@ -18,6 +18,7 @@ oci_subnet_ocid = "{{ terraform_oci_subnet_ocid }}"
 {% endif %}
 oci_volumes_per_instance = {{ terraform_oci_volumes_per_instance }}
 oci_volumes_size = {{ terraform_oci_volumes_size }}
+oci_vpus_per_gb = {{ terraform_oci_vpus_per_gb }}
 oci_data_volume_device_file_name = "{{ terraform_oci_data_volume_device_file_name }}"
 oci_sparse_volume_device_file_name = "{{ terraform_oci_sparse_volume_device_file_name }}"
 
diff --git a/terraform/oci/kconfigs/Kconfig.storage b/terraform/oci/kconfigs/Kconfig.storage
index ed872a26834e..15a2a05bb26a 100644
--- a/terraform/oci/kconfigs/Kconfig.storage
+++ b/terraform/oci/kconfigs/Kconfig.storage
@@ -122,6 +122,138 @@ config TERRAFORM_OCI_VOLUMES_SIZE
 	default 4096 if TERRAFORM_OCI_VOLUMES_SIZE_4096G
 	default 8192 if TERRAFORM_OCI_VOLUMES_SIZE_8192G
 
+choice
+	prompt "Volume Performance Units for each additional volume"
+	default TERRAFORM_OCI_VPUS_PER_GB_10
+	help
+	  Higher VPUs per GB increases maximum IOPS and throughput,
+	  but costs more. For more information, see:
+
+	  https://docs.oracle.com/en-us/iaas/Content/Block/Concepts/blockvolumeperformance.htm#vpus
+
+config TERRAFORM_OCI_VPUS_PER_GB_0
+	bool "0 VPUs"
+	help
+	  Lowest cost.
+
+	  2 IOPS/GB, 3,000 IOPS maximum/volume.
+	  480 MBPS maximum/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_10
+	bool "10 VPUs"
+	help
+	  Balanced performance.
+
+	  60 IOPS/GB, 25,000 IOPS maximum/volume.
+	  480 MBPS maximum/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_20
+	bool "20 VPUs"
+	help
+	  Higher performance.
+
+	  75 IOPS/GB, 50,000 IOPS maximum/volume.
+	  680 MBPS maximum/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_30
+	bool "30 VPUs"
+	help
+	  Ultra high performance.
+
+	  90 IOPS/GB, 75,000 IOPS maximum/volume.
+	  880 MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_40
+	bool "40 VPUs"
+	help
+	  Ultra high performance.
+
+	  105 IOPS/GB, 100,000 IOPS maximum/volume.
+	  1,080 MBPS maximum/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_50
+	bool "50 VPUs"
+	help
+	  Ultra high performance.
+
+	  120 IOPS/GB, 125,000 IOPS maximum/volume.
+	  1,280 max MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_60
+	bool "60 VPUs"
+	help
+	  Ultra high performance.
+
+	  135 IOPS/GB, 150,000 IOPS maximum/volume.
+	  1,480 max MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_70
+	bool "70 VPUs"
+	help
+	  Ultra high performance.
+
+	  150 IOPS/GB, 175,000 IOPS maximum/volume.
+	  1,680 max MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_80
+	bool "80 VPUs"
+	help
+	  Ultra high performance.
+
+	  165 IOPS/GB, 200,000 IOPS maximum/volume.
+	  1,880 max MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_90
+	bool "90 VPUs"
+	help
+	  Ultra high performance.
+
+	  180 IOPS/GB, 225,000 IOPS maximum/volume.
+	  2,080 max MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_100
+	bool "100 VPUs"
+	help
+	  Ultra high performance.
+
+	  195 IOPS/GB, 250,000 IOPS maximum/volume.
+	  2,280 max MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_110
+	bool "110 VPUs"
+	help
+	  Ultra high performance.
+
+	  210 IOPS/GB, 275,000 IOPS maximum/volume.
+	  2,480 max MBPS/volume.
+
+config TERRAFORM_OCI_VPUS_PER_GB_120
+	bool "120 VPUs"
+	help
+	  Ultra high performance.
+
+	  225 IOPS/GB, 300,000 IOPS maximum/volume.
+	  2,680 max MBPS/volume.
+
+endchoice
+
+config TERRAFORM_OCI_VPUS_PER_GB
+	int
+	output yaml
+	default 0 if TERRAFORM_OCI_VPUS_PER_GB_0
+	default 10 if TERRAFORM_OCI_VPUS_PER_GB_10
+	default 20 if TERRAFORM_OCI_VPUS_PER_GB_20
+	default 30 if TERRAFORM_OCI_VPUS_PER_GB_30
+	default 40 if TERRAFORM_OCI_VPUS_PER_GB_40
+	default 50 if TERRAFORM_OCI_VPUS_PER_GB_50
+	default 60 if TERRAFORM_OCI_VPUS_PER_GB_60
+	default 70 if TERRAFORM_OCI_VPUS_PER_GB_70
+	default 80 if TERRAFORM_OCI_VPUS_PER_GB_80
+	default 90 if TERRAFORM_OCI_VPUS_PER_GB_90
+	default 100 if TERRAFORM_OCI_VPUS_PER_GB_100
+	default 110 if TERRAFORM_OCI_VPUS_PER_GB_110
+	default 120 if TERRAFORM_OCI_VPUS_PER_GB_120
+
 config TERRAFORM_OCI_DATA_VOLUME_DEVICE_FILE_NAME
 	string "Data volume's device file name"
 	output yaml
diff --git a/terraform/oci/main.tf b/terraform/oci/main.tf
index d231f2225e5d..1d2d0f82e00f 100644
--- a/terraform/oci/main.tf
+++ b/terraform/oci/main.tf
@@ -50,6 +50,7 @@ module "volumes" {
   vol_instance_name       = element(var.kdevops_nodes, count.index)
   vol_volume_count        = var.oci_volumes_per_instance
   vol_volume_size         = var.oci_volumes_size
+  vol_vpus_per_gb         = var.oci_vpus_per_gb
 }
 
 resource "oci_core_vcn" "kdevops_vcn" {
diff --git a/terraform/oci/vars.tf b/terraform/oci/vars.tf
index c116829fbc72..401341feb34b 100644
--- a/terraform/oci/vars.tf
+++ b/terraform/oci/vars.tf
@@ -98,3 +98,8 @@ variable "oci_volumes_size" {
   description = "The size of additional block volumes, in gibibytes"
   type        = number
 }
+
+variable "oci_vpus_per_gb" {
+  description = "Volume performance units"
+  type        = number
+}
diff --git a/terraform/oci/volumes/main.tf b/terraform/oci/volumes/main.tf
index 56b9a476015a..7483ff72836e 100644
--- a/terraform/oci/volumes/main.tf
+++ b/terraform/oci/volumes/main.tf
@@ -1,9 +1,11 @@
 resource "oci_core_volume" "kdevops_volume_extra" {
-  count               = var.vol_volume_count
-  availability_domain = var.vol_availability_domain
-  display_name        = format("kdevops_%s_volume%02d", var.vol_instance_name, count.index + 1)
-  compartment_id      = var.vol_compartment_ocid
-  size_in_gbs         = var.vol_volume_size
+  count                = var.vol_volume_count
+  availability_domain  = var.vol_availability_domain
+  compartment_id       = var.vol_compartment_ocid
+  display_name         = format("kdevops_%s_vol%02d", var.vol_instance_name, count.index + 1)
+  is_auto_tune_enabled = false
+  size_in_gbs          = var.vol_volume_size
+  vpus_per_gb          = var.vol_vpus_per_gb
 }
 
 locals {
diff --git a/terraform/oci/volumes/vars.tf b/terraform/oci/volumes/vars.tf
index 57c5e2bf646b..ee702c2d713f 100644
--- a/terraform/oci/volumes/vars.tf
+++ b/terraform/oci/volumes/vars.tf
@@ -27,3 +27,8 @@ variable "vol_volume_size" {
   description = "Size of each volume, in gibibytes"
   type        = number
 }
+
+variable "vol_vpus_per_gb" {
+  description = "Volume performance units"
+  type        = number
+}
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 10/26] terraform/oci: Enable preemptible compute instances
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (8 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 09/26] terraform/oci: Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 11/26] terraform/aws: Fix zone selection for us_west1 Chuck Lever
                   ` (16 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Enabling instance preemption allows the provider to destroy the
instance if it needs the resources. The benefit is a 50%
reduction in price.

Typically, there's nothing on these instances that can't be
re-cloned or reproduced.

This should really be a Kconfig setting.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/oci/main.tf | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/terraform/oci/main.tf b/terraform/oci/main.tf
index 1d2d0f82e00f..45a4b4bc0c63 100644
--- a/terraform/oci/main.tf
+++ b/terraform/oci/main.tf
@@ -37,6 +37,13 @@ resource "oci_core_instance" "kdevops_instance" {
     ssh_authorized_keys = file(var.ssh_config_pubkey_file)
   }
 
+  preemptible_instance_config {
+    preemption_action {
+      type                 = "TERMINATE"
+      preserve_boot_volume = false
+    }
+  }
+
   preserve_boot_volume = false
 }
 
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 11/26] terraform/aws: Fix zone selection for us_west1
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (9 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 10/26] terraform/oci: Enable preemptible compute instances Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 12/26] Revert "terraform/aws: Add Oracle Linux AMI selections" Chuck Lever
                   ` (15 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

The us_west1 region was missing its zone selection menu.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/aws/kconfigs/Kconfig.location | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/terraform/aws/kconfigs/Kconfig.location b/terraform/aws/kconfigs/Kconfig.location
index b457166e0552..e5dacb9dd630 100644
--- a/terraform/aws/kconfigs/Kconfig.location
+++ b/terraform/aws/kconfigs/Kconfig.location
@@ -573,11 +573,11 @@ endchoice
 
 endif # TERRAFORM_AWS_REGION_US_EAST_2
 
-if TERRAFORM_AWS_REGION_US_WEST_2
+if TERRAFORM_AWS_REGION_US_WEST_1
 
 choice
 	prompt "AWS availability zone"
-	default TERRAFORM_AWS_AV_ZONE_US_WEST_2B
+	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
@@ -591,6 +591,23 @@ config TERRAFORM_AWS_AV_ZONE_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
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 12/26] Revert "terraform/aws: Add Oracle Linux AMI selections"
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (10 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 11/26] terraform/aws: Fix zone selection for us_west1 Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 13/26] terraform/aws: Remove unused terraform tags Chuck Lever
                   ` (14 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

The Oracle Linux AMIs are only for-pay marketplace options, not
created by Amazon itself.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/aws/kconfigs/Kconfig.compute        |  4 --
 terraform/aws/kconfigs/distros/Kconfig.oracle | 48 -------------------
 2 files changed, 52 deletions(-)
 delete mode 100644 terraform/aws/kconfigs/distros/Kconfig.oracle

diff --git a/terraform/aws/kconfigs/Kconfig.compute b/terraform/aws/kconfigs/Kconfig.compute
index bae0ea1c9d7b..4b9c6efb6372 100644
--- a/terraform/aws/kconfigs/Kconfig.compute
+++ b/terraform/aws/kconfigs/Kconfig.compute
@@ -99,9 +99,6 @@ config TERRAFORM_AWS_DISTRO_DEBIAN
 config TERRAFORM_AWS_DISTRO_FEDORA
 	bool "Fedora Core"
 
-config TERRAFORM_AWS_DISTRO_OL
-	bool "Oracle Linux"
-
 config TERRAFORM_AWS_DISTRO_RHEL
 	bool "Red Hat Enterprise Linux"
 
@@ -116,7 +113,6 @@ 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.oracle"
 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/distros/Kconfig.oracle b/terraform/aws/kconfigs/distros/Kconfig.oracle
deleted file mode 100644
index fd4166c457c5..000000000000
--- a/terraform/aws/kconfigs/distros/Kconfig.oracle
+++ /dev/null
@@ -1,48 +0,0 @@
-if TERRAFORM_AWS_DISTRO_OL
-
-config TERRAFORM_AWS_AMI_OWNER
-	string
-	output yaml
-	default "amazon"
-
-if TARGET_ARCH_X86_64
-
-choice
-	prompt "Oracle Linux release"
-	default TERRAFORM_AWS_OL9_X86_64
-
-config TERRAFORM_AWS_OL8_X86_64
-	bool "Oracle Linux 8 (x86)"
-
-config TERRAFORM_AWS_OL9_X86_64
-	bool "Oracle Linux 9 (x86)"
-
-endchoice
-
-config TERRAFORM_AWS_NS
-	string
-	output yaml
-	default "Oracle-Linux-8.*x86_64-*" if TERRAFORM_AWS_OL8_X86_64
-	default "Oracle-Linux-9.*x86_64-*" if TERRAFORM_AWS_OL9_X86_64
-
-endif # TARGET_ARCH_X86_64
-
-if TARGET_ARCH_ARM64
-
-choice
-	prompt "Oracle Linux release"
-	default TERRAFORM_AWS_OL9_ARM64
-
-config TERRAFORM_AWS_OL9_ARM64
-	bool "Oracle Linux 9 (arm64)"
-
-endchoice
-
-config TERRAFORM_AWS_NS
-	string
-	output yaml
-	default "Oracle-Linux-9.*arm64-*" if TERRAFORM_AWS_OL9_ARM64
-
-endif # TARGET_ARCH_ARM64
-
-endif # TERRAFORM_AWS_DISTRO_OL
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 13/26] terraform/aws: Remove unused terraform tags
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (11 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 12/26] Revert "terraform/aws: Add Oracle Linux AMI selections" Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 14/26] terraform/GCE: Fix the default disk throughput values Chuck Lever
                   ` (13 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Clean up.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/aws/main.tf | 13 -------------
 1 file changed, 13 deletions(-)

diff --git a/terraform/aws/main.tf b/terraform/aws/main.tf
index 8b343484f1ab..82a936c77f01 100644
--- a/terraform/aws/main.tf
+++ b/terraform/aws/main.tf
@@ -15,9 +15,6 @@ resource "aws_vpc" "kdevops_vpc" {
   cidr_block           = "10.0.0.0/16"
   enable_dns_hostnames = true
   enable_dns_support   = true
-  tags = {
-    Name = "kdevops"
-  }
 }
 
 resource "aws_subnet" "kdevops_subnet" {
@@ -132,10 +129,6 @@ resource "aws_instance" "kdevops_instance" {
     data.template_cloudinit_config.kdevops_config.*.rendered,
     count.index,
   )
-
-  tags = {
-    Name = element(var.kdevops_nodes, count.index),
-  }
 }
 
 module "kdevops_ebs_volumes" {
@@ -158,9 +151,6 @@ resource "aws_eip" "kdevops_eip" {
 
 resource "aws_internet_gateway" "kdevops_gw" {
   vpc_id = aws_vpc.kdevops_vpc.id
-  tags = {
-    Name = "kdevops-gw"
-  }
 }
 
 resource "aws_route_table" "kdevops_rt" {
@@ -169,9 +159,6 @@ resource "aws_route_table" "kdevops_rt" {
     cidr_block = "0.0.0.0/0"
     gateway_id = aws_internet_gateway.kdevops_gw.id
   }
-  tags = {
-    Name = "kdevops_rt"
-  }
 }
 
 resource "aws_route_table_association" "kdevops_rt_assoc" {
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 14/26] terraform/GCE: Fix the default disk throughput values
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (12 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 13/26] terraform/aws: Remove unused terraform tags Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 15/26] terraform/gce: Remove unused tags Chuck Lever
                   ` (12 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/gce/kconfigs/Kconfig.storage | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/terraform/gce/kconfigs/Kconfig.storage b/terraform/gce/kconfigs/Kconfig.storage
index a71a5d62753b..717f50dfe32d 100644
--- a/terraform/gce/kconfigs/Kconfig.storage
+++ b/terraform/gce/kconfigs/Kconfig.storage
@@ -195,14 +195,14 @@ config TERRAFORM_GCE_DISK_IOPS
 	int "Provisioned IOPS for each attached disk"
 	output yaml
 	range 125 120000
-	default 240
+	default 3000
 	depends on TERRAFORM_GCE_DISK_NEEDS_IOPS
 
 config TERRAFORM_GCE_DISK_THROUGHPUT
 	int "Provisioned throughput for each attached disk"
 	output yaml
-	range 125 600
-	default 240
+	range 125 2400
+	default 300
 	depends on TERRAFORM_GCE_DISK_NEEDS_THROUGHPUT
 
 config TERRAFORM_GCE_DATA_VOLUME_DEVICE_FILE_NAME
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 15/26] terraform/gce: Remove unused tags
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (13 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 14/26] terraform/GCE: Fix the default disk throughput values Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 16/26] terraform/gce: Remove support for Fedora Chuck Lever
                   ` (11 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/gce/main.tf | 2 --
 1 file changed, 2 deletions(-)

diff --git a/terraform/gce/main.tf b/terraform/gce/main.tf
index 0e8120686bfb..816f43098e88 100644
--- a/terraform/gce/main.tf
+++ b/terraform/gce/main.tf
@@ -9,8 +9,6 @@ resource "google_compute_instance" "kdevops_instance" {
   machine_type = var.gce_machine_type
   zone         = var.gce_zone
 
-  tags = ["kdevops"]
-
   boot_disk {
     initialize_params {
       image = data.google_compute_image.kdevops_image.self_link
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 16/26] terraform/gce: Remove support for Fedora
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (14 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 15/26] terraform/gce: Remove unused tags Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 17/26] terraform/gce: Update existing machine types and introduce new ones Chuck Lever
                   ` (10 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Unlike the other Linux distributions, Fedora requires some
cloud-init magic to set up the log-in user. I don't feel like
digging into that right now, and no one is demanding that kdevops
support Fedora on GCE at the moment.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 terraform/gce/kconfigs/Kconfig.compute       |  4 -
 terraform/gce/kconfigs/images/Kconfig.fedora | 95 --------------------
 2 files changed, 99 deletions(-)
 delete mode 100644 terraform/gce/kconfigs/images/Kconfig.fedora

diff --git a/terraform/gce/kconfigs/Kconfig.compute b/terraform/gce/kconfigs/Kconfig.compute
index e647c9bb2ba7..0d3ae98e53d2 100644
--- a/terraform/gce/kconfigs/Kconfig.compute
+++ b/terraform/gce/kconfigs/Kconfig.compute
@@ -77,9 +77,6 @@ config TERRAFORM_GCE_DISTRO_CENTOS
 config TERRAFORM_GCE_DISTRO_DEBIAN
 	bool "Debian"
 
-config TERRAFORM_GCE_DISTRO_FEDORA
-	bool "Fedora"
-
 config TERRAFORM_GCE_DISTRO_OL
 	bool "Oracle Linux"
 
@@ -99,7 +96,6 @@ endchoice
 
 source "terraform/gce/kconfigs/images/Kconfig.centos"
 source "terraform/gce/kconfigs/images/Kconfig.debian"
-source "terraform/gce/kconfigs/images/Kconfig.fedora"
 source "terraform/gce/kconfigs/images/Kconfig.oracle"
 source "terraform/gce/kconfigs/images/Kconfig.opensuse"
 source "terraform/gce/kconfigs/images/Kconfig.rhel"
diff --git a/terraform/gce/kconfigs/images/Kconfig.fedora b/terraform/gce/kconfigs/images/Kconfig.fedora
deleted file mode 100644
index 90999617f9ce..000000000000
--- a/terraform/gce/kconfigs/images/Kconfig.fedora
+++ /dev/null
@@ -1,95 +0,0 @@
-if TERRAFORM_GCE_DISTRO_FEDORA
-
-config TERRAFORM_GCE_IMAGE_PROJECT
-	string
-	output yaml
-	default "fedora-coreos-cloud"
-
-config TERRAFORM_GCE_IMAGE_SIZE
-	int
-	output yaml
-	default 10
-
-if TARGET_ARCH_X86_64
-
-choice
-	prompt "Fedora stream to use"
-	default TERRAFORM_GCE_IMAGE_FEDORA_STABLE_X86_64
-
-config TERRAFORM_GCE_IMAGE_FEDORA_STABLE_X86_64
-	bool "stable (x86)"
-	help
-	  The stable stream is the most reliable stream offered with
-	  changes only reaching that stream after spending a period
-	  of time in the testing stream.
-
-config TERRAFORM_GCE_IMAGE_FEDORA_TESTING_X86_64
-	bool "testing (x86)"
-	help
-	  The testing stream represents what is coming in the next
-	  stable release. Content in this stream is updated
-	  regularly and offers our community an opportunity to catch
-	  breaking changes before they hit the stable stream.
-
-config TERRAFORM_GCE_IMAGE_FEDORA_NEXT_X86_64
-	bool "next (x86)"
-	help
-	  The next stream represents the future. It will often be
-	  used to experiment with new features and also test out
-	  rebases of our platform on top of the next major version
-	  of Fedora. The content in the next stream will also
-	  eventually filter down into testing and on to stable.
-
-endchoice
-
-config TERRAFORM_GCE_IMAGE_FAMILY
-	string
-	output yaml
-	default "fedora-coreos-stable" if TERRAFORM_GCE_IMAGE_FEDORA_STABLE_X86_64
-	default "fedora-coreos-testing" if TERRAFORM_GCE_IMAGE_FEDORA_TESTING_X86_64
-	default "fedora-coreos-next" if TERRAFORM_GCE_IMAGE_FEDORA_NEXT_X86_64
-
-endif # TARGET_ARCH_X86_64
-
-if TARGET_ARCH_ARM64
-
-choice
-	prompt "Fedora stream to use"
-	default TERRAFORM_GCE_IMAGE_FEDORA_STABLE_ARM64
-
-config TERRAFORM_GCE_IMAGE_FEDORA_STABLE_ARM64
-	bool "stable (arm64)"
-	help
-	  The stable stream is the most reliable stream offered with
-	  changes only reaching that stream after spending a period
-	  of time in the testing stream.
-
-config TERRAFORM_GCE_IMAGE_FEDORA_TESTING_ARM64
-	bool "testing (arm64)"
-	help
-	  The testing stream represents what is coming in the next
-	  stable release. Content in this stream is updated
-	  regularly and offers our community an opportunity to catch
-	  breaking changes before they hit the stable stream.
-
-config TERRAFORM_GCE_IMAGE_FEDORA_NEXT_ARM64
-	bool "next (arm64)"
-	help
-	  The next stream represents the future. It will often be
-	  used to experiment with new features and also test out
-	  rebases of our platform on top of the next major version
-	  of Fedora. The content in the next stream will also
-	  eventually filter down into testing and on to stable.
-
-endchoice
-
-config TERRAFORM_GCE_IMAGE_FAMILY
-	string
-	output yaml
-	default "fedora-coreos-stable-arm64" if TERRAFORM_GCE_IMAGE_FEDORA_STABLE_ARM64
-	default "fedora-coreos-testing-arm64" if TERRAFORM_GCE_IMAGE_FEDORA_TESTING_ARM64
-	default "fedora-coreos-next-arm64" if TERRAFORM_GCE_IMAGE_FEDORA_NEXT_ARM64
-
-endif # TARGET_ARCH_ARM64
-
-endif # TERRAFORM_GCE_DISTRO_FEDORA
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 17/26] terraform/gce: Update existing machine types and introduce new ones
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (15 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 16/26] terraform/gce: Remove support for Fedora Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 18:13   ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 18/26] terraform: Create the user's .ssh/config if it does not already exist Chuck Lever
                   ` (9 subsequent siblings)
  26 siblings, 1 reply; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Add a spectrum of cost and performance choices.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 .../gce/kconfigs/machines/Kconfig.c3-standard | 41 +++++++++++++
 .../kconfigs/machines/Kconfig.c3d-standard    | 46 +++++++++++++++
 .../gce/kconfigs/machines/Kconfig.c4-standard | 23 +++++---
 .../kconfigs/machines/Kconfig.c4a-standard    | 57 ++++++++++++++++++
 .../kconfigs/machines/Kconfig.c4d-standard    | 51 ++++++++++++++++
 .../gce/kconfigs/machines/Kconfig.e2-highcpu  | 58 +++++++++++++++++++
 .../gce/kconfigs/machines/Kconfig.e2-standard | 58 +++++++++++++++++++
 .../gce/kconfigs/machines/Kconfig.n1-highcpu  | 55 ++++++++++++++++++
 .../gce/kconfigs/machines/Kconfig.n1-standard | 26 +++++----
 .../gce/kconfigs/machines/Kconfig.n2-highcpu  | 16 +++--
 .../gce/kconfigs/machines/Kconfig.n2-standard | 16 +++--
 .../gce/kconfigs/machines/Kconfig.n2d-highcpu | 15 +++--
 .../kconfigs/machines/Kconfig.n2d-standard    | 17 +++---
 .../gce/kconfigs/machines/Kconfig.n4-highcpu  | 16 +++--
 .../gce/kconfigs/machines/Kconfig.n4-standard | 16 +++--
 15 files changed, 439 insertions(+), 72 deletions(-)
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c3-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c3d-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c4a-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c4d-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.e2-highcpu
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.e2-standard
 create mode 100644 terraform/gce/kconfigs/machines/Kconfig.n1-highcpu

diff --git a/terraform/gce/kconfigs/machines/Kconfig.c3-standard b/terraform/gce/kconfigs/machines/Kconfig.c3-standard
new file mode 100644
index 000000000000..183ac315cabf
--- /dev/null
+++ b/terraform/gce/kconfigs/machines/Kconfig.c3-standard
@@ -0,0 +1,41 @@
+if TERRAFORM_GCE_MACHINE_FAMILY_C3_STANDARD
+
+choice
+	prompt "GCE Machine Type"
+	default TERRAFORM_GCE_MACHINE_C3_STANDARD_4
+	help
+	  C3 VMs are powered by the 4th generation Intel Xeon
+	  Scalable processors (code-named Sapphire Rapids), DDR5
+	  memory, and Titanium, enabling higher levels of networking
+	  performance, isolation and security.
+
+config TERRAFORM_GCE_MACHINE_C3_STANDARD_4
+	bool "c3-standard-4"
+	help
+	  4 vCPUs (2 cores) and 16GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C3_STANDARD_8
+	bool "c3-standard-8"
+	help
+	  8 vCPUs (4 cores) and 32GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C3_STANDARD_22
+	bool "c3-standard-22"
+	help
+	  22 vCPUs (11 cores) and 88GB of memory.
+
+endchoice
+
+config TERRAFORM_GCE_MACHINE_TYPE
+	string
+	output yaml
+	default "c3-standard-4" if TERRAFORM_GCE_MACHINE_C3_STANDARD_4
+	default "c3-standard-8" if TERRAFORM_GCE_MACHINE_C3_STANDARD_8
+	default "c3-standard-22" if TERRAFORM_GCE_MACHINE_C3_STANDARD_22
+
+config TERRAFORM_GCE_IMAGE_TYPE
+	string
+	output yaml
+	default "hyperdisk-balanced"
+
+endif # TERRAFORM_GCE_MACHINE_FAMILY_C3_STANDARD
diff --git a/terraform/gce/kconfigs/machines/Kconfig.c3d-standard b/terraform/gce/kconfigs/machines/Kconfig.c3d-standard
new file mode 100644
index 000000000000..4af821e5a14e
--- /dev/null
+++ b/terraform/gce/kconfigs/machines/Kconfig.c3d-standard
@@ -0,0 +1,46 @@
+if TERRAFORM_GCE_MACHINE_FAMILY_C3D_STANDARD
+
+choice
+	prompt "GCE Machine Type"
+	default TERRAFORM_GCE_MACHINE_C3D_STANDARD_4
+	help
+	  C3D VMs are powered by the 4th-gen AMD EPYC (Genoa)
+	  processor. C3D uses Titanium, enabling higher levels
+	  of networking performance, isolation and security.
+
+config TERRAFORM_GCE_MACHINE_C3D_STANDARD_4
+	bool "c3d-standard-4"
+	help
+	  4 vCPUs (2 cores) and 16GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C3D_STANDARD_8
+	bool "c3d-standard-8"
+	help
+	  8 vCPUs (4 cores) and 32GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C3D_STANDARD_16
+	bool "c3d-standard-16"
+	help
+	  16 vCPUs (8 cores) and 64GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C3D_STANDARD_30
+	bool "c3d-standard-30"
+	help
+	  30 vCPUs (15 cores) and 120GB of memory.
+
+endchoice
+
+config TERRAFORM_GCE_MACHINE_TYPE
+	string
+	output yaml
+	default "c3d-standard-4" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_4
+	default "c3d-standard-8" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_8
+	default "c3d-standard-16" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_16
+	default "c3d-standard-30" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_30
+
+config TERRAFORM_GCE_IMAGE_TYPE
+	string
+	output yaml
+	default "hyperdisk-balanced"
+
+endif # TERRAFORM_GCE_MACHINE_FAMILY_C3D_STANDARD
diff --git a/terraform/gce/kconfigs/machines/Kconfig.c4-standard b/terraform/gce/kconfigs/machines/Kconfig.c4-standard
index 75c2eed2d111..3ec7f4ec1620 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.c4-standard
+++ b/terraform/gce/kconfigs/machines/Kconfig.c4-standard
@@ -4,35 +4,39 @@ choice
 	prompt "GCE Machine Type"
 	default TERRAFORM_GCE_MACHINE_C4_STANDARD_4
 	help
-	  This option sets the GCE machine type. For other machine
-	  types, refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
+	  C4 VMs are powered by 6th generation (code-named Granite
+	  Rapids) or 5th generation (code-named Emerald Rapids)
+	  Intel Xeon Scalable processors and Titanium.
 
 config TERRAFORM_GCE_MACHINE_C4_STANDARD_2
 	bool "c4-standard-2"
 	help
-	  2 vCPU (1 core) and 7GB of memory.
+	  2 vCPUs (1 core) and 7GB of memory.
 
 config TERRAFORM_GCE_MACHINE_C4_STANDARD_4
 	bool "c4-standard-4"
 	help
-	  4 vCPU (2 core) and 15GB of memory.
+	  4 vCPUs (2 core) and 15GB of memory.
 
 config TERRAFORM_GCE_MACHINE_C4_STANDARD_8
 	bool "c4-standard-8"
 	help
-	  8 vCPU (4 cores) and 30GB of memory.
+	  8 vCPUs (4 cores) and 30GB of memory.
 
 config TERRAFORM_GCE_MACHINE_C4_STANDARD_16
 	bool "c4-standard-16"
 	help
-	  16 vCPU (8 cores) and 60GB of memory.
+	  16 vCPUs (8 cores) and 60GB of memory.
 
 config TERRAFORM_GCE_MACHINE_C4_STANDARD_24
 	bool "c4-standard-24"
 	help
-	  24 vCPU (12 cores) and 90GB of memory.
+	  24 vCPUs (12 cores) and 90GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4_STANDARD_32
+	bool "c4-standard-32"
+	help
+	  32 vCPUs (16 cores) and 120 of memory.
 
 endchoice
 
@@ -44,6 +48,7 @@ config TERRAFORM_GCE_MACHINE_TYPE
 	default "c4-standard-8" if TERRAFORM_GCE_MACHINE_C4_STANDARD_8
 	default "c4-standard-16" if TERRAFORM_GCE_MACHINE_C4_STANDARD_16
 	default "c4-standard-24" if TERRAFORM_GCE_MACHINE_C4_STANDARD_24
+	default "c4-standard-32" if TERRAFORM_GCE_MACHINE_C4_STANDARD_32
 
 config TERRAFORM_GCE_IMAGE_TYPE
 	string
diff --git a/terraform/gce/kconfigs/machines/Kconfig.c4a-standard b/terraform/gce/kconfigs/machines/Kconfig.c4a-standard
new file mode 100644
index 000000000000..3a486fe4a6c3
--- /dev/null
+++ b/terraform/gce/kconfigs/machines/Kconfig.c4a-standard
@@ -0,0 +1,57 @@
+if TERRAFORM_GCE_MACHINE_FAMILY_C4A_STANDARD
+
+choice
+	prompt "GCE Machine Type"
+	default TERRAFORM_GCE_MACHINE_C4A_STANDARD_4
+	help
+	  C4A VMs are powered by Google's first Arm-based Axion™
+	  processor, DDR5 memory, and local Titanium SSDs.
+
+config TERRAFORM_GCE_MACHINE_C4A_STANDARD_1
+	bool "c4a-standard-1"
+	help
+	  1 vCPU and 4GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4A_STANDARD_2
+	bool "c4a-standard-2"
+	help
+	  2 vCPUs and 8GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4A_STANDARD_4
+	bool "c4a-standard-4"
+	help
+	  4 vCPUs and 16GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4A_STANDARD_8
+	bool "c4a-standard-8"
+	help
+	  8 vCPUs and 32GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4A_STANDARD_16
+	bool "c4a-standard-16"
+	help
+	  16 vCPUs and 64GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4A_STANDARD_32
+	bool "c4a-standard-32"
+	help
+	  32 vCPUs and 128GB of memory.
+
+endchoice
+
+config TERRAFORM_GCE_MACHINE_TYPE
+	string
+	output yaml
+	default "c4a-standard-1" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_1
+	default "c4a-standard-2" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_2
+	default "c4a-standard-4" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_4
+	default "c4a-standard-8" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_8
+	default "c4a-standard-16" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_16
+	default "c4a-standard-32" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_32
+
+config TERRAFORM_GCE_IMAGE_TYPE
+	string
+	output yaml
+	default "hyperdisk-balanced"
+
+endif # TERRAFORM_GCE_MACHINE_FAMILY_C4A_STANDARD
diff --git a/terraform/gce/kconfigs/machines/Kconfig.c4d-standard b/terraform/gce/kconfigs/machines/Kconfig.c4d-standard
new file mode 100644
index 000000000000..6d7b4bb96c8b
--- /dev/null
+++ b/terraform/gce/kconfigs/machines/Kconfig.c4d-standard
@@ -0,0 +1,51 @@
+if TERRAFORM_GCE_MACHINE_FAMILY_C4D_STANDARD
+
+choice
+	prompt "GCE Machine Type"
+	default TERRAFORM_GCE_MACHINE_C4D_STANDARD_4
+	help
+	  C4D VMs are powered by the fifth generation AMD EPYC Turin
+	  processor and Titanium.
+
+config TERRAFORM_GCE_MACHINE_C4D_STANDARD_2
+	bool "c4d-standard-2"
+	help
+	  2 vCPUs (1 core) and 7GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4D_STANDARD_4
+	bool "c4d-standard-4"
+	help
+	  4 vCPUs (2 core) and 15GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4D_STANDARD_8
+	bool "c4d-standard-8"
+	help
+	  8 vCPUs (4 cores) and 31GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4D_STANDARD_16
+	bool "c4d-standard-16"
+	help
+	  16 vCPUs (8 cores) and 62GB of memory.
+
+config TERRAFORM_GCE_MACHINE_C4D_STANDARD_24
+	bool "c4d-standard-24"
+	help
+	  32 vCPUs (16 cores) and 124GB of memory.
+
+endchoice
+
+config TERRAFORM_GCE_MACHINE_TYPE
+	string
+	output yaml
+	default "c4d-standard-2" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_2
+	default "c4d-standard-4" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_4
+	default "c4d-standard-8" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_8
+	default "c4d-standard-16" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_16
+	default "c4d-standard-32" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_32
+
+config TERRAFORM_GCE_IMAGE_TYPE
+	string
+	output yaml
+	default "hyperdisk-balanced"
+
+endif # TERRAFORM_GCE_MACHINE_FAMILY_C4D_STANDARD
diff --git a/terraform/gce/kconfigs/machines/Kconfig.e2-highcpu b/terraform/gce/kconfigs/machines/Kconfig.e2-highcpu
new file mode 100644
index 000000000000..eb401451b3c8
--- /dev/null
+++ b/terraform/gce/kconfigs/machines/Kconfig.e2-highcpu
@@ -0,0 +1,58 @@
+if TERRAFORM_GCE_MACHINE_FAMILY_E2_HIGHCPU
+
+choice
+	prompt "GCE Machine type"
+	default TERRAFORM_GCE_MACHINE_E2_HIGHCPU_8
+	help
+	  The E2 machine series offers both Intel and AMD EPYC
+	  processors, selected for you at the time of VM creation.
+	  Machine types in this series are available in all regions
+	  and zones and support a virtio memory balloon device.
+
+config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_2
+	bool "e2-highcpu-2"
+	depends on TARGET_ARCH_X86_64
+	help
+	  2 vCPUs (1 core) and 2GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_4
+	bool "e2-highcpu-4"
+	depends on TARGET_ARCH_X86_64
+	help
+	  4 vCPUs (2 cores) and 4GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_8
+	bool "e2-highcpu-8"
+	depends on TARGET_ARCH_X86_64
+	help
+	  8 vCPUs (4 cores) and 8GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_16
+	bool "e2-highcpu-16"
+	depends on TARGET_ARCH_X86_64
+	help
+	  16 vCPUs (8 cores) and 16GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_32
+	bool "e2-highcpu-32"
+	depends on TARGET_ARCH_X86_64
+	help
+	  32 vCPUs (16 cores) and 32GB of memory.
+
+endchoice
+
+config TERRAFORM_GCE_MACHINE_TYPE
+	string
+	output yaml
+	default "e2-highcpu-2" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_2
+	default "e2-highcpu-4" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_4
+	default "e2-highcpu-8" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_8
+	default "e2-highcpu-16" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_16
+	default "e2-highcpu-32" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_32
+
+config TERRAFORM_GCE_IMAGE_TYPE
+	string
+	output yaml
+	default "pd-balanced"
+
+endif # TERRAFORM_GCE_MACHINE_FAMILY_E2_HIGHCPU
diff --git a/terraform/gce/kconfigs/machines/Kconfig.e2-standard b/terraform/gce/kconfigs/machines/Kconfig.e2-standard
new file mode 100644
index 000000000000..26180f841d5a
--- /dev/null
+++ b/terraform/gce/kconfigs/machines/Kconfig.e2-standard
@@ -0,0 +1,58 @@
+if TERRAFORM_GCE_MACHINE_FAMILY_E2_STANDARD
+
+choice
+	prompt "GCE Machine type"
+	default TERRAFORM_GCE_MACHINE_E2_STANDARD_8
+	help
+	  The E2 machine series offers both Intel and AMD EPYC
+	  processors, selected for you at the time of VM creation.
+	  Machine types in this series are available in all regions
+	  and zones and support a virtio memory balloon device.
+
+config TERRAFORM_GCE_MACHINE_E2_STANDARD_2
+	bool "e2-standard-2"
+	depends on TARGET_ARCH_X86_64
+	help
+	  2 vCPUs (1 core) and 8GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_STANDARD_4
+	bool "e2-standard-4"
+	depends on TARGET_ARCH_X86_64
+	help
+	  4 vCPUs (2 cores) and 16GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_STANDARD_8
+	bool "e2-standard-8"
+	depends on TARGET_ARCH_X86_64
+	help
+	  8 vCPUs (4 cores) and 32GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_STANDARD_16
+	bool "e2-standard-16"
+	depends on TARGET_ARCH_X86_64
+	help
+	  16 vCPUs (8 cores) and 64GB of memory.
+
+config TERRAFORM_GCE_MACHINE_E2_STANDARD_32
+	bool "e2-standard-32"
+	depends on TARGET_ARCH_X86_64
+	help
+	  32 vCPUs (16 cores) and 128GB of memory.
+
+endchoice
+
+config TERRAFORM_GCE_MACHINE_TYPE
+	string
+	output yaml
+	default "e2-standard-2" if TERRAFORM_GCE_MACHINE_E2_STANDARD_2
+	default "e2-standard-4" if TERRAFORM_GCE_MACHINE_E2_STANDARD_4
+	default "e2-standard-8" if TERRAFORM_GCE_MACHINE_E2_STANDARD_8
+	default "e2-standard-16" if TERRAFORM_GCE_MACHINE_E2_STANDARD_16
+	default "e2-standard-32" if TERRAFORM_GCE_MACHINE_E2_STANDARD_32
+
+config TERRAFORM_GCE_IMAGE_TYPE
+	string
+	output yaml
+	default "pd-balanced"
+
+endif # TERRAFORM_GCE_MACHINE_FAMILY_E2_STANDARD
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n1-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n1-highcpu
new file mode 100644
index 000000000000..7684b2961962
--- /dev/null
+++ b/terraform/gce/kconfigs/machines/Kconfig.n1-highcpu
@@ -0,0 +1,55 @@
+if TERRAFORM_GCE_MACHINE_FAMILY_N1_HIGHCPU
+
+choice
+	prompt "GCE Machine type"
+	default TERRAFORM_GCE_MACHINE_N1_HIGHCPU_8
+	help
+	  The N1 machine series is Compute Engine's first generation
+	  general-purpose machine series available on Intel Skylake,
+	  Broadwell, Haswell, Sandy Bridge, and Ivy Bridge CPU
+	  platforms.
+
+config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_2
+	bool "n1-highcpu-2"
+	help
+	  2 vCPUs (1 core) and 1.8GB of memory.
+
+config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_4
+	bool "n1-highcpu-4"
+	help
+	  4 vCPUs (2 cores) and 3.6GB of memory.
+
+config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_8
+	bool "n1-highcpu-8"
+	help
+	  8 vCPUs (4 cores) and 7.2GB of memory.
+
+config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_16
+	bool "n1-highcpu-16"
+	depends on TARGET_ARCH_X86_64
+	help
+	  16 vCPUs (8 cores) and 14.4GB of memory.
+
+config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_32
+	bool "n1-highcpu-32"
+	depends on TARGET_ARCH_X86_64
+	help
+	  32 vCPUs (16 cores) and 28.8GB of memory.
+
+endchoice
+
+config TERRAFORM_GCE_MACHINE_TYPE
+	string
+	output yaml
+	default "n1-highcpu-2" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_2
+	default "n1-highcpu-4" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_4
+	default "n1-highcpu-8" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_8
+	default "n1-highcpu-16" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_16
+	default "n1-highcpu-32" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_32
+
+config TERRAFORM_GCE_IMAGE_TYPE
+	string
+	output yaml
+	default "pd-balanced"
+
+endif # TERRAFORM_GCE_MACHINE_FAMILY_N1_HIGHCPU
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n1-standard b/terraform/gce/kconfigs/machines/Kconfig.n1-standard
index 65dbd672893d..7201231c74a0 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.n1-standard
+++ b/terraform/gce/kconfigs/machines/Kconfig.n1-standard
@@ -4,12 +4,10 @@ choice
 	prompt "GCE Machine type"
 	default TERRAFORM_GCE_MACHINE_N1_STANDARD_8
 	help
-	  This option sets the GCE machine type. For other machine types,
-	  refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
-
-	  Documentation: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance#machine_type
+	  The N1 machine series is Compute Engine's first generation
+	  general-purpose machine series available on Intel Skylake,
+	  Broadwell, Haswell, Sandy Bridge, and Ivy Bridge CPU
+	  platforms.
 
 config TERRAFORM_GCE_MACHINE_N1_STANDARD_1
 	bool "n1-standard-1"
@@ -19,23 +17,30 @@ config TERRAFORM_GCE_MACHINE_N1_STANDARD_1
 config TERRAFORM_GCE_MACHINE_N1_STANDARD_2
 	bool "n1-standard-2"
 	help
-	  2 vCPU (1 core) and 7.5GB of memory.
+	  2 vCPUs (1 core) and 7.5GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N1_STANDARD_4
 	bool "n1-standard-4"
 	help
-	  4 vCPU (2 cores) and 15GB of memory.
+	  4 vCPUs (2 cores) and 15GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N1_STANDARD_8
 	bool "n1-standard-8"
 	help
-	  8 vCPU (4 cores) and 30GB of memory.
+	  8 vCPUs (4 cores) and 30GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N1_STANDARD_16
 	bool "n1-standard-16"
 	depends on TARGET_ARCH_X86_64
 	help
-	  16 vCPU (8 cores) and 60GB of memory.
+	  16 vCPUs (8 cores) and 60GB of memory.
+
+config TERRAFORM_GCE_MACHINE_N1_STANDARD_32
+	bool "n1-standard-32"
+	depends on TARGET_ARCH_X86_64
+	help
+	  32 vCPUs (16 cores) and 120GB of memory.
+
 endchoice
 
 config TERRAFORM_GCE_MACHINE_TYPE
@@ -46,6 +51,7 @@ config TERRAFORM_GCE_MACHINE_TYPE
 	default "n1-standard-4" if TERRAFORM_GCE_MACHINE_N1_STANDARD_4
 	default "n1-standard-8" if TERRAFORM_GCE_MACHINE_N1_STANDARD_8
 	default "n1-standard-16" if TERRAFORM_GCE_MACHINE_N1_STANDARD_16
+	default "n1-standard-32" if TERRAFORM_GCE_MACHINE_N1_STANDARD_32
 
 config TERRAFORM_GCE_IMAGE_TYPE
 	string
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu
index 8aa6893c7252..83823753dc93 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu
+++ b/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu
@@ -4,40 +4,38 @@ choice
 	prompt "GCE Machine type"
 	default TERRAFORM_GCE_MACHINE_N2_HIGHCPU_4
 	help
-	  This option sets the GCE machine type. For other machine
-	  types, refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
+	  The N2 machine series can run on either Intel Cascade Lake
+	  (on smaller configurations) or Intel Ice Lake.
 
 config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_2
 	bool "n2-highcpu-2"
 	depends on TARGET_ARCH_X86_64
 	help
-	  2 vCPU (1 core) and 2GB of memory.
+	  2 vCPUs (1 core) and 2GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_4
 	bool "n2-highcpu-4"
 	depends on TARGET_ARCH_X86_64
 	help
-	  4 vCPU (2 core) and 4GB of memory.
+	  4 vCPUs (2 cores) and 4GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_8
 	bool "n2-highcpu-8"
 	depends on TARGET_ARCH_X86_64
 	help
-	  8 vCPU (4 cores) and 8GB of memory.
+	  8 vCPUs (4 cores) and 8GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_16
 	bool "n2-highcpu-16"
 	depends on TARGET_ARCH_X86_64
 	help
-	  16 vCPU (8 cores) and 16GB of memory.
+	  16 vCPUs (8 cores) and 16GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_32
 	bool "n2-highcpu-32"
 	depends on TARGET_ARCH_X86_64
 	help
-	  32 vCPU (16 cores) and 32GB of memory.
+	  32 vCPUs (16 cores) and 32GB of memory.
 
 endchoice
 
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2-standard b/terraform/gce/kconfigs/machines/Kconfig.n2-standard
index b7b2d68fa522..a485a754ab44 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.n2-standard
+++ b/terraform/gce/kconfigs/machines/Kconfig.n2-standard
@@ -4,40 +4,38 @@ choice
 	prompt "GCE Machine type"
 	default TERRAFORM_GCE_MACHINE_N2_STANDARD_8
 	help
-	  This option sets the GCE machine type. For other machine
-	  types, refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
+	  The N2 machine series can run on either Intel Cascade Lake
+	  (on smaller configurations) or Intel Ice Lake.
 
 config TERRAFORM_GCE_MACHINE_N2_STANDARD_2
 	bool "n2-standard-2"
 	depends on TARGET_ARCH_X86_64
 	help
-	  2 vCPU (1 core) and 8GB of memory.
+	  2 vCPUs (1 core) and 8GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_STANDARD_4
 	bool "n2-standard-4"
 	depends on TARGET_ARCH_X86_64
 	help
-	  4 vCPU (2 core) and 16GB of memory.
+	  4 vCPUs (2 cores) and 16GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_STANDARD_8
 	bool "n2-standard-8"
 	depends on TARGET_ARCH_X86_64
 	help
-	  8 vCPU (4 cores) and 32GB of memory.
+	  8 vCPUs (4 cores) and 32GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_STANDARD_16
 	bool "n2-standard-16"
 	depends on TARGET_ARCH_X86_64
 	help
-	  16 vCPU (8 cores) and 64GB of memory.
+	  16 vCPUs (8 cores) and 64GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2_STANDARD_32
 	bool "n2-standard-32"
 	depends on TARGET_ARCH_X86_64
 	help
-	  32 vCPU (16 cores) and 128GB of memory.
+	  32 vCPUs (16 cores) and 128GB of memory.
 
 endchoice
 
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu
index 3050349416fd..e3cf9c6e5c41 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu
+++ b/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu
@@ -4,10 +4,9 @@ choice
 	prompt "GCE Machine type"
 	default TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_4
 	help
-	  This option sets the GCE machine type. For other machine
-	  types, refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
+	  The N2D machine series can run on either AMD EPYC Milan or
+	  AMD EPYC Rome processors. The third generation AMD EPYC
+	  Milan processor is available only in specific regions and zones.
 
 config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_2
 	bool "n2d-highcpu-2"
@@ -19,25 +18,25 @@ config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_4
 	bool "n2d-highcpu-4"
 	depends on TARGET_ARCH_X86_64
 	help
-	  4 vCPU (2 core) and 4GB of memory.
+	  4 vCPUs (2 cores) and 4GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_8
 	bool "n2d-highcpu-8"
 	depends on TARGET_ARCH_X86_64
 	help
-	  8 vCPU (4 cores) and 8GB of memory.
+	  8 vCPUs (4 cores) and 8GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_16
 	bool "n2d-highcpu-16"
 	depends on TARGET_ARCH_X86_64
 	help
-	  16 vCPU (8 cores) and 16GB of memory.
+	  16 vCPUs (8 cores) and 16GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_32
 	bool "n2d-highcpu-32"
 	depends on TARGET_ARCH_X86_64
 	help
-	  32 vCPU (16 cores) and 32GB of memory.
+	  32 vCPUs (16 cores) and 32GB of memory.
 
 endchoice
 
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2d-standard b/terraform/gce/kconfigs/machines/Kconfig.n2d-standard
index 08744d396595..4f86e0b7d3cf 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.n2d-standard
+++ b/terraform/gce/kconfigs/machines/Kconfig.n2d-standard
@@ -4,40 +4,39 @@ choice
 	prompt "GCE Machine type"
 	default TERRAFORM_GCE_MACHINE_N2D_STANDARD_4
 	help
-	  This option sets the GCE machine type. For other machine
-	  types, refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
+	  The N2D machine series can run on either AMD EPYC Milan or
+	  AMD EPYC Rome processors. The third generation AMD EPYC
+	  Milan processor is available only in specific regions and zones.
 
 config TERRAFORM_GCE_MACHINE_N2D_STANDARD_2
 	bool "n2d-standard-2"
 	depends on TARGET_ARCH_X86_64
 	help
-	  2 vCPU (1 core) and 8GB of memory.
+	  2 vCPUs (1 core) and 8GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2D_STANDARD_4
 	bool "n2d-standard-4"
 	depends on TARGET_ARCH_X86_64
 	help
-	  4 vCPU (2 core) and 16GB of memory.
+	  4 vCPUs (2 cores) and 16GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2D_STANDARD_8
 	bool "n2d-standard-8"
 	depends on TARGET_ARCH_X86_64
 	help
-	  8 vCPU (4 cores) and 32GB of memory.
+	  8 vCPUs (4 cores) and 32GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2D_STANDARD_16
 	bool "n2d-standard-16"
 	depends on TARGET_ARCH_X86_64
 	help
-	  16 vCPU (8 cores) and 64GB of memory.
+	  16 vCPUs (8 cores) and 64GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N2D_STANDARD_32
 	bool "n2d-standard-32"
 	depends on TARGET_ARCH_X86_64
 	help
-	  32 vCPU (16 cores) and 128GB of memory.
+	  32 vCPUs (16 cores) and 128GB of memory.
 
 endchoice
 
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu
index 9f871940a73b..880a386ea01d 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu
+++ b/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu
@@ -4,35 +4,33 @@ choice
 	prompt "GCE Machine Type"
 	default TERRAFORM_GCE_MACHINE_N4_HIGHCPU_4
 	help
-	  This option sets the GCE machine type. For other machine
-	  types, refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
+	  N4 VMs are powered by the 5th generation Intel Xeon Scalable
+	  processors (code-named Emerald Rapids) and Titanium.
 
 config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_2
 	bool "n4-highcpu-2"
 	help
-	  2 vCPU (1 core) and 4GB of memory.
+	  2 vCPUs (1 core) and 4GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_4
 	bool "n4-highcpu-4"
 	help
-	  4 vCPU (2 core) and 8GB of memory.
+	  4 vCPUs (2 cores) and 8GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_8
 	bool "n4-highcpu-8"
 	help
-	  8 vCPU (4 cores) and 16GB of memory.
+	  8 vCPUs (4 cores) and 16GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_16
 	bool "n4-highcpu-16"
 	help
-	  16 vCPU (8 cores) and 32GB of memory.
+	  16 vCPUs (8 cores) and 32GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_32
 	bool "n4-highcpu-32"
 	help
-	  32 vCPU (16 cores) and 64GB of memory.
+	  32 vCPUs (16 cores) and 64GB of memory.
 
 endchoice
 
diff --git a/terraform/gce/kconfigs/machines/Kconfig.n4-standard b/terraform/gce/kconfigs/machines/Kconfig.n4-standard
index d1d1202cbb7b..807f8638e865 100644
--- a/terraform/gce/kconfigs/machines/Kconfig.n4-standard
+++ b/terraform/gce/kconfigs/machines/Kconfig.n4-standard
@@ -4,35 +4,33 @@ choice
 	prompt "GCE Machine Type"
 	default TERRAFORM_GCE_MACHINE_N4_STANDARD_4
 	help
-	  This option sets the GCE machine type. For other machine
-	  types, refer to this page:
-
-	  https://cloud.google.com/compute/docs/machine-types
+	  N4 VMs are powered by the 5th generation Intel Xeon Scalable
+	  processors (code-named Emerald Rapids) and Titanium.
 
 config TERRAFORM_GCE_MACHINE_N4_STANDARD_2
 	bool "n4-standard-2"
 	help
-	  2 vCPU (1 core) and 8GB of memory.
+	  2 vCPUs (1 core) and 8GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_STANDARD_4
 	bool "n4-standard-4"
 	help
-	  4 vCPU (2 core) and 16GB of memory.
+	  4 vCPUs (2 cores) and 16GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_STANDARD_8
 	bool "n4-standard-8"
 	help
-	  8 vCPU (4 cores) and 32GB of memory.
+	  8 vCPUs (4 cores) and 32GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_STANDARD_16
 	bool "n4-standard-16"
 	help
-	  16 vCPU (8 cores) and 64GB of memory.
+	  16 vCPUs (8 cores) and 64GB of memory.
 
 config TERRAFORM_GCE_MACHINE_N4_STANDARD_32
 	bool "n4-standard-32"
 	help
-	  32 vCPU (16 cores) and 128GB of memory.
+	  32 vCPUs (16 cores) and 128GB of memory.
 
 endchoice
 
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 18/26] terraform: Create the user's .ssh/config if it does not already exist
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (16 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 17/26] terraform/gce: Update existing machine types and introduce new ones Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 19/26] pynfs: Don't install xdrlib3 on older RHEL Chuck Lever
                   ` (8 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

While setting up some new test runners, I encountered this failure:

TASK [terraform : Ensure the Include directive is present on the controller] ***
task path: /usr/local/home/queue-5-4/worker/queue-5-4-kernel/build/playbooks/roles/terraform/tasks/main.yml:31
fatal: [localhost]: FAILED! => {
    "changed": false,
    "rc": 257
}
MSG:
Path /usr/local/home/queue-5-4/.ssh/config does not exist !

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/roles/terraform/tasks/main.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/playbooks/roles/terraform/tasks/main.yml b/playbooks/roles/terraform/tasks/main.yml
index a64c93c641b7..26dcbbf787fa 100644
--- a/playbooks/roles/terraform/tasks/main.yml
+++ b/playbooks/roles/terraform/tasks/main.yml
@@ -33,6 +33,7 @@
     path: "{{ sshconfig }}"
     insertbefore: BOF
     append_newline: true
+    create: true
     marker: "# {mark} Managed by kdevops"
     mode: "u=rw,g=r,o=r"
     block: "Include {{ kdevops_ssh_config_prefix }}*"
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 19/26] pynfs: Don't install xdrlib3 on older RHEL
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (17 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 18/26] terraform: Create the user's .ssh/config if it does not already exist Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 20/26] guestfs: Update the guestfs playbook description Chuck Lever
                   ` (7 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

When running the pynfs workflow on RHEL 8:

> :stderr:   Could not find a version that satisfies the requirement
> xdrlib3 (from versions: )
> No matching distribution found for xdrlib3

RHEL 8 sports a version of Python that neither requires or supports
the use of "pip install xdrlib3".

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/roles/pynfs/tasks/install-deps/redhat/main.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/playbooks/roles/pynfs/tasks/install-deps/redhat/main.yml b/playbooks/roles/pynfs/tasks/install-deps/redhat/main.yml
index 5139825ea872..6046c84ac4c4 100644
--- a/playbooks/roles/pynfs/tasks/install-deps/redhat/main.yml
+++ b/playbooks/roles/pynfs/tasks/install-deps/redhat/main.yml
@@ -27,3 +27,5 @@
 - name: Install xdrlib3
   ansible.builtin.pip:
     name: xdrlib3
+  when:
+    - ansible_distribution == "Fedora" or ansible_distribution_major_version | int > 8
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 20/26] guestfs: Update the guestfs playbook description
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (18 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 19/26] pynfs: Don't install xdrlib3 on older RHEL Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 21/26] gen_hosts: Add 'localhost' to the [all] group Chuck Lever
                   ` (6 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Match the description for the terraform playbook

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/guestfs.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/playbooks/guestfs.yml b/playbooks/guestfs.yml
index 784775cdb818..62334463f05e 100644
--- a/playbooks/guestfs.yml
+++ b/playbooks/guestfs.yml
@@ -1,5 +1,5 @@
 ---
-- name: Provision target nodes with libvirt/guestfs
+- name: Manage infrastructure lifecycle and SSH access with libvirt/guestfs
   gather_facts: true
   connection: local
   hosts: all
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 21/26] gen_hosts: Add 'localhost' to the [all] group
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (19 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 20/26] guestfs: Update the guestfs playbook description Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 22/26] gen_host: Add [service] group to the builder template Chuck Lever
                   ` (5 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Commit 58a0745e8fa2 ("Add a guest/instance for building the test
kernel") was applied just after commit 1cf0800c9ffc ("gen_hosts:
templates: include localhost in the all group"). The former should
have been updated to include localhost in its [all] group.

Without 'localhost', trying to provision the kernel builder node
fails.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/roles/gen_hosts/templates/builder.j2 | 1 +
 1 file changed, 1 insertion(+)

diff --git a/playbooks/roles/gen_hosts/templates/builder.j2 b/playbooks/roles/gen_hosts/templates/builder.j2
index 0c9ba1e8e01a..eb8c736409b9 100644
--- a/playbooks/roles/gen_hosts/templates/builder.j2
+++ b/playbooks/roles/gen_hosts/templates/builder.j2
@@ -1,4 +1,5 @@
 [all]
+localhost ansible_connection=local
 {{ kdevops_hosts_prefix }}-builder
 [all:vars]
 ansible_python_interpreter =  "{{ kdevops_python_interpreter }}"
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 22/26] gen_host: Add [service] group to the builder template
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (20 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 21/26] gen_hosts: Add 'localhost' to the [all] group Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 23/26] guestfs: Don't run the 'destroy' tags on the controller Chuck Lever
                   ` (4 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Ensure that the [service] group is defined in the builder
node's host template, to quash some noisy warnings during
bringup.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/roles/gen_hosts/templates/builder.j2 | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/playbooks/roles/gen_hosts/templates/builder.j2 b/playbooks/roles/gen_hosts/templates/builder.j2
index eb8c736409b9..164201dc5ca4 100644
--- a/playbooks/roles/gen_hosts/templates/builder.j2
+++ b/playbooks/roles/gen_hosts/templates/builder.j2
@@ -12,3 +12,7 @@ ansible_python_interpreter =  "{{ kdevops_python_interpreter }}"
 [dev]
 [dev:vars]
 ansible_python_interpreter =  "{{ kdevops_python_interpreter }}"
+
+[service]
+[service:vars]
+ansible_python_interpreter =  "{{ kdevops_python_interpreter }}"
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 23/26] guestfs: Don't run the 'destroy' tags on the controller
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (21 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 22/26] gen_host: Add [service] group to the builder template Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 24/26] base_image: Skip "locales-all" package on Fedora Chuck Lever
                   ` (3 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

"make destroy" was skipping some important file removals, and
removing other files that do not exist.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 scripts/guestfs.Makefile | 1 +
 1 file changed, 1 insertion(+)

diff --git a/scripts/guestfs.Makefile b/scripts/guestfs.Makefile
index bd03f58c4232..57d6e7065be6 100644
--- a/scripts/guestfs.Makefile
+++ b/scripts/guestfs.Makefile
@@ -96,6 +96,7 @@ PHONY += status_guestfs
 
 destroy_guestfs:
 	$(Q)ansible-playbook $(ANSIBLE_VERBOSE) \
+		--limit 'baseline:dev:service' \
 		playbooks/guestfs.yml \
 		--extra-vars=@./extra_vars.yaml \
 		--tags destroy
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 24/26] base_image: Skip "locales-all" package on Fedora
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (22 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 23/26] guestfs: Don't run the 'destroy' tags on the controller Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 25/26] update_etc_hosts: ipaddr Chuck Lever
                   ` (2 subsequent siblings)
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/roles/base_image/templates/virt-builder.j2 | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/playbooks/roles/base_image/templates/virt-builder.j2 b/playbooks/roles/base_image/templates/virt-builder.j2
index 7df4229405e7..138d06eede6b 100644
--- a/playbooks/roles/base_image/templates/virt-builder.j2
+++ b/playbooks/roles/base_image/templates/virt-builder.j2
@@ -11,7 +11,7 @@ mkdir {{ target_dir }}
 copy-in {{ guestfs_distro_source_and_dest_file }}:{{ target_dir }}
 {% endif %}
 
-install sudo,qemu-guest-agent,python3,bash,locales-all
+install sudo,qemu-guest-agent,python3,bash
 run-command useradd {{ kdevops_uid }} -s /bin/bash -m kdevops
 append-line /etc/sudoers.d/kdevops:kdevops   ALL=(ALL)       NOPASSWD: ALL
 edit /etc/default/grub:s/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="console=ttyS0"/
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 25/26] update_etc_hosts: ipaddr
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (23 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 24/26] base_image: Skip "locales-all" package on Fedora Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 14:28 ` [PATCH v1 26/26] Add an Ansible requirements.yml file Chuck Lever
  2025-08-27 19:16 ` [PATCH v1 00/26] Various fixes Luis Chamberlain
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

ansible.netcommon.ipaddr is deprecated. See:

 https://docs.ansible.com/ansible/latest/collections/ansible/netcommon/ipaddr_filter.html

Ensure the update_etc_hosts playbook uses the ansible.utils.ipaddr
plugin instead.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 playbooks/roles/update_etc_hosts/tasks/main.yml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/playbooks/roles/update_etc_hosts/tasks/main.yml b/playbooks/roles/update_etc_hosts/tasks/main.yml
index 049411ee41de..dd1b9b70cef1 100644
--- a/playbooks/roles/update_etc_hosts/tasks/main.yml
+++ b/playbooks/roles/update_etc_hosts/tasks/main.yml
@@ -51,8 +51,8 @@
   become_method: sudo
   ansible.builtin.lineinfile:
     dest: /etc/hosts
-    regexp: ".*{{ item }}$"
-    line: "{{ hostvars[item].ansible_all_ipv4_addresses | ipaddr(private_network) | first }} {{ item }}"
+    regexp: '.*{{ item }}$'
+    line: "{{ hostvars[item].ansible_all_ipv4_addresses | ansible.utils.ipaddr(private_network) | first }} {{ item }}"
     state: present
   with_items: "{{ ueh_hosts }}"
   when:
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* [PATCH v1 26/26] Add an Ansible requirements.yml file
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (24 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 25/26] update_etc_hosts: ipaddr Chuck Lever
@ 2025-08-27 14:28 ` Chuck Lever
  2025-08-27 19:16 ` [PATCH v1 00/26] Various fixes Luis Chamberlain
  26 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 14:28 UTC (permalink / raw)
  To: kdevops; +Cc: Chuck Lever

From: Chuck Lever <chuck.lever@oracle.com>

Commit b90d89d27659 ("Switch to the cloud.terraform.terraform
module") introduced the use of the cloud.terraform module, and
commit 7ccb64834eeb ("guestfs: Replace scripts/destroy_guestfs.sh
with an Ansible playbook") introduced the use of the
community.libvirt module. It would be friendly if kdevops could
pull in the Ansible modules it needs transparently.

The requirements.yml file is a manifest of Ansible collections that
the project needs to run. Installation of these collections is made
automatic by adding:

  ansible-galaxy install -r requirements.yml

to the "make ansible_cfg" step. This mechanism can keep cached
versions of collections up to date, and can also constrain a
cached collection to a specific version, if that's needed.

The initial file contains requirements I could find easily, and
should be updated over time as new collection dependencies are
introduced.

See also:

https://docs.ansible.com/ansible/latest/user_guide/collections_using.html

Question: Do we assume that the Ansible controller has internet
access all the time?

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 requirements.yml         | 8 ++++++++
 scripts/ansible.Makefile | 5 +++++
 2 files changed, 13 insertions(+)
 create mode 100644 requirements.yml

diff --git a/requirements.yml b/requirements.yml
new file mode 100644
index 000000000000..a22691d3f86b
--- /dev/null
+++ b/requirements.yml
@@ -0,0 +1,8 @@
+---
+collections:
+  - name: ansible.posix
+  - name: ansible.utils
+  - name: cloud.terraform
+  - name: community.docker
+  - name: community.general
+  - name: community.libvirt
diff --git a/scripts/ansible.Makefile b/scripts/ansible.Makefile
index b0d2a8c12ee7..4efcf3e93b0e 100644
--- a/scripts/ansible.Makefile
+++ b/scripts/ansible.Makefile
@@ -2,3 +2,8 @@
 
 AV ?= 0
 export ANSIBLE_VERBOSE := $(shell scripts/validate_av.py --av "$(AV)")
+
+ansible-requirements:
+	@$(Q)ansible-galaxy install -r requirements.yml
+PHONY += ansible-requirements
+DEFAULT_DEPS += ansible-requirements
-- 
2.51.0


^ permalink raw reply related	[flat|nested] 29+ messages in thread

* Re: [PATCH v1 17/26] terraform/gce: Update existing machine types and introduce new ones
  2025-08-27 14:28 ` [PATCH v1 17/26] terraform/gce: Update existing machine types and introduce new ones Chuck Lever
@ 2025-08-27 18:13   ` Chuck Lever
  0 siblings, 0 replies; 29+ messages in thread
From: Chuck Lever @ 2025-08-27 18:13 UTC (permalink / raw)
  To: Chuck Lever, kdevops

On 8/27/25 10:28 AM, Chuck Lever wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
> 
> Add a spectrum of cost and performance choices.

This patch forgot to add "source" directives for the new Kconfig files.
I've also added E2 and A2 machine sizes since this was posted.


> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
> ---
>  .../gce/kconfigs/machines/Kconfig.c3-standard | 41 +++++++++++++
>  .../kconfigs/machines/Kconfig.c3d-standard    | 46 +++++++++++++++
>  .../gce/kconfigs/machines/Kconfig.c4-standard | 23 +++++---
>  .../kconfigs/machines/Kconfig.c4a-standard    | 57 ++++++++++++++++++
>  .../kconfigs/machines/Kconfig.c4d-standard    | 51 ++++++++++++++++
>  .../gce/kconfigs/machines/Kconfig.e2-highcpu  | 58 +++++++++++++++++++
>  .../gce/kconfigs/machines/Kconfig.e2-standard | 58 +++++++++++++++++++
>  .../gce/kconfigs/machines/Kconfig.n1-highcpu  | 55 ++++++++++++++++++
>  .../gce/kconfigs/machines/Kconfig.n1-standard | 26 +++++----
>  .../gce/kconfigs/machines/Kconfig.n2-highcpu  | 16 +++--
>  .../gce/kconfigs/machines/Kconfig.n2-standard | 16 +++--
>  .../gce/kconfigs/machines/Kconfig.n2d-highcpu | 15 +++--
>  .../kconfigs/machines/Kconfig.n2d-standard    | 17 +++---
>  .../gce/kconfigs/machines/Kconfig.n4-highcpu  | 16 +++--
>  .../gce/kconfigs/machines/Kconfig.n4-standard | 16 +++--
>  15 files changed, 439 insertions(+), 72 deletions(-)
>  create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c3-standard
>  create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c3d-standard
>  create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c4a-standard
>  create mode 100644 terraform/gce/kconfigs/machines/Kconfig.c4d-standard
>  create mode 100644 terraform/gce/kconfigs/machines/Kconfig.e2-highcpu
>  create mode 100644 terraform/gce/kconfigs/machines/Kconfig.e2-standard
>  create mode 100644 terraform/gce/kconfigs/machines/Kconfig.n1-highcpu
> 
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.c3-standard b/terraform/gce/kconfigs/machines/Kconfig.c3-standard
> new file mode 100644
> index 000000000000..183ac315cabf
> --- /dev/null
> +++ b/terraform/gce/kconfigs/machines/Kconfig.c3-standard
> @@ -0,0 +1,41 @@
> +if TERRAFORM_GCE_MACHINE_FAMILY_C3_STANDARD
> +
> +choice
> +	prompt "GCE Machine Type"
> +	default TERRAFORM_GCE_MACHINE_C3_STANDARD_4
> +	help
> +	  C3 VMs are powered by the 4th generation Intel Xeon
> +	  Scalable processors (code-named Sapphire Rapids), DDR5
> +	  memory, and Titanium, enabling higher levels of networking
> +	  performance, isolation and security.
> +
> +config TERRAFORM_GCE_MACHINE_C3_STANDARD_4
> +	bool "c3-standard-4"
> +	help
> +	  4 vCPUs (2 cores) and 16GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C3_STANDARD_8
> +	bool "c3-standard-8"
> +	help
> +	  8 vCPUs (4 cores) and 32GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C3_STANDARD_22
> +	bool "c3-standard-22"
> +	help
> +	  22 vCPUs (11 cores) and 88GB of memory.
> +
> +endchoice
> +
> +config TERRAFORM_GCE_MACHINE_TYPE
> +	string
> +	output yaml
> +	default "c3-standard-4" if TERRAFORM_GCE_MACHINE_C3_STANDARD_4
> +	default "c3-standard-8" if TERRAFORM_GCE_MACHINE_C3_STANDARD_8
> +	default "c3-standard-22" if TERRAFORM_GCE_MACHINE_C3_STANDARD_22
> +
> +config TERRAFORM_GCE_IMAGE_TYPE
> +	string
> +	output yaml
> +	default "hyperdisk-balanced"
> +
> +endif # TERRAFORM_GCE_MACHINE_FAMILY_C3_STANDARD
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.c3d-standard b/terraform/gce/kconfigs/machines/Kconfig.c3d-standard
> new file mode 100644
> index 000000000000..4af821e5a14e
> --- /dev/null
> +++ b/terraform/gce/kconfigs/machines/Kconfig.c3d-standard
> @@ -0,0 +1,46 @@
> +if TERRAFORM_GCE_MACHINE_FAMILY_C3D_STANDARD
> +
> +choice
> +	prompt "GCE Machine Type"
> +	default TERRAFORM_GCE_MACHINE_C3D_STANDARD_4
> +	help
> +	  C3D VMs are powered by the 4th-gen AMD EPYC (Genoa)
> +	  processor. C3D uses Titanium, enabling higher levels
> +	  of networking performance, isolation and security.
> +
> +config TERRAFORM_GCE_MACHINE_C3D_STANDARD_4
> +	bool "c3d-standard-4"
> +	help
> +	  4 vCPUs (2 cores) and 16GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C3D_STANDARD_8
> +	bool "c3d-standard-8"
> +	help
> +	  8 vCPUs (4 cores) and 32GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C3D_STANDARD_16
> +	bool "c3d-standard-16"
> +	help
> +	  16 vCPUs (8 cores) and 64GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C3D_STANDARD_30
> +	bool "c3d-standard-30"
> +	help
> +	  30 vCPUs (15 cores) and 120GB of memory.
> +
> +endchoice
> +
> +config TERRAFORM_GCE_MACHINE_TYPE
> +	string
> +	output yaml
> +	default "c3d-standard-4" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_4
> +	default "c3d-standard-8" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_8
> +	default "c3d-standard-16" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_16
> +	default "c3d-standard-30" if TERRAFORM_GCE_MACHINE_C3D_STANDARD_30
> +
> +config TERRAFORM_GCE_IMAGE_TYPE
> +	string
> +	output yaml
> +	default "hyperdisk-balanced"
> +
> +endif # TERRAFORM_GCE_MACHINE_FAMILY_C3D_STANDARD
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.c4-standard b/terraform/gce/kconfigs/machines/Kconfig.c4-standard
> index 75c2eed2d111..3ec7f4ec1620 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.c4-standard
> +++ b/terraform/gce/kconfigs/machines/Kconfig.c4-standard
> @@ -4,35 +4,39 @@ choice
>  	prompt "GCE Machine Type"
>  	default TERRAFORM_GCE_MACHINE_C4_STANDARD_4
>  	help
> -	  This option sets the GCE machine type. For other machine
> -	  types, refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> +	  C4 VMs are powered by 6th generation (code-named Granite
> +	  Rapids) or 5th generation (code-named Emerald Rapids)
> +	  Intel Xeon Scalable processors and Titanium.
>  
>  config TERRAFORM_GCE_MACHINE_C4_STANDARD_2
>  	bool "c4-standard-2"
>  	help
> -	  2 vCPU (1 core) and 7GB of memory.
> +	  2 vCPUs (1 core) and 7GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_C4_STANDARD_4
>  	bool "c4-standard-4"
>  	help
> -	  4 vCPU (2 core) and 15GB of memory.
> +	  4 vCPUs (2 core) and 15GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_C4_STANDARD_8
>  	bool "c4-standard-8"
>  	help
> -	  8 vCPU (4 cores) and 30GB of memory.
> +	  8 vCPUs (4 cores) and 30GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_C4_STANDARD_16
>  	bool "c4-standard-16"
>  	help
> -	  16 vCPU (8 cores) and 60GB of memory.
> +	  16 vCPUs (8 cores) and 60GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_C4_STANDARD_24
>  	bool "c4-standard-24"
>  	help
> -	  24 vCPU (12 cores) and 90GB of memory.
> +	  24 vCPUs (12 cores) and 90GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4_STANDARD_32
> +	bool "c4-standard-32"
> +	help
> +	  32 vCPUs (16 cores) and 120 of memory.
>  
>  endchoice
>  
> @@ -44,6 +48,7 @@ config TERRAFORM_GCE_MACHINE_TYPE
>  	default "c4-standard-8" if TERRAFORM_GCE_MACHINE_C4_STANDARD_8
>  	default "c4-standard-16" if TERRAFORM_GCE_MACHINE_C4_STANDARD_16
>  	default "c4-standard-24" if TERRAFORM_GCE_MACHINE_C4_STANDARD_24
> +	default "c4-standard-32" if TERRAFORM_GCE_MACHINE_C4_STANDARD_32
>  
>  config TERRAFORM_GCE_IMAGE_TYPE
>  	string
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.c4a-standard b/terraform/gce/kconfigs/machines/Kconfig.c4a-standard
> new file mode 100644
> index 000000000000..3a486fe4a6c3
> --- /dev/null
> +++ b/terraform/gce/kconfigs/machines/Kconfig.c4a-standard
> @@ -0,0 +1,57 @@
> +if TERRAFORM_GCE_MACHINE_FAMILY_C4A_STANDARD
> +
> +choice
> +	prompt "GCE Machine Type"
> +	default TERRAFORM_GCE_MACHINE_C4A_STANDARD_4
> +	help
> +	  C4A VMs are powered by Google's first Arm-based Axion™
> +	  processor, DDR5 memory, and local Titanium SSDs.
> +
> +config TERRAFORM_GCE_MACHINE_C4A_STANDARD_1
> +	bool "c4a-standard-1"
> +	help
> +	  1 vCPU and 4GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4A_STANDARD_2
> +	bool "c4a-standard-2"
> +	help
> +	  2 vCPUs and 8GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4A_STANDARD_4
> +	bool "c4a-standard-4"
> +	help
> +	  4 vCPUs and 16GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4A_STANDARD_8
> +	bool "c4a-standard-8"
> +	help
> +	  8 vCPUs and 32GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4A_STANDARD_16
> +	bool "c4a-standard-16"
> +	help
> +	  16 vCPUs and 64GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4A_STANDARD_32
> +	bool "c4a-standard-32"
> +	help
> +	  32 vCPUs and 128GB of memory.
> +
> +endchoice
> +
> +config TERRAFORM_GCE_MACHINE_TYPE
> +	string
> +	output yaml
> +	default "c4a-standard-1" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_1
> +	default "c4a-standard-2" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_2
> +	default "c4a-standard-4" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_4
> +	default "c4a-standard-8" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_8
> +	default "c4a-standard-16" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_16
> +	default "c4a-standard-32" if TERRAFORM_GCE_MACHINE_C4A_STANDARD_32
> +
> +config TERRAFORM_GCE_IMAGE_TYPE
> +	string
> +	output yaml
> +	default "hyperdisk-balanced"
> +
> +endif # TERRAFORM_GCE_MACHINE_FAMILY_C4A_STANDARD
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.c4d-standard b/terraform/gce/kconfigs/machines/Kconfig.c4d-standard
> new file mode 100644
> index 000000000000..6d7b4bb96c8b
> --- /dev/null
> +++ b/terraform/gce/kconfigs/machines/Kconfig.c4d-standard
> @@ -0,0 +1,51 @@
> +if TERRAFORM_GCE_MACHINE_FAMILY_C4D_STANDARD
> +
> +choice
> +	prompt "GCE Machine Type"
> +	default TERRAFORM_GCE_MACHINE_C4D_STANDARD_4
> +	help
> +	  C4D VMs are powered by the fifth generation AMD EPYC Turin
> +	  processor and Titanium.
> +
> +config TERRAFORM_GCE_MACHINE_C4D_STANDARD_2
> +	bool "c4d-standard-2"
> +	help
> +	  2 vCPUs (1 core) and 7GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4D_STANDARD_4
> +	bool "c4d-standard-4"
> +	help
> +	  4 vCPUs (2 core) and 15GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4D_STANDARD_8
> +	bool "c4d-standard-8"
> +	help
> +	  8 vCPUs (4 cores) and 31GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4D_STANDARD_16
> +	bool "c4d-standard-16"
> +	help
> +	  16 vCPUs (8 cores) and 62GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_C4D_STANDARD_24
> +	bool "c4d-standard-24"
> +	help
> +	  32 vCPUs (16 cores) and 124GB of memory.
> +
> +endchoice
> +
> +config TERRAFORM_GCE_MACHINE_TYPE
> +	string
> +	output yaml
> +	default "c4d-standard-2" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_2
> +	default "c4d-standard-4" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_4
> +	default "c4d-standard-8" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_8
> +	default "c4d-standard-16" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_16
> +	default "c4d-standard-32" if TERRAFORM_GCE_MACHINE_C4D_STANDARD_32
> +
> +config TERRAFORM_GCE_IMAGE_TYPE
> +	string
> +	output yaml
> +	default "hyperdisk-balanced"
> +
> +endif # TERRAFORM_GCE_MACHINE_FAMILY_C4D_STANDARD
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.e2-highcpu b/terraform/gce/kconfigs/machines/Kconfig.e2-highcpu
> new file mode 100644
> index 000000000000..eb401451b3c8
> --- /dev/null
> +++ b/terraform/gce/kconfigs/machines/Kconfig.e2-highcpu
> @@ -0,0 +1,58 @@
> +if TERRAFORM_GCE_MACHINE_FAMILY_E2_HIGHCPU
> +
> +choice
> +	prompt "GCE Machine type"
> +	default TERRAFORM_GCE_MACHINE_E2_HIGHCPU_8
> +	help
> +	  The E2 machine series offers both Intel and AMD EPYC
> +	  processors, selected for you at the time of VM creation.
> +	  Machine types in this series are available in all regions
> +	  and zones and support a virtio memory balloon device.
> +
> +config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_2
> +	bool "e2-highcpu-2"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  2 vCPUs (1 core) and 2GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_4
> +	bool "e2-highcpu-4"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  4 vCPUs (2 cores) and 4GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_8
> +	bool "e2-highcpu-8"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  8 vCPUs (4 cores) and 8GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_16
> +	bool "e2-highcpu-16"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  16 vCPUs (8 cores) and 16GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_HIGHCPU_32
> +	bool "e2-highcpu-32"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  32 vCPUs (16 cores) and 32GB of memory.
> +
> +endchoice
> +
> +config TERRAFORM_GCE_MACHINE_TYPE
> +	string
> +	output yaml
> +	default "e2-highcpu-2" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_2
> +	default "e2-highcpu-4" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_4
> +	default "e2-highcpu-8" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_8
> +	default "e2-highcpu-16" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_16
> +	default "e2-highcpu-32" if TERRAFORM_GCE_MACHINE_E2_HIGHCPU_32
> +
> +config TERRAFORM_GCE_IMAGE_TYPE
> +	string
> +	output yaml
> +	default "pd-balanced"
> +
> +endif # TERRAFORM_GCE_MACHINE_FAMILY_E2_HIGHCPU
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.e2-standard b/terraform/gce/kconfigs/machines/Kconfig.e2-standard
> new file mode 100644
> index 000000000000..26180f841d5a
> --- /dev/null
> +++ b/terraform/gce/kconfigs/machines/Kconfig.e2-standard
> @@ -0,0 +1,58 @@
> +if TERRAFORM_GCE_MACHINE_FAMILY_E2_STANDARD
> +
> +choice
> +	prompt "GCE Machine type"
> +	default TERRAFORM_GCE_MACHINE_E2_STANDARD_8
> +	help
> +	  The E2 machine series offers both Intel and AMD EPYC
> +	  processors, selected for you at the time of VM creation.
> +	  Machine types in this series are available in all regions
> +	  and zones and support a virtio memory balloon device.
> +
> +config TERRAFORM_GCE_MACHINE_E2_STANDARD_2
> +	bool "e2-standard-2"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  2 vCPUs (1 core) and 8GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_STANDARD_4
> +	bool "e2-standard-4"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  4 vCPUs (2 cores) and 16GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_STANDARD_8
> +	bool "e2-standard-8"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  8 vCPUs (4 cores) and 32GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_STANDARD_16
> +	bool "e2-standard-16"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  16 vCPUs (8 cores) and 64GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_E2_STANDARD_32
> +	bool "e2-standard-32"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  32 vCPUs (16 cores) and 128GB of memory.
> +
> +endchoice
> +
> +config TERRAFORM_GCE_MACHINE_TYPE
> +	string
> +	output yaml
> +	default "e2-standard-2" if TERRAFORM_GCE_MACHINE_E2_STANDARD_2
> +	default "e2-standard-4" if TERRAFORM_GCE_MACHINE_E2_STANDARD_4
> +	default "e2-standard-8" if TERRAFORM_GCE_MACHINE_E2_STANDARD_8
> +	default "e2-standard-16" if TERRAFORM_GCE_MACHINE_E2_STANDARD_16
> +	default "e2-standard-32" if TERRAFORM_GCE_MACHINE_E2_STANDARD_32
> +
> +config TERRAFORM_GCE_IMAGE_TYPE
> +	string
> +	output yaml
> +	default "pd-balanced"
> +
> +endif # TERRAFORM_GCE_MACHINE_FAMILY_E2_STANDARD
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n1-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n1-highcpu
> new file mode 100644
> index 000000000000..7684b2961962
> --- /dev/null
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n1-highcpu
> @@ -0,0 +1,55 @@
> +if TERRAFORM_GCE_MACHINE_FAMILY_N1_HIGHCPU
> +
> +choice
> +	prompt "GCE Machine type"
> +	default TERRAFORM_GCE_MACHINE_N1_HIGHCPU_8
> +	help
> +	  The N1 machine series is Compute Engine's first generation
> +	  general-purpose machine series available on Intel Skylake,
> +	  Broadwell, Haswell, Sandy Bridge, and Ivy Bridge CPU
> +	  platforms.
> +
> +config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_2
> +	bool "n1-highcpu-2"
> +	help
> +	  2 vCPUs (1 core) and 1.8GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_4
> +	bool "n1-highcpu-4"
> +	help
> +	  4 vCPUs (2 cores) and 3.6GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_8
> +	bool "n1-highcpu-8"
> +	help
> +	  8 vCPUs (4 cores) and 7.2GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_16
> +	bool "n1-highcpu-16"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  16 vCPUs (8 cores) and 14.4GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_N1_HIGHCPU_32
> +	bool "n1-highcpu-32"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  32 vCPUs (16 cores) and 28.8GB of memory.
> +
> +endchoice
> +
> +config TERRAFORM_GCE_MACHINE_TYPE
> +	string
> +	output yaml
> +	default "n1-highcpu-2" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_2
> +	default "n1-highcpu-4" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_4
> +	default "n1-highcpu-8" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_8
> +	default "n1-highcpu-16" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_16
> +	default "n1-highcpu-32" if TERRAFORM_GCE_MACHINE_N1_HIGHCPU_32
> +
> +config TERRAFORM_GCE_IMAGE_TYPE
> +	string
> +	output yaml
> +	default "pd-balanced"
> +
> +endif # TERRAFORM_GCE_MACHINE_FAMILY_N1_HIGHCPU
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n1-standard b/terraform/gce/kconfigs/machines/Kconfig.n1-standard
> index 65dbd672893d..7201231c74a0 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.n1-standard
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n1-standard
> @@ -4,12 +4,10 @@ choice
>  	prompt "GCE Machine type"
>  	default TERRAFORM_GCE_MACHINE_N1_STANDARD_8
>  	help
> -	  This option sets the GCE machine type. For other machine types,
> -	  refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> -
> -	  Documentation: https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/compute_instance#machine_type
> +	  The N1 machine series is Compute Engine's first generation
> +	  general-purpose machine series available on Intel Skylake,
> +	  Broadwell, Haswell, Sandy Bridge, and Ivy Bridge CPU
> +	  platforms.
>  
>  config TERRAFORM_GCE_MACHINE_N1_STANDARD_1
>  	bool "n1-standard-1"
> @@ -19,23 +17,30 @@ config TERRAFORM_GCE_MACHINE_N1_STANDARD_1
>  config TERRAFORM_GCE_MACHINE_N1_STANDARD_2
>  	bool "n1-standard-2"
>  	help
> -	  2 vCPU (1 core) and 7.5GB of memory.
> +	  2 vCPUs (1 core) and 7.5GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N1_STANDARD_4
>  	bool "n1-standard-4"
>  	help
> -	  4 vCPU (2 cores) and 15GB of memory.
> +	  4 vCPUs (2 cores) and 15GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N1_STANDARD_8
>  	bool "n1-standard-8"
>  	help
> -	  8 vCPU (4 cores) and 30GB of memory.
> +	  8 vCPUs (4 cores) and 30GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N1_STANDARD_16
>  	bool "n1-standard-16"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  16 vCPU (8 cores) and 60GB of memory.
> +	  16 vCPUs (8 cores) and 60GB of memory.
> +
> +config TERRAFORM_GCE_MACHINE_N1_STANDARD_32
> +	bool "n1-standard-32"
> +	depends on TARGET_ARCH_X86_64
> +	help
> +	  32 vCPUs (16 cores) and 120GB of memory.
> +
>  endchoice
>  
>  config TERRAFORM_GCE_MACHINE_TYPE
> @@ -46,6 +51,7 @@ config TERRAFORM_GCE_MACHINE_TYPE
>  	default "n1-standard-4" if TERRAFORM_GCE_MACHINE_N1_STANDARD_4
>  	default "n1-standard-8" if TERRAFORM_GCE_MACHINE_N1_STANDARD_8
>  	default "n1-standard-16" if TERRAFORM_GCE_MACHINE_N1_STANDARD_16
> +	default "n1-standard-32" if TERRAFORM_GCE_MACHINE_N1_STANDARD_32
>  
>  config TERRAFORM_GCE_IMAGE_TYPE
>  	string
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu
> index 8aa6893c7252..83823753dc93 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n2-highcpu
> @@ -4,40 +4,38 @@ choice
>  	prompt "GCE Machine type"
>  	default TERRAFORM_GCE_MACHINE_N2_HIGHCPU_4
>  	help
> -	  This option sets the GCE machine type. For other machine
> -	  types, refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> +	  The N2 machine series can run on either Intel Cascade Lake
> +	  (on smaller configurations) or Intel Ice Lake.
>  
>  config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_2
>  	bool "n2-highcpu-2"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  2 vCPU (1 core) and 2GB of memory.
> +	  2 vCPUs (1 core) and 2GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_4
>  	bool "n2-highcpu-4"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  4 vCPU (2 core) and 4GB of memory.
> +	  4 vCPUs (2 cores) and 4GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_8
>  	bool "n2-highcpu-8"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  8 vCPU (4 cores) and 8GB of memory.
> +	  8 vCPUs (4 cores) and 8GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_16
>  	bool "n2-highcpu-16"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  16 vCPU (8 cores) and 16GB of memory.
> +	  16 vCPUs (8 cores) and 16GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_HIGHCPU_32
>  	bool "n2-highcpu-32"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  32 vCPU (16 cores) and 32GB of memory.
> +	  32 vCPUs (16 cores) and 32GB of memory.
>  
>  endchoice
>  
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2-standard b/terraform/gce/kconfigs/machines/Kconfig.n2-standard
> index b7b2d68fa522..a485a754ab44 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.n2-standard
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n2-standard
> @@ -4,40 +4,38 @@ choice
>  	prompt "GCE Machine type"
>  	default TERRAFORM_GCE_MACHINE_N2_STANDARD_8
>  	help
> -	  This option sets the GCE machine type. For other machine
> -	  types, refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> +	  The N2 machine series can run on either Intel Cascade Lake
> +	  (on smaller configurations) or Intel Ice Lake.
>  
>  config TERRAFORM_GCE_MACHINE_N2_STANDARD_2
>  	bool "n2-standard-2"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  2 vCPU (1 core) and 8GB of memory.
> +	  2 vCPUs (1 core) and 8GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_STANDARD_4
>  	bool "n2-standard-4"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  4 vCPU (2 core) and 16GB of memory.
> +	  4 vCPUs (2 cores) and 16GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_STANDARD_8
>  	bool "n2-standard-8"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  8 vCPU (4 cores) and 32GB of memory.
> +	  8 vCPUs (4 cores) and 32GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_STANDARD_16
>  	bool "n2-standard-16"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  16 vCPU (8 cores) and 64GB of memory.
> +	  16 vCPUs (8 cores) and 64GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2_STANDARD_32
>  	bool "n2-standard-32"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  32 vCPU (16 cores) and 128GB of memory.
> +	  32 vCPUs (16 cores) and 128GB of memory.
>  
>  endchoice
>  
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu
> index 3050349416fd..e3cf9c6e5c41 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n2d-highcpu
> @@ -4,10 +4,9 @@ choice
>  	prompt "GCE Machine type"
>  	default TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_4
>  	help
> -	  This option sets the GCE machine type. For other machine
> -	  types, refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> +	  The N2D machine series can run on either AMD EPYC Milan or
> +	  AMD EPYC Rome processors. The third generation AMD EPYC
> +	  Milan processor is available only in specific regions and zones.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_2
>  	bool "n2d-highcpu-2"
> @@ -19,25 +18,25 @@ config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_4
>  	bool "n2d-highcpu-4"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  4 vCPU (2 core) and 4GB of memory.
> +	  4 vCPUs (2 cores) and 4GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_8
>  	bool "n2d-highcpu-8"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  8 vCPU (4 cores) and 8GB of memory.
> +	  8 vCPUs (4 cores) and 8GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_16
>  	bool "n2d-highcpu-16"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  16 vCPU (8 cores) and 16GB of memory.
> +	  16 vCPUs (8 cores) and 16GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_HIGHCPU_32
>  	bool "n2d-highcpu-32"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  32 vCPU (16 cores) and 32GB of memory.
> +	  32 vCPUs (16 cores) and 32GB of memory.
>  
>  endchoice
>  
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n2d-standard b/terraform/gce/kconfigs/machines/Kconfig.n2d-standard
> index 08744d396595..4f86e0b7d3cf 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.n2d-standard
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n2d-standard
> @@ -4,40 +4,39 @@ choice
>  	prompt "GCE Machine type"
>  	default TERRAFORM_GCE_MACHINE_N2D_STANDARD_4
>  	help
> -	  This option sets the GCE machine type. For other machine
> -	  types, refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> +	  The N2D machine series can run on either AMD EPYC Milan or
> +	  AMD EPYC Rome processors. The third generation AMD EPYC
> +	  Milan processor is available only in specific regions and zones.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_STANDARD_2
>  	bool "n2d-standard-2"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  2 vCPU (1 core) and 8GB of memory.
> +	  2 vCPUs (1 core) and 8GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_STANDARD_4
>  	bool "n2d-standard-4"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  4 vCPU (2 core) and 16GB of memory.
> +	  4 vCPUs (2 cores) and 16GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_STANDARD_8
>  	bool "n2d-standard-8"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  8 vCPU (4 cores) and 32GB of memory.
> +	  8 vCPUs (4 cores) and 32GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_STANDARD_16
>  	bool "n2d-standard-16"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  16 vCPU (8 cores) and 64GB of memory.
> +	  16 vCPUs (8 cores) and 64GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N2D_STANDARD_32
>  	bool "n2d-standard-32"
>  	depends on TARGET_ARCH_X86_64
>  	help
> -	  32 vCPU (16 cores) and 128GB of memory.
> +	  32 vCPUs (16 cores) and 128GB of memory.
>  
>  endchoice
>  
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu b/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu
> index 9f871940a73b..880a386ea01d 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n4-highcpu
> @@ -4,35 +4,33 @@ choice
>  	prompt "GCE Machine Type"
>  	default TERRAFORM_GCE_MACHINE_N4_HIGHCPU_4
>  	help
> -	  This option sets the GCE machine type. For other machine
> -	  types, refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> +	  N4 VMs are powered by the 5th generation Intel Xeon Scalable
> +	  processors (code-named Emerald Rapids) and Titanium.
>  
>  config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_2
>  	bool "n4-highcpu-2"
>  	help
> -	  2 vCPU (1 core) and 4GB of memory.
> +	  2 vCPUs (1 core) and 4GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_4
>  	bool "n4-highcpu-4"
>  	help
> -	  4 vCPU (2 core) and 8GB of memory.
> +	  4 vCPUs (2 cores) and 8GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_8
>  	bool "n4-highcpu-8"
>  	help
> -	  8 vCPU (4 cores) and 16GB of memory.
> +	  8 vCPUs (4 cores) and 16GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_16
>  	bool "n4-highcpu-16"
>  	help
> -	  16 vCPU (8 cores) and 32GB of memory.
> +	  16 vCPUs (8 cores) and 32GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_HIGHCPU_32
>  	bool "n4-highcpu-32"
>  	help
> -	  32 vCPU (16 cores) and 64GB of memory.
> +	  32 vCPUs (16 cores) and 64GB of memory.
>  
>  endchoice
>  
> diff --git a/terraform/gce/kconfigs/machines/Kconfig.n4-standard b/terraform/gce/kconfigs/machines/Kconfig.n4-standard
> index d1d1202cbb7b..807f8638e865 100644
> --- a/terraform/gce/kconfigs/machines/Kconfig.n4-standard
> +++ b/terraform/gce/kconfigs/machines/Kconfig.n4-standard
> @@ -4,35 +4,33 @@ choice
>  	prompt "GCE Machine Type"
>  	default TERRAFORM_GCE_MACHINE_N4_STANDARD_4
>  	help
> -	  This option sets the GCE machine type. For other machine
> -	  types, refer to this page:
> -
> -	  https://cloud.google.com/compute/docs/machine-types
> +	  N4 VMs are powered by the 5th generation Intel Xeon Scalable
> +	  processors (code-named Emerald Rapids) and Titanium.
>  
>  config TERRAFORM_GCE_MACHINE_N4_STANDARD_2
>  	bool "n4-standard-2"
>  	help
> -	  2 vCPU (1 core) and 8GB of memory.
> +	  2 vCPUs (1 core) and 8GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_STANDARD_4
>  	bool "n4-standard-4"
>  	help
> -	  4 vCPU (2 core) and 16GB of memory.
> +	  4 vCPUs (2 cores) and 16GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_STANDARD_8
>  	bool "n4-standard-8"
>  	help
> -	  8 vCPU (4 cores) and 32GB of memory.
> +	  8 vCPUs (4 cores) and 32GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_STANDARD_16
>  	bool "n4-standard-16"
>  	help
> -	  16 vCPU (8 cores) and 64GB of memory.
> +	  16 vCPUs (8 cores) and 64GB of memory.
>  
>  config TERRAFORM_GCE_MACHINE_N4_STANDARD_32
>  	bool "n4-standard-32"
>  	help
> -	  32 vCPU (16 cores) and 128GB of memory.
> +	  32 vCPUs (16 cores) and 128GB of memory.
>  
>  endchoice
>  


-- 
Chuck Lever

^ permalink raw reply	[flat|nested] 29+ messages in thread

* Re: [PATCH v1 00/26] Various fixes
  2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
                   ` (25 preceding siblings ...)
  2025-08-27 14:28 ` [PATCH v1 26/26] Add an Ansible requirements.yml file Chuck Lever
@ 2025-08-27 19:16 ` Luis Chamberlain
  26 siblings, 0 replies; 29+ messages in thread
From: Luis Chamberlain @ 2025-08-27 19:16 UTC (permalink / raw)
  To: Chuck Lever; +Cc: kdevops, Chuck Lever

On Wed, Aug 27, 2025 at 10:27:55AM -0400, Chuck Lever wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
> 
> I've finally gotten most of my test runners moved to cloud providers
> so I'm able to rebase my version of kdevops on
> 
>   linux-kdevops/kdevops : HEAD
> 
> In the process I've found and fixed myriad small issues. One or two
> of these might need some attention and additional work. Please have
> a close look -- they are all short subjects.

The patch just needs a title:

[PATCH v1 09/26] terraform/oci:  

Other than that:

Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>

  Luis

^ permalink raw reply	[flat|nested] 29+ messages in thread

end of thread, other threads:[~2025-08-27 19:16 UTC | newest]

Thread overview: 29+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-08-27 14:27 [PATCH v1 00/26] Various fixes Chuck Lever
2025-08-27 14:27 ` [PATCH v1 01/26] scripts: Update gen_ssh_key.sh Chuck Lever
2025-08-27 14:27 ` [PATCH v1 02/26] terraform/azure: Fix count of managed disks Chuck Lever
2025-08-27 14:27 ` [PATCH v1 03/26] terraform/azure: Remove tags from terraform configuration Chuck Lever
2025-08-27 14:27 ` [PATCH v1 04/26] terraform/azure: Enable network acceleration Chuck Lever
2025-08-27 14:28 ` [PATCH v1 05/26] terraform/azure: Make the resource group name a variable Chuck Lever
2025-08-27 14:28 ` [PATCH v1 06/26] terraform/azure: Remove the provider version constraint Chuck Lever
2025-08-27 14:28 ` [PATCH v1 07/26] terraform/azure: Update the RHEL publishers Chuck Lever
2025-08-27 14:28 ` [PATCH v1 08/26] terraform/oci: Work around oracle/oci provider bug Chuck Lever
2025-08-27 14:28 ` [PATCH v1 09/26] terraform/oci: Chuck Lever
2025-08-27 14:28 ` [PATCH v1 10/26] terraform/oci: Enable preemptible compute instances Chuck Lever
2025-08-27 14:28 ` [PATCH v1 11/26] terraform/aws: Fix zone selection for us_west1 Chuck Lever
2025-08-27 14:28 ` [PATCH v1 12/26] Revert "terraform/aws: Add Oracle Linux AMI selections" Chuck Lever
2025-08-27 14:28 ` [PATCH v1 13/26] terraform/aws: Remove unused terraform tags Chuck Lever
2025-08-27 14:28 ` [PATCH v1 14/26] terraform/GCE: Fix the default disk throughput values Chuck Lever
2025-08-27 14:28 ` [PATCH v1 15/26] terraform/gce: Remove unused tags Chuck Lever
2025-08-27 14:28 ` [PATCH v1 16/26] terraform/gce: Remove support for Fedora Chuck Lever
2025-08-27 14:28 ` [PATCH v1 17/26] terraform/gce: Update existing machine types and introduce new ones Chuck Lever
2025-08-27 18:13   ` Chuck Lever
2025-08-27 14:28 ` [PATCH v1 18/26] terraform: Create the user's .ssh/config if it does not already exist Chuck Lever
2025-08-27 14:28 ` [PATCH v1 19/26] pynfs: Don't install xdrlib3 on older RHEL Chuck Lever
2025-08-27 14:28 ` [PATCH v1 20/26] guestfs: Update the guestfs playbook description Chuck Lever
2025-08-27 14:28 ` [PATCH v1 21/26] gen_hosts: Add 'localhost' to the [all] group Chuck Lever
2025-08-27 14:28 ` [PATCH v1 22/26] gen_host: Add [service] group to the builder template Chuck Lever
2025-08-27 14:28 ` [PATCH v1 23/26] guestfs: Don't run the 'destroy' tags on the controller Chuck Lever
2025-08-27 14:28 ` [PATCH v1 24/26] base_image: Skip "locales-all" package on Fedora Chuck Lever
2025-08-27 14:28 ` [PATCH v1 25/26] update_etc_hosts: ipaddr Chuck Lever
2025-08-27 14:28 ` [PATCH v1 26/26] Add an Ansible requirements.yml file Chuck Lever
2025-08-27 19:16 ` [PATCH v1 00/26] Various fixes Luis Chamberlain

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.