public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
From: cel@kernel.org
To: <kdevops@lists.linux.dev>
Cc: Chandan Babu R <chandanbabu@kernel.org>,
	Chuck Lever <chuck.lever@oracle.com>
Subject: [RFC PATCH 20/31] terraform/OCI: Add a bare metal shape selector
Date: Mon, 31 Mar 2025 20:59:49 -0400	[thread overview]
Message-ID: <20250401010000.764234-21-cel@kernel.org> (raw)
In-Reply-To: <20250401010000.764234-1-cel@kernel.org>

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

Match the same capability that is available for kdevops on AWS.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
---
 .../templates/oci/terraform.tfvars.j2         |  4 +
 terraform/oci/kconfigs/Kconfig.compute        |  9 ++
 terraform/oci/kconfigs/shapes/Kconfig.bm      | 83 +++++++++++++++++++
 3 files changed, 96 insertions(+)
 create mode 100644 terraform/oci/kconfigs/shapes/Kconfig.bm

diff --git a/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2 b/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2
index be0c154802ff..a747a4188e7b 100644
--- a/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2
+++ b/playbooks/roles/gen_tfvars/templates/oci/terraform.tfvars.j2
@@ -6,8 +6,12 @@ oci_user_fingerprint = "{{ terraform_oci_user_fingerprint }}"
 oci_ad_number = {{ terraform_oci_ad_number }}
 oci_compartment_name = "{{ terraform_oci_compartment_name }}"
 oci_shape = "{{ terraform_oci_shape }}"
+{% if terraform_oci_instance_flex_ocpus is defined %}
 oci_instance_flex_ocpus = {{ terraform_oci_instance_flex_ocpus }}
+{% endif %}
+{% if terraform_oci_instance_flex_memory_in_gbs is defined %}
 oci_instance_flex_memory_in_gbs = {{ terraform_oci_instance_flex_memory_in_gbs }}
+{% endif %}
 oci_os_image_ocid = "{{ terraform_oci_os_image_ocid }}"
 oci_assign_public_ip = "{{ terraform_oci_assign_public_ip | lower }}"
 oci_subnet_ocid = "{{ terraform_oci_subnet_ocid }}"
diff --git a/terraform/oci/kconfigs/Kconfig.compute b/terraform/oci/kconfigs/Kconfig.compute
index 281ef6d29c95..0e3aac104175 100644
--- a/terraform/oci/kconfigs/Kconfig.compute
+++ b/terraform/oci/kconfigs/Kconfig.compute
@@ -19,9 +19,18 @@ config TERRAFORM_OCI_SHAPE_FAMILY_FLEX
 	  per instance. The network bandwidth and number of VNICs
 	  scale proportionately with the number of OCPUs.
 
+config TERRAFORM_OCI_SHAPE_FAMILY_BARE_METAL
+	bool "Bare metal"
+	help
+	  A bare metal shape is a whole physical machine without
+	  virtualization. This gives deterministic performance
+	  characteristics but is less configurable than a flex
+	  shape.
+
 endchoice
 
 source "terraform/oci/kconfigs/shapes/Kconfig.flex"
+source "terraform/oci/kconfigs/shapes/Kconfig.bm"
 
 config TERRAFORM_OCI_OS_IMAGE_OCID
 	string "OCI OS image OCID"
