Re: [PATCH 0/5] rust + rcloud support
Luis Chamberlain <[email protected]> Tue, 21 Oct 2025 09:58:19 -0700
| Newsgroups | dev.linux.lists.kdevops |
|---|---|
| Message-ID | <[email protected]> |
On Sat, Oct 18, 2025 at 02:22:15PM -0400, Chuck Lever wrote: > 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]> Great, thanks, pushed. Luis