This PR adds the basic functionality to add a rolling update support for nodes in a cluster to ProxLB.
If activated, nodes will:
Check if update for itself is available
Integrate the updates
Check if a reboot is required
Add self to ignore_nodes list
Rebalance the cluster (move workloads away from self)
Reboot
This also brings up the new proxlb-additions package, which adds the missing options to the Proxmox API. This packages will be required. If this option is activated but the package is missing, ProxLB will throw an error guiding you to install the required package.
Test
root@virt01:~# /bin/proxlb -d -c /etc/proxlb/proxlb.conf
<6> ProxLB: Info: [logger]: Logger verbosity got updated to: INFO.
<4> ProxLB: Warning: [api-connection]: API connection does not verify SSL certificate.
<6> ProxLB: Info: [api-connection]: API connection succeeded to host: 127.0.0.1.
<6> ProxLB: Info: [node-update-status-getter]: Get update status for node: virt01.
<6> ProxLB: Info: [node-update-status-getter]: Updates available for node: virt01.
<6> ProxLB: Info: [node-update-executor]: Execute updates on node: virt01.
<6> ProxLB: Info: [node-update-executor]: Sucessfully integrated updates to node: virt01.
<6> ProxLB: Info: [node-reboot-status-getter]: Get reboot status for node: virt01.
<6> ProxLB: Info: [node-reboot-status-getter]: No reboot required for node: virt01.
<6> ProxLB: Info: [node-statistics]: Added node virt01.
<6> ProxLB: Info: [node-statistics]: Added node virt03.
<6> ProxLB: Info: [node-statistics]: Added node virt02.
<6> ProxLB: Info: [node-statistics]: Created node statistics.
<6> ProxLB: Info: [api-get-vm-tags]: Got VM/CT tag from API.
<6> ProxLB: Info: [api-get-vm-include-exclude-tags]: Got PLB include group.
[...]
WIP
What is still missing:
Lock that prevents other nodes to install updates in the same time
General
This PR adds the basic functionality to add a rolling update support for nodes in a cluster to ProxLB. If activated, nodes will:
This also brings up the new
proxlb-additions
package, which adds the missing options to the Proxmox API. This packages will be required. If this option is activated but the package is missing, ProxLB will throw an error guiding you to install the required package.Test
WIP
What is still missing:
Notes
Fixes: #39