Giter Club home page Giter Club logo

selkies-vdi's Introduction

VDI Addon for Selkies

Discord

Description

Selkies addon for deploying VDI and app streaming workloads.

Dependencies

  • App Launcher: v1.0.0+

Features

  • Deploy apps as StatefulSet for persistence, or as Deployment, for always-ready ephemeral pods.
  • Hybrid desktop environment with Xpra HTML5 client.
  • Full desktop streaming at up to 15-20fps with WebRTC and software encoder.
  • Full desktop streaming at 60+fps with WebRTC and NVIDIA GPU encoder.
  • WebRTC TURN infrastructure provided by selkies-gstreamer repo.
  • Individual app streaming with Xpra or WebRTC, software or hardware encoder.
  • GPU sharing, multiple users per node sharing the same GPU.
  • Persistent home directories with VolumeClaimTemplates and dynamic resizing.
  • Shared storage with NFS, SMB and CephFS.
  • Docker-in-Docker support.
  • Audio support with WebRTC.
  • Stream recording to GCS.
  • Idle detection and automatic shutdown.
  • Traffic filtering with NetworkPolicy or Squid sidecar.
  • File manager sidecar with tinyfilemanager.
  • Windows app supoprt with Proton.
  • Secure TCP tunnel creation with the Selkies Connector.
  • Per-application web preview ports 3000, 8000, and 8080.
  • Custom host aliases
  • Bind mounts from root filesystem to persistent home directory.

Quick start

  1. Set the project, replace YOUR_PROJECT with your project ID:
export PROJECT_ID=YOUR_PROJECT
gcloud config set project ${PROJECT_ID?}
  1. Set the target region:
REGION=us-west1

NOTE: change this to the region of your cluster.

Pre-requisites

This tutorial requires that you have already deployed the Kubernetes App Launcher Operator in your GKE cluster.

If you have not already deployed the operator, follow this Cloud Shell tutorial to do so:

Open in Cloud Shell

Platform verification

  1. Verify that the gpu-cos node pool has been created:
gcloud container node-pools list --cluster broker-${REGION?} --region ${REGION?} --filter name~gpu-cos

If no node-pool is listed, return to the App Launcher tutorial and re-run the infrastructure section with the gpu node pool enabled.

Deploy infrastructure and manifests

  1. Verify that submodules are up to date:
git submodule update --init --recursive
  1. Build build-images and install infrastructure:
gcloud builds submit --substitutions=_REGION=${REGION}

Deploy sample app

  1. Deploy the XFCE Desktop example with Cloud Build:
(cd examples/xfce-desktop && \
    gcloud builds submit --substitutions=_REGION=${REGION})
  1. Open the App Launcher and launch the XFCE Desktop app.

NOTE: the first launch may take several minutes to run as the images are pulled for the first time.

NOTE: If the node pool has zero nodes, then it will take an additional 10 minutes to add a new node and pull the images.

selkies-vdi's People

Contributors

danisla avatar deepak7093 avatar jancvanb avatar ptdelaney avatar reisbel avatar ssolerg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

selkies-vdi's Issues

Anything else for v1.5.0?

I think it's time for a 1.5 release, since it's been 1.5 (lol) years since v1.4 came out. Are there any other short-term issues that we want to do before this release?

xfce-desktop does not launch in Firefox

image

Granted permissions for audio and video on the site after launching from the App Launcher. This is on CentOS Linux release 8.3.2011 and Firefox version 78.6.0esr.

Create GitHub workflow for building images

