Massive rejigger into single daemon

Completely restructure the daemon code to move the 4 discrete daemons
into a single daemon that can be run on every hypervisor. Introduce the
idea of a static list of "coordinator" nodes which are configured at
install time to run Zookeeper and FRR in router mode, and which are
allowed to take on client network management duties (gateway, DHCP, DNS,
etc.) while also allowing them to run VMs (i.e. no dedicated "router"
nodes required).
This commit is contained in:
2018-10-14 02:01:35 -04:00
parent 25df845769
commit f198f62563
57 changed files with 1726 additions and 2307 deletions

7
debian/changelog vendored
View File

@ -1,3 +1,10 @@
pvc (0.4-0) unstable; urgency=medium
* Unification of all daemons into node daemon
* Numerous client tweaks
-- Joshua Boniface <joshua@boniface.me> Sat, 13 Oct 2018 10:40:14 -0400
pvc (0.3-1) unstable; urgency=medium
* Code and package reorganization pending additional daemons

36
debian/control vendored
View File

@ -6,40 +6,14 @@ Standards-Version: 3.9.8
Homepage: https://www.boniface.me
X-Python3-Version: >= 3.2
Package: pvc-daemon-common
Package: pvc-daemon
Architecture: all
Depends: python3-kazoo, python3-psutil, python3-apscheduler
Suggests: pvc-virtualization-daemon, pvc-cli-client
Description: Parallel Virtual Cluster common daemon libraries (Python 3)
The Parallel Virtual Cluster provides a management solution for QEMU/KVM virtual clusters.
.
This package installs the common daemon libraries
Package: pvc-virtualization-daemon
Architecture: all
Depends: pvc-daemon-common, python3-libvirt, ipmitool, libvirt-daemon-system
Suggests: pvc-cli-client
Depends: python3-kazoo, python3-psutil, python3-apscheduler, python3-libvirt, ipmitool, libvirt-daemon-system, arping, bridge-utils, dnsmasq
Suggests: pvc-client-cli
Description: Parallel Virtual Cluster virtualization daemon (Python 3)
The Parallel Virtual Cluster provides a management solution for QEMU/KVM virtual clusters.
.
This package installs the PVC virtualization daemon
Package: pvc-network-daemon
Architecture: all
Depends: pvc-daemon-common, python3-libvirt, ipmitool, libvirt-daemon-system
Suggests: pvc-cli-client, pvc-virtualization-daemon
Description: Parallel Virtual Cluster network daemon (Python 3)
The Parallel Virtual Cluster provides a management solution for QEMU/KVM virtual clusters.
.
This package installs the PVC network daemon
Package: pvc-router-daemon
Architecture: all
Depends: pvc-daemon-common, arping
Description: Parallel Virtual Cluster router daemon (Python 3)
The Parallel Virtual Cluster provides a management solution for QEMU/KVM virtual clusters.
.
This package installs the PVC router daemon
This package installs the PVC node daemon
Package: pvc-client-common
Architecture: all
@ -49,7 +23,7 @@ Description: Parallel Virtual Cluster common client libraries (Python 3)
.
This package installs the common client libraries
Package: pvc-cli-client
Package: pvc-client-cli
Architecture: all
Depends: pvc-client-common
Description: Parallel Virtual Cluster client (Python 3)

View File

@ -1 +0,0 @@
cli-client/pvc.py usr/share/pvc

1
debian/pvc-client-cli.install vendored Normal file
View File

@ -0,0 +1 @@
client-cli/pvc.py usr/share/pvc

View File

@ -1 +1 @@
client-common/client_lib usr/share/pvc
client-common/* usr/share/pvc/client_lib

4
debian/pvc-daemon.install vendored Normal file
View File

@ -0,0 +1,4 @@
node-daemon/pvcd.py usr/share/pvc
node-daemon/pvcd.service lib/systemd/system
node-daemon/pvcd.conf.sample etc/pvc
node-daemon/pvcd usr/share/pvc

10
debian/pvc-daemon.postinst vendored Normal file
View File

@ -0,0 +1,10 @@
#!/bin/sh
# Enable the service
systemctl enable /lib/systemd/system/pvcd.service
if systemctl is-active --quiet pvcd.service; then
echo "The PVC node daemon has not been restarted; this is up to the administrator."
else
echo "The PVC node daemon has not been started; create a config file at /etc/pvc/pvcd.conf then start it."
fi

View File

@ -1,5 +1,4 @@
#!/bin/sh
# Disable the service
systemctl disable pvcrd.service
systemctl disable pvcd.service

View File

@ -1,4 +0,0 @@
network-daemon/pvcnd.py usr/share/pvc
network-daemon/pvcnd.service lib/systemd/system
network-daemon/pvcnd.conf.sample etc/pvc
network-daemon/pvcnd usr/share/pvc

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Enable the servive
systemctl enable /lib/systemd/system/pvcnd.service
echo "The PVC network daemon has not been started. Create a config file at /etc/pvc/pvcnd.conf then start it."

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Disable the service
systemctl disable pvcnd.service

View File

@ -1,4 +0,0 @@
router-daemon/pvcrd.py usr/share/pvc
router-daemon/pvcrd.service lib/systemd/system
router-daemon/pvcrd.conf.sample etc/pvc
router-daemon/pvcrd usr/share/pvc

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Enable the servive
systemctl enable /lib/systemd/system/pvcrd.service
echo "The PVC router daemon has not been started. Create a config file at /etc/pvc/pvcrd.conf then start it."

View File

@ -1,4 +0,0 @@
virtualization-daemon/pvcvd.py usr/share/pvc
virtualization-daemon/pvcvd.service lib/systemd/system
virtualization-daemon/pvcvd.conf.sample etc/pvc
virtualization-daemon/pvcvd usr/share/pvc

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Enable the servive
systemctl enable /lib/systemd/system/pvcvd.service
echo "The PVC virtualization daemon has not been started. Create a config file at /etc/pvc/pvcvd.conf then start it."

View File

@ -1,5 +0,0 @@
#!/bin/sh
# Disable the service
systemctl disable pvcvd.service