Giter Site home page Giter Site logo

isard-vdi / isard Goto Github PK

View Code? Open in Web Editor NEW
179.0 25.0 58.0 137.8 MB

Isard VDI. Open Source KVM Virtual Desktops based on KVM Linux and dockers. Please use https://gitlab.com/isard/isardvdi

Home Page: http://www.isardvdi.com

License: GNU Affero General Public License v3.0

Python 46.08% Shell 1.62% JavaScript 19.90% HTML 12.69% CSS 2.03% Dockerfile 0.41% Go 8.92% Vue 8.32% Batchfile 0.02% Makefile 0.01%
kvm virtualization orquestrate qemu rethinkdb gpu vdi desktop hypervisor linux

isard's Introduction

IsardVDI

IsardVDI Logo

release docker-compose docs license

IsardVDI is a Free Software desktop virtualization platform. Some of its features are:

  • GPU support: it supports the NVIDIA Grid platform
  • Easy to install: using Docker and Docker Compose, you can deploy IsardVDI in minutes
  • Scalable: you can manage multiple hypervisors and add / remove them depending on your needs
  • Fast: start a desktop and connect to it in a matter of seconds
  • Versatile: you can run all the OS supported by QEMU/KVM, and there are multiple viewers supported:
    • SPICE
    • noVNC (web)
    • RDP
    • Guacamole RDP (web)

Table of contents

Quick Start

https://isard.gitlab.io/isardvdi-docs/install/#quick-start

Usage

Desktops

To download predefined and tested desktops, you can go to the Downloads section, in the Administration frontend.

If you want to create your own desktop:

  1. Go to Media section (in the Administration frontend), and download an ISO
  2. After the download is finished, it will show a desktop icon where you can create the desktop.

Templates

Create a template from a desktop (in the Administration frontend):

  1. Open desktop details and click the Template it button.
  2. Fill in the form and click on create.

It will create a template from that desktop as it was now. You can create as many desktops identical to that template.

Main admin screen

Documentation

Follow the extensive documentation to get the most of your installation:

Version upgrade notes:

Contributing

The development is done at GitLab. You can open an issue and create pull requests there. Also, there's the CONTRIBUTING.md file, that you should read too. Happy hacking! :D

Support and Contact

If you have a question related with the software, open an issue! Otherwise, email us at [email protected]. We also offer professional paid support. If you are interested, email us! :)

Other links

License

IsardVDI is licensed under the AGPL v3.0. You can read the full license here

isard's People

Contributors

alarraz avatar aoakith avatar basarevski avatar dependabot[bot] avatar dvoroneca avatar gorka3g avatar isardvdi avatar jakecoffman avatar jakiox avatar jareksob avatar juanjo-ea1cj avatar jvinolas avatar leprekonr60 avatar lilimontero avatar lisapple avatar mgamboav avatar montlili03 avatar murkiaga avatar nefixestrada avatar oroel avatar palandovalex avatar pauabril avatar realpixelcode avatar redbarmaley avatar sim6 avatar txemazornotza avatar unxho avatar vinolas avatar vittorio-togliatti avatar wilddip 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

isard's Issues

Restart fails

When using Docker Compose and after the first docker-compose up, if you stop and start again, IsardVDI is unable to connect with the hypervisor. The same happens if you down and up

Server reboot fails to ssh into hypervisor

When we do a physical reboot to the server holding IsardVDI dockers it happens to miss ssh keys between isard-app and isard-hypervisor. It could be solved by bringing down with docker-compose and up again, but that problem should be fixed.

Ephimeral desktops

It would be nice to have an option to set users desktops as ephimeral. The desktop could be set with a timed tag and an schedule could be checking for started desktops that have overpassed time tag (every minute for example).

My proposal is to add new dictionary key in domains:

{ephimeral:{'actions': 'Stopping' | 'Deleting'},'minutes': 30, 'time': 1234213.234, 'action_on': 'Start'|'Create' }}

Also that ephimeral could be set into templates, allowing for automated set of ephimeral parameteres on derivated desktops.

Those ephimeral parameters should be set as per user, group, category or role. So all the desktops of that set will have the same ephimeral parameters on creation.

Docker Compose cleanup

Currently, the Docker Compose file is a mess. It's unclear what services are required and what ports and volumes use. Also, there's the build statement in every service. There should be a bash file for building the images and remove the build statement from the Docker Compose file

Broom fails to delete domain

Changing from a failed intermediate template creation status to Deleting makes broom exception:

Traceback (most recent call last):
  File "/usr/lib/python3.6/threading.py", line 916, in _bootstrap_inner
    self.run()
  File "/isard/engine/controllers/broom.py", line 129, in run
    self.polling()
  File "/isard/engine/controllers/broom.py", line 88, in polling
    if len(hyp_started) == 0:
TypeError: object of type 'bool' has no len()

Updates menu must provide an update button

If contents are updated/added in IsardVDI online updates server users won't see them till they stop and start Isard docker containers.

I will be nice to have a button that calls again the updates object to refresh what it is online.

Add DHCP Proxy support

I'd be nice to add DHCP Proxy support. It would simplify a lot the IsardVDI + iPXE deployment in existent infrastructures

