Current Series Release Notes

23.0.0.0rc1-16

New Features

  • Added --replace flag to designate-manage pool update command. When enabled, optional pool fields (also_notifies, attributes, catalog_zone) that are not present in the YAML file will be cleared from the pool configuration. This provides an alternative to the default merge behavior, which preserves fields omitted from the YAML file. This gives administrators explicit control over whether pool updates should merge with or replace the existing configuration.

Upgrade Notes

  • The designate-api service command, designate.api.service module, and designate.cmd.api module have been removed. These relied on oslo_service.wsgi and oslo_service.sslutils, which were removed from oslo.service as part of the eventlet removal initiative.

    Operators must deploy the Designate API using a WSGI server such as uwsgi. This has been the recommended deployment method and the default in DevStack for several releases.

Security Issues

  • The Infoblox backend’s client certificate (cert option, used for mutual TLS authentication to the Infoblox WAPI) is now validated by the [pqc] check_mode compliance check, matching the NSD4 and PDNS4 backends. Previously it was not checked for quantum-vulnerable algorithms at all. check_mode defaults to permissive, so this only adds a startup log warning unless check_mode is set to strict.

  • The TSIG algorithm warning emitted when signing DNS messages now flags any algorithm weaker than HMAC-SHA256 (e.g. hmac-sha1, hmac-sha224), not just hmac-md5. See bug 2166755.

Bug Fixes

  • Fixed bug 1919495 where IPv6 addresses with compressed notation (using ::`) were incorrectly parsed in notification handlers. The notification handler now uses Python’s ipaddress module to properly normalize and expand IPv6 addresses before processing, ensuring correct handling of all valid IPv6 address formats including compressed notation, fully-specified addresses, and mixed formats.

  • Fixed bug 2095170 where designate-manage pool update --delete (and the delete_pool RPC call) would fail with InvalidOperation: pool must not contain zones when attempting to delete a pool that only contained its own catalog zone. Catalog zones are now excluded from that check, since they are deleted automatically along with the pool.

  • Fixed an issue where updating only the zone description would incorrectly increment the zone serial number. The serial number is now only incremented when DNS-propagated fields (such as email or TTL) are changed.

  • Fixed zone deletion failure when BIND9 is configured with both authoritative and recursive roles. Previously, zone deletion could fail because get_serial() incorrectly interpreted non-authoritative recursive responses as evidence that the zone still existed locally.

  • Tests for the deprecated designate.api.service module will now skip gracefully if the module becomes unavailable due to missing dependencies. This prevents test failures when oslo_service.wsgi and oslo_service.sslutils are removed in oslo.service 2026.2, bridging the gap until the deprecated module and its tests are removed in Designate 2027.1.

23.0.0.0rc1

Bug Fixes

  • Fixed bug 2166858 where restarting a service’s heartbeat shortly after stopping it could raise RuntimeError: A fixed interval looping call can only run one function at a time. HeartbeatEmitter.stop() now waits for the timer thread to fully exit before returning, instead of just signalling it to stop, matching the pattern oslo.service uses internally.