From e109a64ab09d35219985a205d98d3e27fe2a822d Mon Sep 17 00:00:00 2001 From: Hetzner Cloud Bot <> Date: Mon, 5 Oct 2026 13:24:28 +0000 Subject: [PATCH] chore(main): release v2.27.0 --- CHANGELOG.md | 37 +++++++++++++++++++++++++++++++++++++ hcloud/_version.py | 2 +- setup.py | 2 +- 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f4f9baf..795fe77c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## [v2.27.0](https://github.com/hetznercloud/hcloud-python/releases/tag/v2.27.0) + +[Compare to previous version](https://github.com/hetznercloud/hcloud-python/compare/v2.26.0...v2.27.0) + +### Load Balancers can now be created with existing Primary IPs + +Primary IPs, which were previously available exclusively for Servers, are now also available for Load Balancers. When creating a Load Balancer, you can assign an [existing Primary IP](https://docs.hetzner.cloud/reference/cloud#tag/primary-ips/list_primary_ips) instead of having an IP address allocated automatically. Currently, you cannot change the Primary IP once the Load Balancer has been created. + +To support this change, we added the new `public_net` property to the request body of the endpoint [POST /load_balancers](https://docs.hetzner.cloud/reference/cloud#tag/load-balancers/create_load_balancer), with the following child properties: + +- `public_net.ipv4`: ID of an IPv4 Primary IP to assign to the Load Balancer. +- `public_net.ipv6`: ID of an IPv6 Primary IP to assign to the Load Balancer. + +If you omit a property, a new Primary IP of that version is allocated for the Load Balancer, as before. + +A Primary IP can currently only be assigned when the Load Balancer is created. It stays assigned for the entire lifetime of the Load Balancer. + +Related to https://docs.hetzner.cloud/changelog#2026-10-05-load-balancers-can-use-existing-primary-ips. + +### Deleting a Load Balancer now returns an Action + +> [!IMPORTANT] +> Please update all code that uses the `LoadBalancersClient.delete` method to wait on the newly returned action. + +As part of our work on supporting [existing Primary IPs for Load Balancers](https://docs.hetzner.cloud/changelog#2026-10-05-load-balancers-can-use-existing-primary-ips), deleting a Load Balancer is now tracked with an Action. + +The endpoint [DELETE /load_balancers/{id}](https://docs.hetzner.cloud/reference/cloud#tag/load-balancers/delete_load_balancer) now returns a 201 status code with an Action in the response body, instead of a 204 status code with an empty response body. + +You can use the returned Action to track the progress of the deletion. + +Related to https://docs.hetzner.cloud/changelog#2026-10-05-delete-load-balancer-returns-action. + +### Features + +- allow creating load balancers with primary ips (#700) ([84e3a19](https://github.com/hetznercloud/hcloud-python/commit/84e3a196ff29b2fc7508bce009b7d9da38005e49)) +- delete load balancer now returns an action (#700) ([84e3a19](https://github.com/hetznercloud/hcloud-python/commit/84e3a196ff29b2fc7508bce009b7d9da38005e49)) + ## [v2.26.0](https://github.com/hetznercloud/hcloud-python/releases/tag/v2.26.0) [Compare to previous version](https://github.com/hetznercloud/hcloud-python/compare/v2.25.1...v2.26.0) diff --git a/hcloud/_version.py b/hcloud/_version.py index 3be56c52..25e7bb72 100644 --- a/hcloud/_version.py +++ b/hcloud/_version.py @@ -1,3 +1,3 @@ from __future__ import annotations -__version__ = "2.26.0" # x-releaser-pleaser-version +__version__ = "2.27.0" # x-releaser-pleaser-version diff --git a/setup.py b/setup.py index b624eb92..9412b104 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,7 @@ setup( name="hcloud", - version="2.26.0", # x-releaser-pleaser-version + version="2.27.0", # x-releaser-pleaser-version keywords="hcloud hetzner cloud", description="Official Hetzner Cloud python library", long_description=readme,