webmeshproj / webmesh-vdi

A Kubernetes-native Virtual Desktop Infrastructure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Add Docker Support within desktops

immae1 opened this issue · comments

Hi i tried your project :) Very nice -thanks!
But it is possible to install docker within a desktop environment?

This is loosely related to the next big thing I want to do, which is full VM support, but I realize a DinD sidecar option could work really well also and be accomplished in shorter time.

Will definitely look into it.

Alright very cool - i'll definitely stay tuned. if i could support let me know ;)

If you are interested in taking a stab at it, by all means. This project could use more contributors 😉 .

But this does have overlap with another issue I'm still trying to reconcile in my head, which is the Template API itself. It's basically a fancy Pod template at this point, and if it were just a pod template (or at least embedded one) then this feature would already exist in theory. Also veers into the app-profile and dosbox/gaming stuff because I think those should be new APIs that need a lot of the features of the Template API.

So we're at a point where I'm asking myself, "Do we want to add like an enableDocker to the Template, or just go ahead and rip up that API into pieces or whatever".

In case you are keeping score at home...I'm leaning at tearing up the Template API a bit. The changes I'm considering turn the examples into something like this instead:

apiVersion: desktops.kvdi.io/v1
kind: Template
metadata:
  name: ubuntu-xfce
spec:
  desktop:
    image: ghcr.io/tinyzimmer/kvdi:ubuntu-xfce4-latest
    imagePullPolicy: IfNotPresent
    allowRoot: true
  proxy:
    allowFileTransfer: true
  tags:
    os: ubuntu
    desktop: xfce4
    applications: minimal

This way every container has its own structure, and is more implicit about what they do and their function. Then another group of configurations I'm considering adding is:

spec:
  desktop:
    image: ghcr.io/tinyzimmer/kvdi:ubuntu-xfce4-latest
  # ...
  dind: {} # defaults
    # images, volumes, etc for the dind container

I'm gonna play with it more in a bit and do some testing. If I come up with something that works and I like I'll publish a tag with this and the above API changes.

Ok I've released a tag with, experimental support, we'll call it. You can see more details here: https://github.com/tinyzimmer/kvdi/releases/tag/v0.2.2

If you fancy a screenshot

dind

The build for the release usually takes around ~15 minutes before the images are published.