-
Notifications
You must be signed in to change notification settings - Fork 1
Description
I like the idea of this tool, as it allows to easily expose a VM to anyone on a tailnet. However, while the idea of SSH to control the VM state is novel, it is probably a better idea to proxy the actual SSH of the host to UI. Below is a quick mockup of a minimal interface that looks a lot like the one provided by cockpit.
For example, the dropdown allows switching between VNC Console and an SSH terminal. Under the menu that popped out is a Expand [] button to allow the desktop/terminal to take over the whole area. The URL vmproxy/#terminal would automagically open an expanded terminal:
and similarly for #desktop.
Note: Migrate has no meaning here (copy/paste) from the Cockpit UI. And Console being a placeholder for the vmname.
Also, this would mean the command line could be:
$ vmproxy <vmname> <IP address> <vnc session|:0> [--ssh]
With [--ssh] to allow SSH forwarding or not, and the VNC sessions defaulting to :0 for port 5900.
Note: --ssh should also register the node as it was run with setArgs.runSSH, and therefore allow the Dashboard to allow the javascript terminal.
Actually, in that case it becomes more of a generic machine-proxy tool, as VNC and SSH aren't only for a VM... so what about:
$ machineproxy <name> <IP address> <vnc session|:0> [--ssh] [--vm]
which only registers the Libvirt/virsh interaction when --vm is provided, and otherwise will just act as a proxy for a machine at a given IP address.

