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