coder / modules

A collection of Terraform Modules to work with Coder.

Home Page:https://registry.coder.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Web RDP module with devolutions-gateway

bpmct opened this issue · comments

I have validated a web RDP client called devolutions-gateway which works well inside coder workspaces as a coder_app. See RFC

Screenshot 2024-04-23 at 10 57 09 AM

You can see the WIP here: https://github.com/coder/modules/tree/web-rdp/windows-rdp. You can also try it in dogfood: https://dev.coder.com/templates/windows-with-good-rdp

However, the web app for the client itself requires a "log in," which in Coder's case is not necessary because the template can run the app in loopback and the Coder workspace proxy serves as the authentication mechanism (similar to how we pass auth=none to code-server). As far as I could tell, there is no way to hardcode credentials or pass them via a URL parameter. There is a way to pass a custom static site so that we do not need to fork gateway itself.

WebRDP module
Angular component of Devolutions Gateway
WebRDP Dogfood Template

Must have

  • When a user clicks the app, they do not have to log in via the devolutions gateway form. Instead, they are taken directly to the desktop (or coder admin log in)
    • We could do this several ways, as far as I can tell:
      • building our own web app and passing it to devolutions gateway (link)
      • forking devolutions-gateway and modifying webapp/ dir
      • building our own project that consumes the same devolutions gateway dependencies (ironRDP webcomponents)
    • Curious for other people's thoughts, but my preference is we do it in a way where we can upstream the changes to devolutions gateway :) I'm sure they would want to support auto log in via a config value or something

Should have

  • We hide the sidebar once somebody logs in so the RDP session takes up the whole screen
  • We hide the top action bar once somebody logs in so the RDP session takes up the whole screen

Nice to have

  • Resizing sometimes doesn't work until you refresh, ideally we can investigate/fix this too :)

Very cool. Would like to see how to run this within a kubernetes cluster too.

Sadly, Windows containers do not support a desktop environment as far as I can tell. I think VMs are the only route, but something like Kubevirt could be used to manage VMs via the Kubernetes API.

We also need to test this on AWS and Azure before merging and edit the README

@bpmct Wanted to double-check your thoughts on hiding the top bar for RDP. It feels handy to me, but if you think it should go, it's going to take me three lines of code to hide it. Not a problem at all to get the file changed

Kirby to reach out to Ben regarding release timing and Azure support - this is the last remaining piece of work aside from the open PR.

We'll want to follow-up with an internal note in this ticket when this is released: https://coder.zendesk.com/agent/tickets/2927