Bug 50494

Summary: novnc: Replace websockify with libvirt-console-proxy
Product: UCS Reporter: Florian Best <best>
Component: Virtualization - UVMMAssignee: UCS maintainers <ucs-maintainers>
Status: CLOSED WONTFIX QA Contact: UCS maintainers <ucs-maintainers>
Severity: normal    
Priority: P5 CC: hahn
Version: UCS 4.4   
Target Milestone: ---   
Hardware: Other   
OS: Linux   
URL: https://www.berrange.com/posts/2017/01/26/announce-new-libvirt-console-proxy-project/
See Also: https://forge.univention.org/bugzilla/show_bug.cgi?id=35428
What kind of report is it?: Development Internal What type of bug is this?: ---
Who will be affected by this bug?: --- How will those affected feel about the bug?: ---
User Pain: Enterprise Customer affected?:
School Customer affected?: ISV affected?:
Waiting Support: Flags outvoted (downgraded) after PO Review:
Ticket number: Bug group (optional):
Max CVSS v3 score:
Attachments: patch backup - probably never used

Description Florian Best univentionstaff 2019-11-14 09:46:03 CET
We are currently using websockify as the service where novnc connects to. websockify provides the VNC protocol over a websocket.

qemu already supports this by itself:

    <graphics type='vnc' port='5900' autoport='yes' websocket='5700' listen='0.0.0.0' keymap='de'>
      <listen type='address' address='0.0.0.0'/>
    </graphics>

The <graphics> tag has an attribute websocket. With websocket='-1' it will create such vnc-over-websocketservice and assigns a port.

This works already quite well: …/novnc/vnc_auto.html?host=myqemu.host.local&port=5700

But not every virtualization server is available in the networks used by customers.
Therefore there is the libvirt-console-proxy projects, which is just a websocket proxy to the qemu websockets.

We should replace the current websockify process with such a libvirt-console-proxy.
Unfortionately currently there are no debian packages yet for libvirt-console-proxy (or I didn't find any). It's written in go, we could package it ourself, but I think this is not worth the efford right now.
Comment 1 Philipp Hahn univentionstaff 2019-11-15 14:15:45 CET
libvirt-console-proxy received no updates the last 3 years and no longer compiles du to several API changes in upstream projects - the joy of GO.
My branch at <file:~phahn/REPOS/VIRT/libvirt-console-proxy> contains several patches to make it compile again, which I also sent upstream: <https://www.redhat.com/archives/libvir-list/2019-November/msg00745.html>

To compile it on Debian / UCS-4.4 it needs more work; my branch contains some Debianization WIP, but "golang-glase" as contained in Debian-Stretch does not work - use the latest version from <https://github.com/Masterminds/glide#install>

Using "glade mirror" to setup an alias for "libvirt.org/libvirt-console-proxy" did not work; therefore my branch has
  [debian/sid] 6b32369 Update GIT repository to github.com Makefile

Put everything below ~/go/src/ and hope for the best.
Comment 2 Florian Best univentionstaff 2021-11-12 13:33:37 CET
Created attachment 10864 [details]
patch backup - probably never used
Comment 3 Philipp Hahn univentionstaff 2023-06-28 10:44:06 CEST
UVMM and virtualization with UCS is deprecated and will no longer be developed in UCS 4.4; they have already been removed from UCS 5.0.