kdevops.lists.linux.dev archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).