public inbox for kdevops@lists.linux.dev
 help / color / mirror / Atom feed
From: Chuck Lever <cel@kernel.org>
To: Luis Chamberlain <mcgrof@kernel.org>
Cc: Daniel Gomez <da.gomez@kruces.com>, kdevops@lists.linux.dev
Subject: Re: [PATCH 0/5] rust + rcloud support
Date: Sat, 18 Oct 2025 14:22:15 -0400	[thread overview]
Message-ID: <3d41444b-5db0-4b76-95cd-1466ea4237f2@kernel.org> (raw)
In-Reply-To: <20251018023218.2240269-1-mcgrof@kernel.org>

On 10/17/25 10:32 PM, Luis Chamberlain wrote:
> This adds first rust dependencies support as a simple common module,
> and then leverages it for both bootlinux (without actually building
> anything, just pulling in the deps), and then adds our first kdevops
> rust project: rcloud. The rcloud effort is our version of a cloud
> provider built for bare metal, to simplify bringups and enhance CI
> experience.
> 
> There will always be a need for needing to do custom qemu stuff,
> we're hackers after all. But for many use cases, typically CI stuff,
> we want to leverage just basic guestfs images on default qemu guests
> with sensible defaults.
> 
> Future rcloud support can grow to support a network of bare metal hosts
> in a datacenter, but its not clear if we really need that. Having to
> set up rcloud per a large server might suffice for most of our developer
> needs and to help enhance CI.
> 
> The rcloud support strategy is an alternative to dealing with the
> complexities with each user on a large system having to set up a guestfs
> and a kdevops environemnt. Essentially with this one user just need to
> set up rcloud once.
> 
> This work is experimental but passes basic bringup. It should be ready
> to mege unless a regression is found during CI testing. Would love
> architectural feedback. Is this a sensible alternative to the idea of
> having say rpm or debian packages for kdevops?
> 
> Luis Chamberlain (5):
>   install-rust-deps: Add generic Rust toolchain role
>   CLAUDE.md: Add Rust code quality requirements
>   bootlinux: Integrate Rust toolchain dependencies
>   install-go-deps: Add generic Go toolchain role
>   rcloud: Add experimental private cloud infrastructure for bare metal
> 
>  .rustfmt.toml                                 |   12 +
>  CLAUDE.md                                     |   22 +
>  Makefile                                      |    5 +
>  README.md                                     |    1 +
>  defconfigs/rcloud                             |   53 +
>  defconfigs/rcloud-guest-test                  |   58 +
>  kconfigs/workflows/Kconfig                    |    2 +
>  playbooks/install-rcloud-deps.yml             |    5 +
>  playbooks/rcloud.yml                          |  107 +
>  .../base_image/templates/virt-builder.j2      |    8 +-
>  playbooks/roles/bootlinux/tasks/main.yml      |    7 +
>  .../templates/rcloud/terraform.tfvars.j2      |   16 +
>  .../tasks/install-deps/debian/main.yml        |   10 +
>  .../tasks/install-deps/fedora/main.yml        |    9 +
>  .../tasks/install-deps/main.yml               |   21 +
>  .../tasks/install-deps/redhat/main.yml        |    9 +
>  .../tasks/install-deps/suse/main.yml          |    9 +
>  .../roles/install-go-deps/tasks/main.yml      |   15 +
>  .../tasks/install-deps/debian/main.yml        |   10 +
>  .../tasks/install-deps/fedora/main.yml        |    9 +
>  .../tasks/install-deps/main.yml               |   21 +
>  .../tasks/install-deps/redhat/main.yml        |    9 +
>  .../tasks/install-deps/suse/main.yml          |    9 +
>  .../roles/install-rcloud-deps/tasks/main.yml  |   25 +
>  playbooks/roles/install-rust-deps/README.md   |   90 +
>  .../tasks/install-deps/debian/main.yml        |   12 +
>  .../tasks/install-deps/fedora/main.yml        |   11 +
>  .../tasks/install-deps/main.yml               |   21 +
>  .../tasks/install-deps/redhat/main.yml        |   11 +
>  .../tasks/install-deps/suse/main.yml          |   11 +
>  .../roles/install-rust-deps/tasks/main.yml    |   15 +
>  scripts/generate_cloud_configs.py             |    2 +-
>  scripts/install-rcloud-deps.Makefile          |   13 +
>  scripts/terraform.Makefile                    |    8 +
>  terraform-provider-rcloud/.gitignore          |   20 +
>  terraform-provider-rcloud/README.md           |  101 +
>  terraform-provider-rcloud/examples/main.tf    |   28 +
>  terraform-provider-rcloud/go.mod              |   32 +
>  terraform-provider-rcloud/go.sum              |   75 +
>  .../internal/provider/client.go               |  207 +
>  .../internal/provider/provider.go             |  129 +
>  .../internal/provider/resource_vm.go          |  344 ++
>  terraform-provider-rcloud/main.go             |   47 +
>  terraform/Kconfig.providers                   |   12 +
>  terraform/rcloud/Kconfig                      |   25 +
>  terraform/rcloud/main.tf                      |    8 +
>  terraform/rcloud/output.tf                    |   10 +
>  terraform/rcloud/provider.tf                  |   14 +
>  terraform/rcloud/shared.tf                    |   60 +
>  terraform/rcloud/vars.tf                      |    9 +
>  workflows/rcloud/.gitignore                   |    1 +
>  workflows/rcloud/Cargo.lock                   | 3550 +++++++++++++++++
>  workflows/rcloud/Cargo.toml                   |   69 +
>  workflows/rcloud/DESIGN.md                    |  444 +++
>  workflows/rcloud/Kconfig                      |   53 +
>  workflows/rcloud/Makefile                     |  149 +
>  workflows/rcloud/docs/AUTHENTICATION.md       |  166 +
>  workflows/rcloud/docs/TESTING.md              |  429 ++
>  workflows/rcloud/scripts/check-health.py      |  158 +
>  workflows/rcloud/src/api/handlers/health.rs   |   51 +
>  workflows/rcloud/src/api/handlers/images.rs   |   31 +
>  workflows/rcloud/src/api/handlers/metrics.rs  |   15 +
>  workflows/rcloud/src/api/handlers/mod.rs      |    4 +
>  workflows/rcloud/src/api/handlers/vms.rs      |  172 +
>  workflows/rcloud/src/api/mod.rs               |    3 +
>  workflows/rcloud/src/api/models.rs            |   55 +
>  workflows/rcloud/src/api/routes.rs            |   24 +
>  workflows/rcloud/src/config/kdevops.rs        |  121 +
>  workflows/rcloud/src/config/mod.rs            |  117 +
>  workflows/rcloud/src/lib.rs                   |    4 +
>  workflows/rcloud/src/main.rs                  |   64 +
>  workflows/rcloud/src/metrics.rs               |  100 +
>  workflows/rcloud/src/vm/disk.rs               |   66 +
>  workflows/rcloud/src/vm/manager.rs            |  520 +++
>  workflows/rcloud/src/vm/mod.rs                |    5 +
>  workflows/rcloud/src/vm/xml.rs                |  169 +
>  workflows/rcloud/tests/api_tests.rs           |   18 +
>  77 files changed, 8322 insertions(+), 3 deletions(-)
>  create mode 100644 .rustfmt.toml
>  create mode 100644 defconfigs/rcloud
>  create mode 100644 defconfigs/rcloud-guest-test
>  create mode 100644 playbooks/install-rcloud-deps.yml
>  create mode 100644 playbooks/rcloud.yml
>  create mode 100644 playbooks/roles/gen_tfvars/templates/rcloud/terraform.tfvars.j2
>  create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/debian/main.yml
>  create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/fedora/main.yml
>  create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/main.yml
>  create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/redhat/main.yml
>  create mode 100644 playbooks/roles/install-go-deps/tasks/install-deps/suse/main.yml
>  create mode 100644 playbooks/roles/install-go-deps/tasks/main.yml
>  create mode 100644 playbooks/roles/install-rcloud-deps/tasks/install-deps/debian/main.yml
>  create mode 100644 playbooks/roles/install-rcloud-deps/tasks/install-deps/fedora/main.yml
>  create mode 100644 playbooks/roles/install-rcloud-deps/tasks/install-deps/main.yml
>  create mode 100644 playbooks/roles/install-rcloud-deps/tasks/install-deps/redhat/main.yml
>  create mode 100644 playbooks/roles/install-rcloud-deps/tasks/install-deps/suse/main.yml
>  create mode 100644 playbooks/roles/install-rcloud-deps/tasks/main.yml
>  create mode 100644 playbooks/roles/install-rust-deps/README.md
>  create mode 100644 playbooks/roles/install-rust-deps/tasks/install-deps/debian/main.yml
>  create mode 100644 playbooks/roles/install-rust-deps/tasks/install-deps/fedora/main.yml
>  create mode 100644 playbooks/roles/install-rust-deps/tasks/install-deps/main.yml
>  create mode 100644 playbooks/roles/install-rust-deps/tasks/install-deps/redhat/main.yml
>  create mode 100644 playbooks/roles/install-rust-deps/tasks/install-deps/suse/main.yml
>  create mode 100644 playbooks/roles/install-rust-deps/tasks/main.yml
>  create mode 100644 scripts/install-rcloud-deps.Makefile
>  create mode 100644 terraform-provider-rcloud/.gitignore
>  create mode 100644 terraform-provider-rcloud/README.md
>  create mode 100644 terraform-provider-rcloud/examples/main.tf
>  create mode 100644 terraform-provider-rcloud/go.mod
>  create mode 100644 terraform-provider-rcloud/go.sum
>  create mode 100644 terraform-provider-rcloud/internal/provider/client.go
>  create mode 100644 terraform-provider-rcloud/internal/provider/provider.go
>  create mode 100644 terraform-provider-rcloud/internal/provider/resource_vm.go
>  create mode 100644 terraform-provider-rcloud/main.go
>  create mode 100644 terraform/rcloud/Kconfig
>  create mode 100644 terraform/rcloud/main.tf
>  create mode 100644 terraform/rcloud/output.tf
>  create mode 100644 terraform/rcloud/provider.tf
>  create mode 100644 terraform/rcloud/shared.tf
>  create mode 100644 terraform/rcloud/vars.tf
>  create mode 100644 workflows/rcloud/.gitignore
>  create mode 100644 workflows/rcloud/Cargo.lock
>  create mode 100644 workflows/rcloud/Cargo.toml
>  create mode 100644 workflows/rcloud/DESIGN.md
>  create mode 100644 workflows/rcloud/Kconfig
>  create mode 100644 workflows/rcloud/Makefile
>  create mode 100644 workflows/rcloud/docs/AUTHENTICATION.md
>  create mode 100644 workflows/rcloud/docs/TESTING.md
>  create mode 100644 workflows/rcloud/scripts/check-health.py
>  create mode 100644 workflows/rcloud/src/api/handlers/health.rs
>  create mode 100644 workflows/rcloud/src/api/handlers/images.rs
>  create mode 100644 workflows/rcloud/src/api/handlers/metrics.rs
>  create mode 100644 workflows/rcloud/src/api/handlers/mod.rs
>  create mode 100644 workflows/rcloud/src/api/handlers/vms.rs
>  create mode 100644 workflows/rcloud/src/api/mod.rs
>  create mode 100644 workflows/rcloud/src/api/models.rs
>  create mode 100644 workflows/rcloud/src/api/routes.rs
>  create mode 100644 workflows/rcloud/src/config/kdevops.rs
>  create mode 100644 workflows/rcloud/src/config/mod.rs
>  create mode 100644 workflows/rcloud/src/lib.rs
>  create mode 100644 workflows/rcloud/src/main.rs
>  create mode 100644 workflows/rcloud/src/metrics.rs
>  create mode 100644 workflows/rcloud/src/vm/disk.rs
>  create mode 100644 workflows/rcloud/src/vm/manager.rs
>  create mode 100644 workflows/rcloud/src/vm/mod.rs
>  create mode 100644 workflows/rcloud/src/vm/xml.rs
>  create mode 100644 workflows/rcloud/tests/api_tests.rs
> 

For the bits under terraform/ ...

Acked-by: Chuck Lever <chuck.lever@oracle.com>



-- 
Chuck Lever

  parent reply	other threads:[~2025-10-18 18:22 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-18  2:32 [PATCH 0/5] rust + rcloud support Luis Chamberlain
2025-10-18  2:32 ` [PATCH 1/5] install-rust-deps: Add generic Rust toolchain role Luis Chamberlain
2025-10-18  2:32 ` [PATCH 2/5] CLAUDE.md: Add Rust code quality requirements Luis Chamberlain
2025-10-18  2:32 ` [PATCH 3/5] bootlinux: Integrate Rust toolchain dependencies Luis Chamberlain
2025-10-18  2:32 ` [PATCH 4/5] install-go-deps: Add generic Go toolchain role Luis Chamberlain
2025-10-18  2:32 ` [PATCH 5/5] rcloud: Add experimental private cloud infrastructure for bare metal Luis Chamberlain
2025-10-18 18:22 ` Chuck Lever [this message]
2025-10-21 16:58   ` [PATCH 0/5] rust + rcloud support 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=3d41444b-5db0-4b76-95cd-1466ea4237f2@kernel.org \
    --to=cel@kernel.org \
    --cc=da.gomez@kruces.com \
    --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