Bug 50494 - novnc: Replace websockify with libvirt-console-proxy
novnc: Replace websockify with libvirt-console-proxy
Status: CLOSED WONTFIX
Product: UCS
Classification: Unclassified
Component: Virtualization - UVMM
UCS 4.4
Other Linux
: P5 normal (vote)
: ---
Assigned To: UCS maintainers
UCS maintainers
https://www.berrange.com/posts/2017/0...
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2019-11-14 09:46 CET by Florian Best
Modified: 2023-06-28 10:45 CEST (History)
1 user (show)

See Also:
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 (3.57 KB, patch)
2021-11-12 13:33 CET, Florian Best
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
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.