Current Series Release Notes

22.0.0-19

New Features

  • The worker can now optionally sign NOTIFY and SOA poll messages with a TSIG key. In split-horizon deployments where the DNS server routes queries based on TSIG keys, this ensures that NOTIFY and serial polling reach the correct view regardless of the worker’s source IP.

    To enable, set tsigkey_id on pool nameservers and/or pool targets in pools.yaml, referencing a TSIG key created via the Designate API. When not set, the worker sends unsigned queries as before.

  • The zone import endpoint (POST /v2/zones/tasks/imports) now accepts application/json as a content type in addition to text/dns. When using JSON, the request body can include a zonefile field containing the zonefile content and an optional attributes field with zone attributes (e.g. pool_id). This allows imported zones to be scheduled to a specific pool, which was previously not possible. The existing text/dns behavior is unchanged.

Upgrade Notes

  • A new tsigkey_id column has been added to the pool_nameservers table. Run designate-manage database upgrade to apply the migration. The column is nullable and defaults to NULL, so no action is required for existing deployments.

  • Python 3.10 support has been dropped. The minimum version of Python now supported is Python 3.11.

Bug Fixes

  • Fixed mDNS _handle_record_query to use TSIG-based pool scoping when looking up SOA and other record queries. Previously, when the same zone name existed in multiple pools (e.g. split-horizon DNS), the handler would find multiple matching recordsets and return REFUSED. The handler now resolves the zone first using the TSIG key’s pool_id, then looks up the recordset within that zone.

  • Fixed a bug where the Move Zone API did not remove the zone from the source pool’s backend after moving it to the target pool. The zone data remained on the old pool’s nameservers, potentially serving stale DNS responses. Designate now deletes the zone from the source pool’s backend targets after the zone has been successfully updated on the target pool.

  • Fixed a bug that didn’t allow zones to be moved from non-default pools to default pools.