loft-sh / devpod

Codespaces but open-source, client-only and unopinionated: Works with any IDE and lets you use any cloud, kubernetes or just localhost docker.
https://devpod.sh
Mozilla Public License 2.0
9.58k stars 349 forks source link

QEMU provider #335

Open beriberikix opened 1 year ago

beriberikix commented 1 year ago

Hello! Is it feasible to create a provider for QEMU? I work with embedded software and access to physical devices is critical. Docker and Podman have limitations that make the general case impossible. A full VM like QEMU (and full access to it's features) provides most of what embedded developers need. If I understand the devpod model currently, it should be feasible to create provider for QEMU. If so, is that on the roadmap or something the community has already expressed interest around?

Cheers!

FabianKramm commented 1 year ago

@beriberikix thanks for creating this issue! Yes that sounds very feasible and it should be definitely possible to write such a provider, we even thought about creating a kvm provider to use for DevPod ourselves. However, right now, we don't have immediate plans to create such a provider, but would welcome outside contributions.

beriberikix commented 1 year ago

Cool! And hyper-v/Hypervisor.framework for Windows/macOS, respectively!

I'd love to find the time to pull something together but I know I won't. On the odd chance I do, is there a starter provider I could look at?

FabianKramm commented 1 year ago

@beriberikix yes we have an example provider here https://github.com/loft-sh/devpod/blob/main/examples/simple-k8s-provider/provider.yaml and if you want an actual fully fledged example, you can take a look at https://github.com/loft-sh/devpod-provider-civo. We also have documentation around creating providers at https://devpod.sh/docs/developing-providers/quickstart

koolay commented 1 year ago

Is there any example for machine provider? I want to create a workspace on local qemu vm, but not found any example.

FabianKramm commented 1 year ago

@koolay you can also use the ssh provider to connect to it, we can think about adding a qemu provider example to devpod to give you an idea