New features
A big step had been done ! Now Hype² allow managing some basic network. Indeed, you can now create a network with a dedicated DHCP and connect/disconnect your VM in it.
DNSMask
I was not planned to implement networking on my solution. But I spoke with some people to see what is important on Proxmox, Vmware or Xcp-ng for users, and finally a lot of people care about network !
My goals were first to create interface and manage DHCP. Not easy, specially the DHCP part. I didn’t want to touch or disturb the server where Hype² is/will be installed. But looking on my lab, I discorded that LXC use DNSmask in order to create DHCP for LXC.
DNSmask is able to create easely a DHCP server just apply it on an interface, I manage the pid in a file in order to control the start and stop. All I had left to do was to create networks and interfaces.
Openvswicth
My first idea was to create and manage everything on python. But it’s hard and if you want to go under the OSI 4 level, it’s complicated.
So I did, like everyone, I start using Openvswitch. It’s a magic tool to create virtual network including VLAN and VLANX. But for the moment, let’s do the beginning…create a network and manage it.
Libvirt interface
Something hard in libvirt, it that for some stuff such as the interface, all is manage on XML format. And that not the easiest way to manage. You have to find the correct filters and way to push it back when you did your modification. But once you understood the way it works… It not so hard…
Reverse Proxy
I could, by rewriting all the code, integrate Pyxterm inside the application. Pyxterm is using Socketio library. After testing, I notice several constraints (Logs output, SSL implementation…)
The best solution was to do this on Reverse Proxy level. It allows joining noVNC, Pyxterm and the application itself.
So I implemented Nginx with a configuration for managing connections.
Public release
Now that all basic features in my point of view are working (manage VM and Containers, Network, Console…), It was time to give public access to my project. For this I pushed my code on a dedicated GitHub and create a Website.
You can now see this project evolution on https://www.hype2.fr and https://github.com/pyhype2/Hype2
You will find the last version, a wiki for documentation etc…
0 Comments