modules icon indicating copy to clipboard operation
modules copied to clipboard

kasm VNC

Open matifali opened this issue 1 year ago • 8 comments

closes #1

For testing,

module "kasmvnc" {
  source   = "git::https://github.com/coder/modules.git//kasmvnc?ref=kasmVNC"
  agent_id = coder_agent.dev.id
}

image

matifali avatar May 17 '24 13:05 matifali

@johnstcn, should we publish an image codercom/enterprise-desktop with lxde pre-installed so that users can base their images on codercom/enterprise-desktop. What do you think?

matifali avatar May 17 '24 16:05 matifali

kasmVNC has multi virtual monitor support

https://github.com/coder/modules/assets/10648092/6a21cfa2-57a7-4b09-9563-fc511faa084f

matifali avatar May 17 '24 20:05 matifali

@code-asher, could you check why these unrelated tests are failing?

matifali avatar May 21 '24 17:05 matifali

Could be this maybe, it came out in the release 5 days ago and seems related: https://github.com/coder/terraform-provider-coder/commit/8c5e8ff9579d1d766d5317422bf3c1988b710434

One test, for example, expects there to be no committer email, but there is one which is [email protected].

So I suppose how we fix depends on whether we want these to be empty or if we should be expecting defaults.

code-asher avatar May 21 '24 18:05 code-asher

@matifali come comments for how this could be enterprise friendly.

  • Ubuntu as the base image is not hardened enough and lack enterprise support/sla, and something like Red Hat Enterprise Linux 9 would be more suitable. So dnf, rpm and yum over the use of apt and dpkg.

  • It might be simpler / faster to leave the installation part to the base image (or VM), and let the script just verify the presence.

  • The signaling when ready pattern ie: /tmp/.coder-${WAIT_FOR_SCRIPT}.done, could be done more generically across modules, ie: git-clone waiting on git-config, jetbrains waiting on git-clone etc..

michaelbrewer avatar Jun 05 '24 13:06 michaelbrewer

@michaelbrewer Thanks for the review

It might be simpler / faster to leave the installation part to the base image (or VM), and let the script just verify the presence.

Thats the plan.

The signaling when ready pattern ie: /tmp/.coder-${WAIT_FOR_SCRIPT}.done, could be done more generically across modules, ie: git-clone waiting on git-config, jetbrains waiting on git-clone etc..

It was only done for testing purposes with our dogfood template.

I plan to come to this once I find some time. The idea is to leave the DE installation to image and only check for compatible ones. Also, I will make the script general enough to be installable on all enterprise-friendly distros.

matifali avatar Jun 05 '24 14:06 matifali

@matifali

Here's what happens when I install the KasmVNC module in my uwu/basic-env template. I think it's due to the fact that Kasm thinks vncserver being installed means KasmVNC is.

Detected Distribution: ubuntu
Detected Version: 24.04
Detected Architecture: x86_64
vncserver is already installed.
vncserver already installed. Skipping installation.
bash: line 1: /etc/kasmvnc/kasmvnc.yaml: No such file or directory
🚀 Starting KasmVNC server...
Usage: vncpasswd [FILE]
       vncpasswd -t

I will retry with a template that doesn't have VNC but it looks good to me other than that.

phorcys420 avatar Oct 02 '24 16:10 phorcys420

Yes. The command that gets installed by kasmVNC is also vncserver.

matifali avatar Oct 02 '24 16:10 matifali

I still need to update the READEME to mention our desktop image. Then I will merge.

matifali avatar Oct 16 '24 18:10 matifali