<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="en-AT" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">We are using xpra (https://xpra.org/) together with VirtualGL (<a href="https://www.virtualgl.org/">https://www.virtualgl.org/</a>) on our virtualized OpenStack based SLURM cluster to
 support OpenGL accelerated applications such as MorphoGraphX (<a href="https://morphographx.org/">https://morphographx.org/</a>) for our users.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">This works pretty well.
<br>
There was a bit of work involved because it requires an X11 server to run on the compute nodes but once this was done it worked fairly well.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">Best<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US">Ümit <o:p>
</o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">On 02.06.22, 01:10, "Andy Botting" <andy@andybotting.com> wrote:<o:p></o:p></p>
<div>
<p class="MsoNormal">Hi Rados³aw,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">> I am wondering if and how OpenStackers are approaching the subject of<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> VDI (Virtual Desktop Infrastructure), also nowadays commonly called<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> DaaS (Desktop as a Service) offering.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> To be more specific, I am looking forward to a solution covering both<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> Linux and Windows desktops, pre-OS screen access optional,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> well-integrated (i.e., having automation) with OpenStack Nova,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> preferably also with Cinder and Glance, optionally with Keystone<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> (apart from self-auth of course!) and Heat, 3D acceleration optional<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> (most of the desktops here don't need it), nice to have read-only<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">> sharing of screen.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">We just launched a service like this on the Nectar Research Cloud.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Like you, I looked around but couldn't find any Open Source projects<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">that would be suitable.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">In the end, we based ours on a project from the University of<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Melbourne that did initially support Windows, but we removed some of<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">that support to simplify our codebase as we didn't need it.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">We called it Bumblebee, and the code is here:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><a href="https://github.com/NeCTAR-RC/bumblebee">https://github.com/NeCTAR-RC/bumblebee</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">It's a Django web app with a Redis-based task scheduler that launches<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Nova instances, booted from a Cinder volume, cloned from a base OS<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">image.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">The Django app directly modifies Guacamole's database to create the<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">connections once the OpenStack resources have been provisioned and<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">provides the user with a link that takes them to their desktop.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">We used Keycloak with OIDC for authentication on the web app and<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Guacamole and it's fairly seamless transitioning between the two.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">We did initially look at using Heat, but we wanted to support a<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">workflow of being able to destroy the VM and archive the OS image to<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Swift (and restore again later if needed) so it was easier to just<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">manage the resources directly.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">There's no 3D acceleration in our solution yet, but we're planning on<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">looking at things like virtual GPUs later on.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Sadly, I'm not going to make it to Berlin either, but I was thinking<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">it might make for a good talk at the next summit.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I'm in the process of properly documenting it now, so I don't have<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">much to share at this point, but I'm happy to go into more detail<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">about anything.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">cheers,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Andy<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
</body>
</html>