Notify the admin if there's a new IsardVDI available version

It would be nice if IsardVDI checked if there were newer versions available. An example would be "a cron job" that ran once per day checking the latest GitHub release. Then, a banner would appear saying that there's an update available.

Some options would appear:

  • Never remind me again -> it would stop the cronjob and close the banner
  • Ignore this release -> would just close the banner
  • Remind me later -> would close the banner and open it 4 hours after
  • Update -> would update automatically IsardVDI

Isard version in the web interface

It would be nice if the users could see which version is IsardVDI running through the web interface. It would help for bug reporting.

The idea I have in mind is having a small footer or something like that. If IsardVDI is running in a tag, it would show the tag name (e.g. IsardVDI - 1.2.0) and if is running in a branch with no tags (for example while developing) it would show the commit number (e.g. IsardVDI - 0bfcd32496eaed67b08a2a5a02f24554e4c4d272)

web interface permit two clicks in button stop domain

domain remain stopping, and is stopped. When click in domain stop button, all the screen could be blocked or disabled when the message preventing to stop appears. Broom thread must check if domain is stopped and change status from stopping to stopped.

user_template and public_template

There are now those two types of templates. All will be templates in the end now as we have fully achieved permissions.

So there should be and upgrade in next versions that will replace all user and public templates with templates and take care of everything with associated permissions.

Force delete of domains

If something fails at filesystem level engine should finish operation by removing the domain from database. It makes no sense that the domain stays in database if the user wants to delete it.

We need some integrity check between database and filesystem to be put in administration.

Grafana does not show domains names

The actual dashboard should show started domains names but none is shown. It should be checked in engine and also in grafana to see where it is failing. This was working before.

libvirt does not expose virtualization

Current libvirt does not expose virtualization capabilities in some cases we found:

  • Host CPU is an AMD
  • IsardVDI is running inside VMWare guest with exposed host CPU (Intel host CPU at least fails).

This bug in libvirt affects also IsardVDI as we used it to check for virtualization. We should code that part again by checking against lscpu/lsmod for virtualization inside isard-hypervisor, as that correctly reports virtualization.

Media update/delete errors

I've found that if I edit a domain and I add two ISOS at once (or when adding a second ISO) the hardware update fails with error: "Updating aborted, failed when populate hardware dictionary" and seems that only one of the isos is updated in hardware dict.

Also, when deleting a media, that media stays in Deleting status but engine does not delete it.

Add badges to the README

It would be nice to have some badges in the README of the repository. Makes it more appealing

Engine does not start grafana on config enable

When you enable grafana stats at config menu the engine does not read the change and does not activate stats. A docker-compose down and docker-compose up must be run to get stats into grafana.

UI not showing available space in storage

When the disks storage gets almos full new desktops and templates will fail to create but the only message available it is in engine logs. UI must show available space.

2019/01/11 09:14:22 642 - ERROR - disk_op_isard-hypervisor: Not enough free space to create template from _admin_downloaded_debian_9_5_0

Desktop creation at user creation

It will be nice if we could add a new desktop from a template or base at the same time we add users to the system. So, those users won't need to create it, they will just see their desktop at first log in into the system.

Maybe documentation lacks some kind of "how to configure a 'recommended' hardware/software infrastructure" to run Isard on it, then

I mean, from your presentation in RedIRIS:

*How to get to use 46 cpus / 98 threads?"
*How to get to use the 576GB of RAM?"
*How to get to use 16TB on 2 NAS cluster?"

Specifically, I'm really puzzled about how to achieve these incredible numbers (46 cpus, 576GB of RAM, uau!!) with "standard" PCs.

What kind of hardware server pool do you recommend and whick kind of cluster software must be running on it (DRBD+Pacemaker I've seen, I think...)...?

Thanks!

Add the Mastodon account to the README

The README at the develop branch has the official IsardVDI accout. I'd be nice to have the official Mastodon too. Also, the account should be a link to the actual account

Lack of direct PXE desktop creation

Although a new PXE boot desktop can be created by just using any existing desktop and changing boot to PXE, there is no clear mechanism to create a new PXE desktop.

As it says now in documentation: You can upload any ISO file (it can be a fake file ending with .iso that you created with touch for example) and then follow the process of creating new desktop from uploaded media but selecting PXE in Boot select box instead of CD/DVD.

That could lead to confusion.

Failed Download can't be deleted

This happens when trying to delete a failed download. The status goes to Unknown and this message in logs:
2019/01/30 23:09:00 126 - ERROR - broom: DOMAIN _admin_downloaded_linkat_18_04_lts WITH STATUS Deleting without HYPERVISOR

Engine doesn't start if the local hypervisor has been disabled

If the local hypervisor has been disabled (and Isard is using remote hypervisors), the engine isn't going to start, since it waits for the local hypervisor to start:

command=sh -c "virsh -c qemu+ssh://isard-hypervisor/system quit && python3 run_engine.py"

This sleep was introduced to avoid the engine to connect to the hypervisors and start doing actions before they were available. Since this was fixed with #36. It should be safe to simply remove the sleep and start the engine normally:

command=python3 run_engine.py

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.