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
next 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