After the selkies-gstreamer integration is done (#14), build a workflow to build all of the images and push them to GHCR with versions.

Follow the same build philosophy as the selkies-gstreamer repo:
https://github.com/selkies-project/selkies-gstreamer/tree/master/.github/workflows

Preserve the cloudbuild image building to allow folks to build and self-host images.

Strategy:

  • master and dev branches are built when pushed to, images are tagged with the branch name respectively.
  • Pushing a tag builds the images, creates a release and tags the images with latest

ERROR: build step 34 "gcr.io/cloud-builders/docker" failed

While trying to run selkies-vdi I got stuck in this step: gcloud builds submit --substitutions=_REGION=${REGION}

So far I have deployed Selkies to google cloud.

  • 'App Launcher' is up and running.
  • I have increased quotas(CPUS and Persistent Disk SSD)
  • My gpu-cos node pool has been created.(Double cheked with gcloud container node-pools list --cluster broker-${REGION?} --region ${REGION?} --filter name~gpu-cos )
  • Region=us-west1, zone=us-west-1-a

These are the build logs:

Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=link g++ -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11  -g -o libmgr.la  Action.lo ActionParams.lo ActionPasswordList.lo ActionWriter.lo BasicActions.lo Command.lo CountersAction.lo Filler.lo Forwarder.lo FunAction.lo InfoAction.lo Inquirer.lo IntervalAction.lo IoAction.lo Registration.lo Request.lo Response.lo ServiceTimesAction.lo StoreIoAction.lo StoreToCommWriter.lo QueryParams.lo IntParam.lo StringParam.lo
Step #0 - "build-images": Step #32 - "app-streaming-focal-cuda": Removing intermediate container 6e82746abf28
Step #0 - "build-images": Step #32 - "app-streaming-focal-cuda":  ac6f0f266d16
Step #0 - "build-images": Step #32 - "app-streaming-focal-cuda": Step 14/16 : COPY entrypoint.sh /entrypoint.sh
Step #0 - "build-images": Step #37 - "squid-proxy": libtool: link: /usr/bin/ar cru .libs/libmgr.a .libs/Action.o .libs/ActionParams.o .libs/ActionPasswordList.o .libs/ActionWriter.o .libs/BasicActions.o .libs/Command.o .libs/CountersAction.o .libs/Filler.o .libs/Forwarder.o .libs/FunAction.o .libs/InfoAction.o .libs/Inquirer.o .libs/IntervalAction.o .libs/IoAction.o .libs/Registration.o .libs/Request.o .libs/Response.o .libs/ServiceTimesAction.o .libs/StoreIoAction.o .libs/StoreToCommWriter.o .libs/QueryParams.o .libs/IntParam.o .libs/StringParam.o
Step #0 - "build-images": Step #37 - "squid-proxy": libtool: link: ranlib .libs/libmgr.a
Step #0 - "build-images": Step #37 - "squid-proxy": libtool: link: ( cd ".libs" && rm -f "libmgr.la" && ln -s "../libmgr.la" "libmgr.la" )
Step #0 - "build-images": Step #37 - "squid-proxy": make[3]: Leaving directory '/apps/squid-peer-ssl-bump/src/mgr'
Step #0 - "build-images": Step #37 - "squid-proxy": Making all in ssl
Step #0 - "build-images": Step #37 - "squid-proxy": make[3]: Entering directory '/apps/squid-peer-ssl-bump/src/ssl'
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo bio.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT bio.lo -MD -MP -MF $depbase.Tpo -c -o bio.lo bio.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo cert_validate_message.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT cert_validate_message.lo -MD -MP -MF $depbase.Tpo -c -o cert_validate_message.lo cert_validate_message.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Finished Step #34 - "xpra"
Step #0 - "build-images": ERROR
Step #0 - "build-images": ERROR: build step 34 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo context_storage.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT context_storage.lo -MD -MP -MF $depbase.Tpo -c -o context_storage.lo context_storage.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo Config.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT Config.lo -MD -MP -MF $depbase.Tpo -c -o Config.lo Config.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo ErrorDetail.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT ErrorDetail.lo -MD -MP -MF $depbase.Tpo -c -o ErrorDetail.lo ErrorDetail.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo ErrorDetailManager.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT ErrorDetailManager.lo -MD -MP -MF $depbase.Tpo -c -o ErrorDetailManager.lo ErrorDetailManager.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo PeekingPeerConnector.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT PeekingPeerConnector.lo -MD -MP -MF $depbase.Tpo -c -o PeekingPeerConnector.lo PeekingPeerConnector.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo ServerBump.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT ServerBump.lo -MD -MP -MF $depbase.Tpo -c -o ServerBump.lo ServerBump.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo support.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT support.lo -MD -MP -MF $depbase.Tpo -c -o support.lo support.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo helper.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT helper.lo -MD -MP -MF $depbase.Tpo -c -o helper.lo helper.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo gadgets.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT gadgets.lo -MD -MP -MF $depbase.Tpo -c -o gadgets.lo gadgets.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #37 - "squid-proxy": depbase=`echo crtd_message.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
Step #0 - "build-images": Step #37 - "squid-proxy": /bin/bash ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -DDEFAULT_CONFIG_FILE=\"/apps/squid/etc/squid.conf\" -DDEFAULT_SQUID_DATA_DIR=\"/apps/squid/share\" -DDEFAULT_SQUID_CONFIG_DIR=\"/apps/squid/etc\"   -I../.. -I../../include -I../../lib -I../../src -I../../include     -Wall -Wpointer-arith -Wwrite-strings -Wcomments -Wshadow -Woverloaded-virtual -Werror -Wno-deprecated-register -pipe -D_REENTRANT -g -O2 -march=native -std=c++11 -MT crtd_message.lo -MD -MP -MF $depbase.Tpo -c -o crtd_message.lo crtd_message.cc &&\
Step #0 - "build-images": Step #37 - "squid-proxy": mv -f $depbase.Tpo $depbase.Plo
Step #0 - "build-images": Step #32 - "app-streaming-focal-cuda":  768572396cf1
Step #0 - "build-images": Step #32 - "app-streaming-focal-cuda": Step 15/16 : RUN chmod +x /entrypoint.sh
Reading state information... 99%16 - "desktop":
Step #0 - "build-images":
Step #0 - "build-images": BUILD FAILURE: Build step failure: build step 34 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 1
Step #0 - "build-images": --------------------------------------------------------------------------------
Step #0 - "build-images": ERROR: (gcloud.builds.submit) build 9c46a1d6-ec4a-4c33-915b-3b42b6af26e1 completed with status "FAILURE"
Finished Step #0 - "build-images"
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/gcloud" failed: step exited with non-zero status: 1
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

BUILD FAILURE: Build step failure: build step 0 "gcr.io/cloud-builders/gcloud" failed: step exited with non-zero status: 1
ERROR: (gcloud.builds.submit) build 0d034876-40fe-471a-a9d4-05c4a52fda23 completed with status "FAILURE"

Looks like it fails on step 34 xpra image building.
I would really appreciate it if someone could help me figure out what this problem is caused by.

X server no longer loads on latest version of COS 85.13310.1041.24

The latest version of COS (85.13310.1041.24) has updated the fixed driver installer image cos-driver-installer:fixed to use a binary instead of a bash script for driver installation. Also it looks like the location it installs the drivers has changed, which leads to xserver not starting anymore:

[  1372.688] (**) ModulePath set to "/usr/local/nvidia/lib64,/usr/lib/xorg/modules"
...
[  1372.708] (II) LoadModule: "nvidia"
[  1372.709] (WW) Warning, couldn't open module nvidia

we hacked around this using the original cos-config configmap and forcing the driver installer to run the custom entrypoint script, and merging some of the volumes and paths from the upstream installer daemonset: https://github.com/GoogleCloudPlatform/container-engine-accelerators/blob/master/nvidia-driver-installer/cos/daemonset-preloaded.yaml

at some point, should selkies use the same install method as upstream?

Server resolution does not support hidpi client settings

If the client device is using resolution scaling or hidpi modes, the server resolution and DPI will not match.

On Xpra, desktop icons and text may appear blurry because the client device is applying local scaling on the DOM elements to make them appear larger.

On WebRTC with remote resizing, the desktop resolution is resized larger than the client viewport, so elements like the task tray are not visible.

pod broker fails to template xfce-desktop

kubectl -n pod-broker-system logs -f pod-broker-0 -c pod-broker

error templating file: /var/run/buildsrc/apps/xfce-desktop/jsonpatch-service-selectors.yaml.tmpl: template: jsonpatch-service-selectors.yaml.tmpl:15:18: executing "jsonpatch-service-selectors.yaml.tmpl" at <.AppSpec.Type>: can't evaluate field Type in type pod_broker.AppConfigSpec

Port project to vendor-agnostic Kubernetes

This is the time to do this. Selkies has diverged from a GCP-centric affiliate project to a much wider audience.
Other Kubernetes providers including Vast.ai, RunPod, and CoreWeave are watching and incorporating our projects.

X server not starting up. Cannot open /dev/tty0

I am trying to run X11 server in the container with this command:
/usr/bin/Xorg -verbose 3 -novtswitch -keeptty -verbose -allowMouseOpenFail

But i am getting this error:

(II) Loading /usr/local/nvidia/lib64/xorg/modules/drivers/nvidia_drv.so
(II) Module nvidia: vendor="NVIDIA Corporation"
        compiled for 1.6.99.901, module version = 1.0.0
        Module class: X.Org Video Driver
(II) NVIDIA dlloader X Driver  450.80.02  Wed Sep 23 00:53:01 UTC 2020
(II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
(EE) 
Fatal server error:
(EE) parse_vt_settings: Cannot open /dev/tty0 (No such file or directory)

I see that there is no tty0 device in the node or the container.

# ls /dev/tty* /dev/tty /dev/ttyS0 /dev/ttyS1 /dev/ttyS2 /dev/ttyS3

The daemonset gpu-driver-cos.yaml was applied to the node before running this container and it completed successfully.

DaemonSet has no nodes selected

Hi, looking to try out your project, but when I get to deploying the xfce desktop I see two daemonsets stuck:

image
image

I followed your readme to for setting up the prerequisites, and jupyterhub example app is deployed. I then cloned in this project in the same workspace, verified I have a gpu node pool, and ran the infrastructure build.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.