From: cel@kernel.org
To: Luis Chamberlain <mcgrof@kernel.org>,
Chandan Babu R <chandanbabu@kernel.org>,
Jeff Layton <jlayton@kernel.org>
Cc: <kdevops@lists.linux.dev>, Chuck Lever <chuck.lever@oracle.com>
Subject: [PATCH v1 00/13] Block device provisioning for storage nodes
Date: Mon, 10 Mar 2025 10:18:00 -0400 [thread overview]
Message-ID: <20250310141813.969325-1-cel@kernel.org> (raw)
From: Chuck Lever <chuck.lever@oracle.com>
Hi -
Sorry for the length of the series. I'm posting the series as a
whole to provide context for each of the individual changes. Feel
free to focus on whichever patch or patches in this series are most
interesting to you. All review comments are welcome.
The high-level goal is to enable testing NFS / SMB / iSCSI with
kdevops in the cloud. These workflows are already operational for
guestfs. The basic challenge is each cloud provider has a distinct
way of provisioning and attaching block devices.
This series can be considered in two sections:
- the first four patches wrangle the terraform for some of the
cloud providers to make them provision a set of extra block
volumes, each of the same size, just as guestfs and AWS
currently do.
- the second half of the series adds a new playbook that:
- de-duplicates the scripting that creates an LVM volume group,
because three different roles each implement this the same way
- replaces the "skip one device" method for determining which
extra block volume the /data partition should live on. AWS still
needs some work here because NVMe devices can get renamed after
every instance reboot
- adds LVM support that handles the differences amongst the cloud
providers, tucked away in the new playbook
GCE and OpenStack are not yet updated, but they are in plan.
Chuck Lever (13):
terraform/AWS: Upgrade the EBS volume type to "gp3"
terraform/Azure: Remove managed_disk_type selection
terraform/Azure: Create a set of multiple generic block devices
terraform/OCI: Create a set of multiple generic block devices
guestfs: Set storage options consistently
playbooks: Add a role to create an LVM volume group
volume_group: Detect the /data partition directly
volume_group: Prepare to support cloud providers
volume_group: Create volume group on terraform/AWS nodes
volume_group: Create a volume group on Azure nodes
volume_group: Create a volume group on GCE nodes
volume_group: Create a volume group on OCI nodes
volume_group: Create a volume group on OpenStack public clouds
kconfigs/Kconfig.iscsi | 22 ---
kconfigs/Kconfig.libvirt | 3 +
kconfigs/Kconfig.nfsd | 27 +--
kconfigs/Kconfig.smbd | 17 --
playbooks/roles/gen_nodes/defaults/main.yml | 2 +-
playbooks/roles/gen_tfvars/defaults/main.yml | 1 -
.../templates/azure/terraform.tfvars.j2 | 4 +-
.../templates/oci/terraform.tfvars.j2 | 6 +
playbooks/roles/iscsi/defaults/main.yml | 2 -
playbooks/roles/iscsi/tasks/main.yml | 23 +--
playbooks/roles/iscsi/vars/Debian.yml | 1 -
playbooks/roles/iscsi/vars/RedHat.yml | 1 -
playbooks/roles/iscsi/vars/Suse.yml | 1 -
playbooks/roles/nfsd/defaults/main.yml | 3 -
playbooks/roles/nfsd/tasks/main.yml | 21 +--
playbooks/roles/smbd/defaults/main.yml | 3 -
playbooks/roles/smbd/tasks/main.yml | 21 +--
playbooks/roles/volume_group/README.md | 42 +++++
.../roles/volume_group/defaults/main.yml | 4 +
.../roles/volume_group/tasks/guestfs.yml | 59 ++++++
playbooks/roles/volume_group/tasks/main.yml | 42 +++++
.../volume_group/tasks/terraform/aws.yml | 54 ++++++
.../volume_group/tasks/terraform/azure.yml | 40 +++++
.../volume_group/tasks/terraform/gce.yml | 4 +
.../volume_group/tasks/terraform/oci.yml | 38 ++++
.../tasks/terraform/openstack.yml | 4 +
scripts/gen-nodes.Makefile | 10 --
scripts/iscsi.Makefile | 2 -
scripts/nfsd.Makefile | 2 -
scripts/smbd.Makefile | 2 -
scripts/terraform.Makefile | 10 +-
terraform/aws/main.tf | 3 +-
terraform/azure/Kconfig | 168 ++++++++++++++++--
terraform/azure/main.tf | 48 ++---
terraform/azure/managed_disks/main.tf | 20 +++
terraform/azure/managed_disks/vars.tf | 29 +++
terraform/azure/vars.tf | 17 +-
terraform/oci/Kconfig | 153 ++++++++++++++++
terraform/oci/main.tf | 28 ++-
terraform/oci/vars.tf | 17 ++
40 files changed, 744 insertions(+), 210 deletions(-)
create mode 100644 playbooks/roles/volume_group/README.md
create mode 100644 playbooks/roles/volume_group/defaults/main.yml
create mode 100644 playbooks/roles/volume_group/tasks/guestfs.yml
create mode 100644 playbooks/roles/volume_group/tasks/main.yml
create mode 100644 playbooks/roles/volume_group/tasks/terraform/aws.yml
create mode 100644 playbooks/roles/volume_group/tasks/terraform/azure.yml
create mode 100644 playbooks/roles/volume_group/tasks/terraform/gce.yml
create mode 100644 playbooks/roles/volume_group/tasks/terraform/oci.yml
create mode 100644 playbooks/roles/volume_group/tasks/terraform/openstack.yml
create mode 100644 terraform/azure/managed_disks/main.tf
create mode 100644 terraform/azure/managed_disks/vars.tf
--
2.48.1
next reply other threads:[~2025-03-10 14:18 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-10 14:18 cel [this message]
2025-03-10 14:18 ` [PATCH v1 01/13] terraform/AWS: Upgrade the EBS volume type to "gp3" cel
2025-03-10 14:18 ` [PATCH v1 02/13] terraform/Azure: Remove managed_disk_type selection cel
2025-03-10 14:18 ` [PATCH v1 03/13] terraform/Azure: Create a set of multiple generic block devices cel
2025-03-10 14:18 ` [PATCH v1 04/13] terraform/OCI: " cel
2025-03-13 5:56 ` Chandan Babu R
2025-03-10 14:18 ` [PATCH v1 05/13] guestfs: Set storage options consistently cel
2025-03-10 14:18 ` [PATCH v1 06/13] playbooks: Add a role to create an LVM volume group cel
2025-03-10 14:18 ` [PATCH v1 07/13] volume_group: Detect the /data partition directly cel
2025-03-10 14:18 ` [PATCH v1 08/13] volume_group: Prepare to support cloud providers cel
2025-03-10 14:18 ` [PATCH v1 09/13] volume_group: Create volume group on terraform/AWS nodes cel
2025-03-10 14:18 ` [PATCH v1 10/13] volume_group: Create a volume group on Azure nodes cel
2025-03-10 14:18 ` [PATCH v1 11/13] volume_group: Create a volume group on GCE nodes cel
2025-03-10 14:18 ` [PATCH v1 12/13] volume_group: Create a volume group on OCI nodes cel
2025-03-13 6:29 ` Chandan Babu R
2025-03-10 14:18 ` [PATCH v1 13/13] volume_group: Create a volume group on OpenStack public clouds cel
2025-03-11 3:29 ` [PATCH v1 00/13] Block device provisioning for storage nodes Luis Chamberlain
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=20250310141813.969325-1-cel@kernel.org \
--to=cel@kernel.org \
--cc=chandanbabu@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=jlayton@kernel.org \
--cc=kdevops@lists.linux.dev \
--cc=mcgrof@kernel.org \
/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