diff --git a/.changelogs/1.0.4/release_meta.yml b/.changelogs/1.0.4/release_meta.yml index c19765d..fe59bfb 100644 --- a/.changelogs/1.0.4/release_meta.yml +++ b/.changelogs/1.0.4/release_meta.yml @@ -1 +1 @@ -date: TBD +date: 2024-10-11 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9ef06cc..3ee6567 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,61 +6,82 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.0.4] - 2024-10-11 + +### Added + +- Add feature to make API timeout configureable. [#91] +- Add maintenance mode to evacuate a node and move workloads for other nodes in the cluster. [#58] +- 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 storage balancing function. [#51] - 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 storage balancing function. [#51] - Add doc how to add dedicated user for authentication. (by @Dulux-Oz) +- Add feature to allow the API hosts being provided as a comma separated list. [#60] - Add cli arg `-b` to return the next best node for next VM/CT placement. [#8] ### 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] +- Provide a more reasonable output when HA services are not active in a Proxmox cluster. [#68] ### Fixed -- Fix documentation for the master_only parameter placed in the wrong config section. [#74] - Fixed `master_only` function by inverting the condition. - Improved the overall validation and error handling. [#64] - 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] - Fix anti-affinity rules not evaluating a new and different node. [#67] +- Fix documentation for the master_only parameter placed in the wrong config section. [#74] +- Fix handling of unset `ignore_nodes` and `ignore_vms` resulted in an attribute error. [#71] ## [1.0.2] - 2024-08-13 ### Added -- Add option to run migration in parallel or sequentially. [#41] - 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] -- Fix wonkey code style. ## [1.0.0] - 2024-08-01 ### Added -- Add feature to prevent VMs from being relocated by defining a wildcard pattern. [#7] -- Add feature to make log verbosity configurable [#17]. - Add option_mode to rebalance by node's free resources in percent (instead of bytes). [#29] -- Add option to rebalance by assigned VM resources to avoid over provisioning. [#16] -- Add Docker/Podman support. [#10 by @daanbosch] +- Add LXC/Container integration. [#27] - Add exclude grouping feature to rebalance VMs from being located together to new nodes. [#4] -- Add feature to prevent VMs from being relocated by defining the 'plb_ignore_vm' tag. [#7] - Add dry-run support to see what kind of rebalancing would be done. [#6] -- Add LXC/Container integration. [#27] +- Add Docker/Podman support. [#10 by @daanbosch] +- Add feature to prevent VMs from being relocated by defining a wildcard pattern. [#7] +- Add feature to prevent VMs from being relocated by defining the 'plb_ignore_vm' tag. [#7] - Add include grouping feature to rebalance VMs bundled to new nodes. [#3] +- Add option to rebalance by assigned VM resources to avoid overprovisioning. [#16] +- Add feature to make log verbosity configurable [#17]. ### Changed diff --git a/README.md b/README.md index 55f068e..d07542e 100644 --- a/README.md +++ b/README.md @@ -270,8 +270,8 @@ The executable must be able to read the config file, if no dedicated config file The easiest way to get started is by using the ready-to-use packages that I provide on my CDN and to run it on a Linux Debian based system. This can also be one of the Proxmox nodes itself. ``` -wget https://cdn.gyptazy.com/files/os/debian/proxlb/proxlb_1.0.3_amd64.deb -dpkg -i proxlb_1.0.3_amd64.deb +wget https://cdn.gyptazy.com/files/os/debian/proxlb/proxlb_1.0.4_amd64.deb +dpkg -i proxlb_1.0.4_amd64.deb # Adjust your config vi /etc/proxlb/proxlb.conf systemctl restart proxlb @@ -368,6 +368,7 @@ Container Images for Podman, Docker etc., can be found at: | Version | Image | |------|:------:| | latest | cr.gyptazy.com/proxlb/proxlb:latest | +| v1.0.4 | cr.gyptazy.com/proxlb/proxlb:v1.0.4 | | v1.0.3 | cr.gyptazy.com/proxlb/proxlb:v1.0.3 | | v1.0.2 | cr.gyptazy.com/proxlb/proxlb:v1.0.2 | | v1.0.0 | cr.gyptazy.com/proxlb/proxlb:v1.0.0 | diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt index 2c5bf80..9ada078 100644 --- a/packaging/CMakeLists.txt +++ b/packaging/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.16) -project(proxmox-rebalancing-service VERSION 1.0.3) +project(proxmox-rebalancing-service VERSION 1.0.4) install(PROGRAMS ../proxlb DESTINATION /bin) install(FILES ../proxlb.conf DESTINATION /etc/proxlb) diff --git a/packaging/changelog_debian b/packaging/changelog_debian index d3e6d28..36a9119 100644 --- a/packaging/changelog_debian +++ b/packaging/changelog_debian @@ -1,3 +1,15 @@ +proxlb (1.0.4) unstable; urgency=low + + * Add feature to make API timeout configureable. + * Add maintenance mode to evacuate a node and move workloads for other nodes in the cluster. + * Add version output cli arg. + * Run storage balancing only on supported shared storages. + * Run storage balancing only when needed to save time. + * Fix CPU balancing where calculations are done in float instead of int. (by @glitchvern) + * Fix documentation for the underlying infrastructure. + + -- Florian Paul Azim Hoberg Fri, 11 Oct 2024 06:14:13 +0200 + proxlb (1.0.3) unstable; urgency=low * Add a convert function to cast all bool alike options from configparser to bools. diff --git a/packaging/changelog_redhat b/packaging/changelog_redhat index d9e4172..dd412ec 100644 --- a/packaging/changelog_redhat +++ b/packaging/changelog_redhat @@ -1,3 +1,12 @@ +* Fri Oct 11 2024 Florian Paul Azim Hoberg +- Add feature to make API timeout configureable. +- Add maintenance mode to evacuate a node and move workloads for other nodes in the cluster. +- Add version output cli arg. +- Run storage balancing only on supported shared storages. +- Run storage balancing only when needed to save time. +- Fix CPU balancing where calculations are done in float instead of int. (by @glitchvern) +- Fix documentation for the underlying infrastructure. + * Wed Sep 12 2024 Florian Paul Azim Hoberg - Add a convert function to cast all bool alike options from configparser to bools. - Add a config parser options for future features. diff --git a/proxlb b/proxlb index c71a858..f2e2a05 100755 --- a/proxlb +++ b/proxlb @@ -42,7 +42,7 @@ import urllib3 # Constants __appname__ = "ProxLB" -__version__ = "1.0.4b" +__version__ = "1.0.4" __config_version__ = 3 __author__ = "Florian Paul Azim Hoberg @gyptazy" __errors__ = False @@ -338,7 +338,7 @@ def api_connect(proxmox_api_host, proxmox_api_user, proxmox_api_pass, proxmox_ap proxmox_api_host = __api_connect_get_host(proxmox_api_host) try: - api_object = proxmoxer.ProxmoxAPI(proxmox_api_host, user=proxmox_api_user, password=proxmox_api_pass, verify_ssl=proxmox_api_ssl_v, timeout=proxmox_api_timeout) + api_object = proxmoxer.ProxmoxAPI(proxmox_api_host, user=proxmox_api_user, password=proxmox_api_pass, verify_ssl=proxmox_api_ssl_v, timeout=int(proxmox_api_timeout)) except proxmoxer.backends.https.AuthenticationError as proxmox_api_error: logging.critical(f'{error_prefix} Provided credentials do not work: {proxmox_api_error}') sys.exit(2)