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 00/31] Simplify OCI configuration menu
Date: Mon, 31 Mar 2025 20:59:29 -0400	[thread overview]
Message-ID: <20250401010000.764234-1-cel@kernel.org> (raw)

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

Over the past month or two I've had to set up kdevops with all
four major public cloud providers in order to test the new
volume_group role on each of them. There are a lot of similarities
amongst the providers, and one of them is that set-up is probably
much more complicated than necessary for all of them.

I've come up with some simplifications that can apply to all of
the providers, but I'd like to start with OCI because it looks to me
like it's the one that has the most users currently. Let's figure
out what OCI configuration needs to look like (ie, what changes its
users will tolerate!) and make the other providers work the same
way.

This series features a number of changes:

- The configuration is split into several submenus, just like
  the cloud console, to help humans navigate the complexity

- A number of internal simplifications will help us keep up
  with changes and new features in the provider. In particular,
  splitting things into smaller files will make it simpler to
  add scripts to poll provider feature changes and adjust the
  kdevops menus accordingly

- Free-form strings and "copy this OCID from the console" are
  replaced with "choose from this menu of known-working options".
  This includes selection of region, availability domain, shape,
  and source image

- I've added an option to provision a VCN instead of assuming
  a pre-existing one, similar to how the other providers work

Some of this stuff will make immediate sense, and some might be
controversial. All comments are welcome.

https://github.com/chucklever/kdevops   branch => terraform-oci

Chuck Lever (31):
  terraform/OCI: Remove terraform_oci_instance_display_name
  terraform/OCI: One default value to rule them
  terraform/OCI: Add an "Identity & Access" submenu
  terraform/OCI: Add a "Resource location" submenu
  terraform/OCI: Add a "Compute" Kconfig submenu
  terraform/OCI: Add a "Storage" Kconfig submenu
  terraform/OCI: Add a "Networking" Kconfig submenu
  terraform/OCI: Use "output yaml" for the tenancy OCID
  terraform/OCI: Use "output yaml" for the user OCID
  terraform/OCI: Use "output yaml" for the signing key
  terraform/OCI: Use "output yaml" for the fingerprint
  terraform/OCI: Add a Region selector
  terraform/OCI: Add an availability domain selector
  terraform/OCI: Select your compartment by name instead of by OCID
  terraform/OCI: Use "output yaml" for the instance shape setting
  terraform/OCI: Add a shape selector for Flex shapes
  terraform/OCI: Use "output yaml" for the OCPUs setting
  terraform/OCI: Use "output yaml" for the memory_in_gbs setting
  terraform/OCI: Add a shape family selector
  terraform/OCI: Add a bare metal shape selector
  terraform/OCI: Use "output yaml" for the source image setting
  terraform/OCI: Simplify image selection
  terraform/OCI: Remove TERRAFORM_OCI_VOLUMES_ENABLE_EXTRA
  terraform/OCI: Use "output yaml" for the assign_public_ip" setting
  terraform/OCI: Use "output yaml" for the subnet_ocid setting
  terraform/OCI: Add a default VCN
  terraform/OCI: Add a Kconfig switch to create a VCN on the fly
  terraform/OCI: Run "terraform fmt" on provider.tf
  terraform/OCI: Run "terraform fmt" on main.tf
  terraform/OCI: Nit: alphabetize vars.tf
  terraform/OCI: Update the OCI section of docs/kdevops-terraform.md

 docs/kdevops-terraform.md                     | 117 +++----
 playbooks/roles/gen_tfvars/defaults/main.yml  |  20 +-
 .../templates/oci/terraform.tfvars.j2         |  20 +-
 scripts/terraform.Makefile                    |  31 --
 terraform/oci/Kconfig                         | 289 +-----------------
 terraform/oci/kconfigs/Kconfig.compute        |  72 +++++
 terraform/oci/kconfigs/Kconfig.identity       |  35 +++
 terraform/oci/kconfigs/Kconfig.location       |  52 ++++
 terraform/oci/kconfigs/Kconfig.network        |  39 +++
 terraform/oci/kconfigs/Kconfig.storage        | 137 +++++++++
 .../oci/kconfigs/images/Kconfig.OracleLinux   | 237 ++++++++++++++
 terraform/oci/kconfigs/images/Kconfig.Ubuntu  | 162 ++++++++++
 terraform/oci/kconfigs/images/Kconfig.custom  |  20 ++
 .../kconfigs/regions/Kconfig.ap-hyderabad-1   |  28 ++
 .../oci/kconfigs/regions/Kconfig.ap-mumbai-1  |  27 ++
 .../kconfigs/regions/Kconfig.ca-montreal-1    |  28 ++
 .../oci/kconfigs/regions/Kconfig.ca-toronto-1 |  28 ++
 .../oci/kconfigs/regions/Kconfig.us-ashburn-1 |  36 +++
 .../oci/kconfigs/regions/Kconfig.us-chicago-1 |  36 +++
 .../oci/kconfigs/regions/Kconfig.us-phoenix-1 |  36 +++
 .../oci/kconfigs/regions/Kconfig.us-sanjose-1 |  28 ++
 terraform/oci/kconfigs/shapes/Kconfig.bm      |  83 +++++
 terraform/oci/kconfigs/shapes/Kconfig.flex    | 104 +++++++
 terraform/oci/main.tf                         | 195 +++++++++---
 terraform/oci/provider.tf                     |  10 +-
 terraform/oci/vars.tf                         | 158 +++++-----
 26 files changed, 1472 insertions(+), 556 deletions(-)
 create mode 100644 terraform/oci/kconfigs/Kconfig.compute
 create mode 100644 terraform/oci/kconfigs/Kconfig.identity
 create mode 100644 terraform/oci/kconfigs/Kconfig.location
 create mode 100644 terraform/oci/kconfigs/Kconfig.network
 create mode 100644 terraform/oci/kconfigs/Kconfig.storage
 create mode 100644 terraform/oci/kconfigs/images/Kconfig.OracleLinux
 create mode 100644 terraform/oci/kconfigs/images/Kconfig.Ubuntu
 create mode 100644 terraform/oci/kconfigs/images/Kconfig.custom
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.ap-hyderabad-1
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.ap-mumbai-1
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.ca-montreal-1
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.ca-toronto-1
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.us-ashburn-1
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.us-chicago-1
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.us-phoenix-1
 create mode 100644 terraform/oci/kconfigs/regions/Kconfig.us-sanjose-1
 create mode 100644 terraform/oci/kconfigs/shapes/Kconfig.bm
 create mode 100644 terraform/oci/kconfigs/shapes/Kconfig.flex

-- 
2.48.1


             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 cel [this message]
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 ` [RFC PATCH 20/31] terraform/OCI: Add a bare metal shape selector cel
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-1-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