Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add rolling update support for nodes #47

Closed
wants to merge 2 commits into from

Conversation

gyptazy
Copy link
Owner

@gyptazy gyptazy commented Aug 7, 2024

General

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
    • Avoid more load on the nodes in the cluster
    • Avoid rebooting the systems at the same time

Notes

Fixes: #39

@gyptazy gyptazy added the feature label Aug 7, 2024
@gyptazy gyptazy self-assigned this Aug 7, 2024
@gyptazy gyptazy marked this pull request as draft August 7, 2024 11:17
@gyptazy gyptazy closed this Aug 9, 2024
@gyptazy
Copy link
Owner Author

gyptazy commented Aug 9, 2024

Funny integrated in PR #48

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

feature: Cluster auto-patching / rolling updates
1 participant