Re: [PATCH 0/5] rust + rcloud support
Chuck Lever <[email protected]> Sat, 18 Oct 2025 14:22:15 -0400
| Newsgroups | dev.linux.lists.kdevops |
|---|---|
| Organization | kernel.org |
| Message-ID | <[email protected]> |
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 <[email protected]> -- Chuck Lever