๐ Release: 0.1.0-rc.1¶
First release candidate. Every change since 0.1.0-beta.7, with the configuration, API, and CLI surfaces settled for 0.1.0. Bindizr is now an open-source control plane for authoritative DNS: the secondary can be BIND9, Knot DNS, NSD, or PowerDNS.
๐ฆ Distribution¶
Debian (.deb) and RPM (.rpm) packages for amd64 and arm64, running
the daemon as an unprivileged bindizr user with a ready-to-run SQLite config.
The container image is multi-arch and still carries the ExternalDNS adapter
(bindizr-external-dns). The Helm chart stays on Docker Hub as an OCI
artifact (oci://registry-1.docker.io/kweonminsung/bindizr-chart).
๐ Installation (Debian/Ubuntu)¶
๐ Installation (RHEL/CentOS/Fedora)¶
๐ Installation (Helm)¶
helm install bindizr oci://registry-1.docker.io/kweonminsung/bindizr-chart \
--version 0.1.0-rc.1 \
--set bindizr.database.existingSecret=bindizr-db-secret
โ ๏ธ Breaking Changes¶
- Configuration renamed and regrouped; unknown keys are rejected:
api.authentication_required,database.<backend>.url,[dns.notify],[dns.transfer_cache],dns.nsupdate_tsig_required(inverted),dns.zone_history_retention_days,logging.level. The[dnssec]block is gone โ signing parameters are DB-backed policies (bindizr dnssec-policy) - Catalog zone
catalog.bindโcatalog.bindizr(dns.catalog_zone_name);setup_bind.shis replaced by a setup page per secondary - HTTP API: token and TSIG policies are grants
(
/tokens/{name}/grants,/zones/{name}/token-grants, โฆ); bulk insert is/records/bulk, import/zones/{name}/import, notify/notify, rollback/zones/{name}/versions/{serial}/rollback, the DS check/zones/{name}/dnssec/check-ds. Listings share one paginated shape, errors oneErrorResponse, and an ungranted zone answers 404 - CLI:
dnssec/dnssec-policyare top-level groups, grants aretoken grant/tsig-key grant, names are positional,-cis the config flag, and exit codes name the failure class - DNSSEC:
dnssec enablerequires--parent-ns-addrs; NSEC3 is the default - Names are printable ASCII (IDN as
xn--A-labels, lowercased) - Schema replaced (
token_grants,tsig_grants,catalog_zones,dnssec_policies,dnssec_withdrawals); Rust 1.94 to build; clean installs only โ no upgrade path from beta.7
โจ New Features¶
- Any catalog-zone secondary โ BIND9, Knot DNS, NSD, PowerDNS, each documented and benchmarked
- DNSSEC, completed โ DB-backed policies, every RFC 8624 algorithm, NSEC3, scheduled ZSK rollovers, parent-DS verification and unattended promotion, algorithm rollovers, RFC 8078 DS withdrawal, BIND key-file import/export, richer status, Prometheus metrics
- TSIG-authenticated zone transfers and HTTPS for the API
- API tokens over HTTP โ create, list, delete,
GET /tokens/self; read-only grants - Zone migration โ
zone import --from-serverpulls a zone over AXFR;--createbuilds it from the file's SOA - Records โ DNAME and NAPTR, set-wide deletes,
--dry-runpreviews on every change, versions record their author,zone update --enabled false - Daemon โ config reload without restart, graceful SIGTERM, configurable maintenance interval, JSON logs
- CLI โ
-o json|yaml|tableeverywhere,ls/rmaliases, colorized diffs,man, completions,doctor -o json
๐งน Fixes & Improvements¶
- UDP listener no longer serves one query at a time; both listeners are bounded
- Correctness โ MX/SRV priority stored, TXT shape preserved, NAPTR validated as BIND does, owner-only daemon socket, NOTIFY delivered across shutdown, one deadline per AXFR
- Performance โ scoped listings narrowed in SQL, journal/version indexes, narrower nsupdate locks, right-sized SQLite bulk inserts, cached ACL lookups