Files
ProxLB/CHANGELOG.md
2026-01-09 14:22:27 +01:00

11 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.1.11] - 2026-01-12

Added

  • Add support for Proxmoxs native HA (affinity/anti-affinity) rules [beta] (@gyptazy). [#391]
  • Add support for Proxmox native HA (node-affinity) rules for pinning guests to nodes [beta] (@gyptazy). [#391]
  • Add resource reservation support for PVE nodes (@Chipmonk2). [#373]
  • Add possibility to sort and select balancing workloads by smaller/larger guest objects (@gyptazy). [#387]
  • Add HA job validation for migration jobs to fetch child jobs (@gytazy). [#402]
  • Add support for configuring node-pinning strictness (default: true) within pools to allow strict/prefer modes (@gyptazy). [#406]
  • Add new option to enforce node/guest pinning even when cluster is balanced from a resource perspective (@gyptazy). [#414]

Fixed

  • Fix missing overprovisioning safety guard to avoid node overprovisioning (@gyptazy). [#275]
  • Fix affinity matrix pre-validation by inverting validations (@Thalagyrt). [#335]
  • Fix pool based node pinning which expects a list (@gyptazy). [#395]
  • Fix that ignored VMs/CTs got moved to another node when being ignored (@gyptazy). [#408]

Changed

  • Change balancing and sorting behaviour (@gyptazy). [#378]
  • Balancing objects will be ordered by count of objects in affinity-rules, followed by memory size (@gyptazy). [#378]

[1.1.10] - 2025-11-25

Added

  • Prevent redundant rebalancing by validating existing affinity enforcement before taking actions (@gyptazy). [#335]
  • Add safety-guard for PVE 8 users when activating conntrack-aware migrations mistakenly (@gyptazy). [#359]

Fixed

  • Fix the Proxmox API connection validation which returned a false-positive logging message of timeouts (@gyptazy). [#361]
  • Refactored Proxmox API connection functions (@gyptazy). [#361]
  • Fix a crash during PVE resource pool enumeration by skipping members not having a 'name' property (@stefanoettl). [#368]

[1.1.9.1] - 2025-10-30

Fixed

  • Fix quoting in f-strings which may cause issues on PVE 8 / Debian Bookworm systems (@gyptazy). [#352]

[1.1.9] - 2025-10-30

Added

  • Add an optional memory balancing threshold (@gyptazy). [#342]
  • Add affinity/anti-affinity support by pools (@gyptazy). [#343]
  • Add pressure (PSI) based balancing for memory, cpu, disk (req. PVE9 or greater) (@gyptazy). [#337]
    • Pressure (PSI) based balancing for nodes
    • Pressure (PSI) based balancing for guests
  • Add PVE version evaluation

[1.1.8] - 2025-10-09

Fixed

  • Fix API errors when using conntrack aware migration with older PVE versions (@gyptazy). [#318]
  • Add a static ProxLB prefix to the log output when used by journal handler (@gyptazy). [#329]

Changed

  • Container image does not run as root anymore (@mikaelkrantz945). [#317]
  • Container image uses venv for running ProxLB (@mikaelkrantz945). [#317]

[1.1.7] - 2025-09-19

Added

  • Add conntrack state aware migrations of VMs (@gyptazy). [#305]
  • Add graceful shutdown for SIGINT (e.g., CTRL + C abort). (@gyptazy). [#304]

Fixed

  • Fix crash when validating absent migration job ids. (@gyptazy). [#308]
  • Fix guest object names are not being evaluated in debug log. (@gyptazy). [#310]

[1.1.6.1] - 2025-09-04

Fixed

  • Validate for node presence when pinning VMs to avoid crashing (@gyptazy). [#296]

[1.1.6] - 2025-09-04

Added

  • Add validation for provided API user token id to avoid confusions (@gyptazy). [#291]

Fixed

  • Fix stacktrace output when validating permissions on non existing users in Proxmox (@gyptazy). [#291]
  • Fix Overprovisioning first node if anti_affinity_group has only one member (@MiBUl-eu). [#295]
  • Validate for node presence when pinning guests to avoid crashing (@gyptazy). [#296]
  • Fix balancing evaluation of guest types (e.g., VM or CT) (@gyptazy). [#268]

[1.1.5] - 2025-07-14

Added

  • Allow custom API ports instead of fixed tcp/8006 (@gyptazy). [#260]

[1.1.4] - 2025-06-27

Added

  • Allow pinning of guests to a group of nodes (@gyptazy). [#245]

Fixed

  • Modified log levels to make output lighter at INFO level (@pmarasse) [#255]
  • Fixed an issue where balancing was performed in combination of deactivated balancing and dry-run mode (@gyptazy). [#248]

[1.1.3] - 2025-06-19

Added

  • Add relaod (SIGHUP) function to ProxLB to reload the configuration (by @gyptazy). [#189]
  • Add optional wait time parameter to delay execution until the service takes action (by @gyptazy). [#239]
  • Make the amount of parallel migrations configurable (by @gyptazy). [#241]

Changed

  • Use the average CPU consumption of a guest within the last 60 minutes instead of the current CPU usage (by @philslab-ninja & @gyptazy). [#94]

Fixed

  • Align maintenance mode with Proxmox HA maintenance mode (by @gyptazy). [#232]

[1.1.2] - 2025-05-13

Added

  • Add a configurable retry mechanism when connecting to the Proxmox API (by @gyptazy) [#157]
  • Add 1-to-1 relationships between guest and hypervisor node to ping a guest on a node (by @gyptazy) [#218]

Fixed

  • Force type cast cpu count of guests to int for some corner cases where a str got returned (by @gyptazy). [#222]
  • Fix systemd unit file to run after network on non PVE nodes (by @robertdahlem) [#137]

[1.1.1] - 2025-04-20

Added

  • Providing the API upstream error message when migration fails in debug mode (by @gyptazy) [#205]

Changed

  • Change the default behaviour of the daemon mode to active [#176]
  • Change the default banalcing mode to used instead of assigned [#180]

Fixed

  • Set cpu_used to the cpu usage, which is a percent, times the total number of cores to get a number where guest cpu_used can be added to nodes cpu_used and be meaningful (by @glitchvern) [#195]
  • Fix tag evluation for VMs for being ignored for further balancing [#163]
  • Honor the value when balancing should not be performed and stop balancing [#174]
  • allow the use of minutes instead of hours and only accept hours or minutes in the format (by @glitchvern) [#187]
  • Remove hard coded memory usage from lowest usage node and use method and mode specified in configuration instead (by @glitchvern) [#197]
  • Fix the guest type relationship in the logs when a migration job failed (by @gyptazy) [#204]
  • Requery a guest if that running guest reports 0 cpu usage (by @glitchvern) [#200]
  • Fix Python path for Docker entrypoint (by @crandler) [#170]
  • Improve logging verbosity of messages that had a wrong servity [#165]

[1.1.0] - 2025-04-01

Fixed

  • Refactored code base for ProxLB [#114]
  • Switched to pycodestyle for linting [#114]
  • Package building will be done within GitHub actions pipeline [#114]
  • ProxLB now only returns a warning when no guests for further balancing are not present (instead of quitting) [132#]
  • All nodes (according to the free resources) will be used now [#130]
  • Fixed logging outputs where highest/lowest were mixed-up [#129]
  • Stop balancing when movement would get worste (new force param to enfoce for affinity rules) [#128]
  • Added requested documentation regarding Proxmox HA groups [#127]
  • Rewrite of the whole affinity/anti-affinity rules evaluation and placement [#123]
  • Fixed the ignore parameter for nodes where the node and guests on the node will be untouched [#102]

[1.0.6] - 2024-12-24

Fixed

  • Fix maintenance mode when using cli arg and config mode by using the merged list (by @CartCaved). [#119]
  • Fix that a scheduler time definition of 1 (int) gets wrongly interpreted as a bool (by @gyptazy). [#115]

[1.0.5] - 2024-10-30

Changed

  • Change docs to make bool usage in configs more clear (by @gyptazy). [#104]

Fixed

  • Fix node (and its objects) evaluation when not reachable, e.g., maintenance (by @gyptazy). [#107]
  • Fix migration from local disks (by @greenlogles). [#113]
  • Fix evaluation of maintenance mode where comparing list & string resulted in a crash (by @glitchvern). [#106]
  • Fix allowed values (add DEBUG, WARNING) for log verbosity (by @gyptazy). [#98]

[1.0.4] - 2024-10-11

Added

  • Add maintenance mode to evacuate a node and move workloads for other nodes in the cluster. [#58]
  • Add feature to make API timeout configureable. [#91]
  • Add version output cli arg. [#89]

Changed

  • Run storage balancing only on supported shared storages. [#79]
  • Run storage balancing only when needed to save time. [#79]

Fixed

  • Fix CPU balancing where calculations are done in float instead of int. (by @glitchvern) [#75]
  • Fix documentation for the underlying infrastructure. [#81]

[1.0.3] - 2024-09-12

Added

  • Add cli arg -b to return the next best node for next VM/CT placement. [#8]
  • Add a convert function to cast all bool alike options from configparser to bools. [#53]
  • Add a config parser options for future features. [#53]
  • Add a config versio schema that must be supported by ProxLB. [#53]
  • Add feature to allow the API hosts being provided as a comma separated list. [#60]
  • Add doc how to add dedicated user for authentication. (by @Dulux-Oz)
  • Add storage balancing function. [#51]

Changed

  • Provide a more reasonable output when HA services are not active in a Proxmox cluster. [#68]
  • Improve the underlying code base for future implementations. [#53]

Fixed

  • Fix anti-affinity rules not evaluating a new and different node. [#67]
  • Fixed master_only function by inverting the condition.
  • Fix documentation for the master_only parameter placed in the wrong config section. [#74]
  • Fix bug in the proxlb.conf in the vm_balancing section.
  • Fix handling of unset ignore_nodes and ignore_vms resulted in an attribute error. [#71]
  • Improved the overall validation and error handling. [#64]

[1.0.2] - 2024-08-13

Added

  • Add option to run ProxLB only on the Proxmox's master node in the cluster (reg. HA feature). [#40]
  • Add option to run migrations in parallel or sequentially. [#41]

Changed

  • Fix daemon timer to use hours instead of minutes. [#45]

Fixed

  • Fix CMake packaging for Debian package to avoid overwriting the config file. [#49]

[1.0.0] - 2024-08-01

Added

  • Add feature to prevent VMs from being relocated by defining the 'plb_ignore_vm' tag. [#7]
  • Add feature to prevent VMs from being relocated by defining a wildcard pattern. [#7]
  • Add Docker/Podman support. [#10 by @daanbosch]
  • Add option to rebalance by assigned VM resources to avoid overprovisioning. [#16]
  • Add feature to make log verbosity configurable [#17].
  • Add dry-run support to see what kind of rebalancing would be done. [#6]
  • Add LXC/Container integration. [#27]
  • Add exclude grouping feature to rebalance VMs from being located together to new nodes. [#4]
  • Add include grouping feature to rebalance VMs bundled to new nodes. [#3]
  • Add option_mode to rebalance by node's free resources in percent (instead of bytes). [#29]

Changed

  • Adjusted general logging and log more details.

[0.9.9] - 2024-07-06

Added

  • Initial public development release of ProxLB.

[0.9.0] - 2024-02-01

Added

  • Development release of ProxLB.