diff --git a/terraform/oci/kconfigs/shapes/Kconfig.bm b/terraform/oci/kconfigs/shapes/Kconfig.bm
new file mode 100644
index 000000000000..40ef4502bb0a
--- /dev/null
+++ b/terraform/oci/kconfigs/shapes/Kconfig.bm
@@ -0,0 +1,83 @@
+if TERRAFORM_OCI_SHAPE_FAMILY_BARE_METAL
+
+choice
+	prompt "OCI shape"
+	default TERRAFORM_OCI_SHAPE_BM_STANDARD3
+	help
+	  Select the basic hardware capabilities that are in each
+	  instance. For more details, see:
+
+	  https://docs.oracle.com/en-us/iaas/Content/Compute/References/computeshapes.htm#baremetalshapes
+
+config TERRAFORM_OCI_SHAPE_BM_STANDARD3
+	bool "BM.Standard3"
+	depends on TARGET_ARCH_X86_64
+	help
+	  X9-based standard compute. Processor: Intel Xeon Platinum
+	  8358. Base frequency 2.6 GHz, max turbo frequency 3.4 GHz.
+
+config TERRAFORM_OCI_SHAPE_BM_STANDARD_E4
+	bool "BM.Standard.E4"
+	depends on TARGET_ARCH_X86_64
+	help
+	  E4-based standard compute. Processor: AMD EPYC 7J13. Base
+	  frequency 2.55 GHz, max boost frequency 3.5 GHz.
+
+config TERRAFORM_OCI_SHAPE_BM_STANDARD_E5
+	bool "BM.Standard.E5"
+	depends on TARGET_ARCH_X86_64
+	help
+	  E5-based standard compute. Processor: AMD EPYC 9J14. Base
+	  frequency 2.4 GHz, max boost frequency 3.7 GHz.
+
+config TERRAFORM_OCI_SHAPE_BM_STANDARD_A1
+	bool "BM.Standard.A1"
+	depends on TARGET_ARCH_ARM64
+	help
+	  OCI Ampere A1 Compute Arm-based standard compute. Each
+	  OCPU corresponds to a single hardware execution thread.
+	  Processor: Ampere Altra Q80-30. Max frequency 3.0 GHz.
+
+config TERRAFORM_OCI_SHAPE_BM_DENSEIO_E4
+	bool "BM.DenseIO.E4"
+	depends on TARGET_ARCH_X86_64
+	help
+	  E4-based dense I/O compute. Processor: AMD EPYC 7J13.
+	  Base frequency 2.55 GHz, max boost frequency 3.5 GHz.
+
+config TERRAFORM_OCI_SHAPE_BM_DENSEIO_E5
+	bool "BM.DenseIO.E5"
+	depends on TARGET_ARCH_X86_64
+	help
+	  E5-based dense I/O compute. Processor: AMD EPYC 9J14.
+	  Base frequency 2.4 GHz, max boost frequency 3.7 GHz.
+
+config TERRAFORM_OCI_SHAPE_BM_OPTIMIZED3
+	bool "BM.Optimized3"
+	depends on TARGET_ARCH_X86_64
+	help
+	  Processor: Intel Xeon 6354. Base frequency 3.0 GHz, max
+	  turbo frequency 3.6 GHz.
+
+config TERRAFORM_OCI_SHAPE_BM_HPC_E5
+	bool "BM.HPC.E5"
+	depends on TARGET_ARCH_X86_64
+	help
+	  Processor: AMD EPYC 9J14. Base frequency 2.4 GHz, max
+	  boost frequency 3.7 GHz.
+
+endchoice
+
+config TERRAFORM_OCI_SHAPE
+	string
+	output yaml
+	default "BM.Standard3" if TERRAFORM_OCI_SHAPE_BM_STANDARD3
+	default "BM.Standard.E4" if TERRAFORM_OCI_SHAPE_BM_STANDARD_E4
+	default "BM.Standard.E5" if TERRAFORM_OCI_SHAPE_BM_STANDARD_E5
+	default "BM.Standard.A1" if TERRAFORM_OCI_SHAPE_BM_STANDARD_A1
+	default "BM.DenseIO.E4" if TERRAFORM_OCI_SHAPE_BM_DENSEIO_E4
+	default "BM.DenseIO.E5" if TERRAFORM_OCI_SHAPE_BM_DENSEIO_E5
+	default "BM.Optimized3" if TERRAFORM_OCI_SHAPE_BM_OPTIMIZED3
+	default "BM.HPC.E5" if TERRAFORM_OCI_SHAPE_BM_HPC_E5
+
+endif # TERRAFORM_OCI_SHAPE_FAMILY_BARE_METAL
-- 
2.48.1


  parent reply	other threads:[~2025-04-01  1:00 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-01  0:59 [RFC PATCH 00/31] Simplify OCI configuration menu cel
2025-04-01  0:59 ` [RFC PATCH 01/31] terraform/OCI: Remove terraform_oci_instance_display_name cel
2025-04-01  0:59 ` [RFC PATCH 02/31] terraform/OCI: One default value to rule them cel
2025-04-01  0:59 ` [RFC PATCH 03/31] terraform/OCI: Add an "Identity & Access" submenu cel
2025-04-01  0:59 ` [RFC PATCH 04/31] terraform/OCI: Add a "Resource location" submenu cel
2025-04-01  0:59 ` [RFC PATCH 05/31] terraform/OCI: Add a "Compute" Kconfig submenu cel
2025-04-01  0:59 ` [RFC PATCH 06/31] terraform/OCI: Add a "Storage" " cel
2025-04-01  0:59 ` [RFC PATCH 07/31] terraform/OCI: Add a "Networking" " cel
2025-04-01  0:59 ` [RFC PATCH 08/31] terraform/OCI: Use "output yaml" for the tenancy OCID cel
2025-04-01  0:59 ` [RFC PATCH 09/31] terraform/OCI: Use "output yaml" for the user OCID cel
2025-04-01  0:59 ` [RFC PATCH 10/31] terraform/OCI: Use "output yaml" for the signing key cel
2025-04-01  0:59 ` [RFC PATCH 11/31] terraform/OCI: Use "output yaml" for the fingerprint cel
2025-04-01  0:59 ` [RFC PATCH 12/31] terraform/OCI: Add a Region selector cel
2025-04-01  0:59 ` [RFC PATCH 13/31] terraform/OCI: Add an availability domain selector cel
2025-04-01  0:59 ` [RFC PATCH 14/31] terraform/OCI: Select your compartment by name instead of by OCID cel
2025-04-01  0:59 ` [RFC PATCH 15/31] terraform/OCI: Use "output yaml" for the instance shape setting cel
2025-04-01  0:59 ` [RFC PATCH 16/31] terraform/OCI: Add a shape selector for Flex shapes cel
2025-04-01  0:59 ` [RFC PATCH 17/31] terraform/OCI: Use "output yaml" for the OCPUs setting cel
2025-04-01  0:59 ` [RFC PATCH 18/31] terraform/OCI: Use "output yaml" for the memory_in_gbs setting cel
2025-04-01  0:59 ` [RFC PATCH 19/31] terraform/OCI: Add a shape family selector cel
2025-04-01  0:59 ` cel [this message]
2025-04-01  0:59 ` [RFC PATCH 21/31] terraform/OCI: Use "output yaml" for the source image setting cel
2025-04-01  0:59 ` [RFC PATCH 22/31] terraform/OCI: Simplify image selection cel
2025-04-01  0:59 ` [RFC PATCH 23/31] terraform/OCI: Remove TERRAFORM_OCI_VOLUMES_ENABLE_EXTRA cel
2025-04-01  0:59 ` [RFC PATCH 24/31] terraform/OCI: Use "output yaml" for the assign_public_ip" setting cel
2025-04-01  0:59 ` [RFC PATCH 25/31] terraform/OCI: Use "output yaml" for the subnet_ocid setting cel
2025-04-01  0:59 ` [RFC PATCH 26/31] terraform/OCI: Add a default VCN cel
2025-04-01  0:59 ` [RFC PATCH 27/31] terraform/OCI: Add a Kconfig switch to create a VCN on the fly cel
2025-04-01  0:59 ` [RFC PATCH 28/31] terraform/OCI: Run "terraform fmt" on provider.tf cel
2025-04-01  0:59 ` [RFC PATCH 29/31] terraform/OCI: Run "terraform fmt" on main.tf cel
2025-04-01  0:59 ` [RFC PATCH 30/31] terraform/OCI: Nit: alphabetize vars.tf cel
2025-04-01  1:00 ` [RFC PATCH 31/31] terraform/OCI: Update the OCI section of docs/kdevops-terraform.md cel
2025-04-02 19:21 ` [RFC PATCH 00/31] Simplify OCI configuration menu Luis Chamberlain
2025-04-02 19:24   ` Luis Chamberlain
2025-04-02 19:38   ` Chuck Lever
2025-04-02 20:08     ` Luis Chamberlain
2025-04-08 12:42       ` Chandan Babu R
2025-04-08 13:20         ` Chuck Lever
2025-04-09  4:04           ` Chandan Babu R

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=20250401010000.764234-21-cel@kernel.org \
    --to=cel@kernel.org \
    --cc=chandanbabu@kernel.org \
    --cc=chuck.lever@oracle.com \
    --cc=kdevops@lists.linux.dev \
    /path/to/YOUR_REPLY

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

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