This release includes one new provider ("AutoDNS"), warns about mismatched TTLs, fixes bugs and adds many improvements. Most importantly this release begins the transition to storing "provider type" info in creds.json instead of dnsconfig.js.
The Request for Comments: Include the provider type in creds.json, remove it from dnsconfig.js proposal was implemented in this release. This moves the provider name (the uppercase string like CLOUDFLAREAPI, GANDI_V5, ROUTE53) from dnsconfig.js into the creds.json file. This corrects a long-standing design mistake, simplifies configuration files and command-line tools usage. With this release both the old and new syntax are supported. If the old syntax is detected, helpful conversion advice is output on stderr. There are no plans to remove the old syntax, but it will happen eventually.
Because the warnings are output on stderr, it should not affect scripts or CI/CD pipelines. However, do be on the lookout for unexpected problems.
We also thank @tresni for stepping up and volunteering to maintain CLOUDFLAREAPI and ROUTE53!
Breaking changes:
- none intended (See above)
Major features:
- NEW PROVIDER: AutoDNS (#1336) (Thanks, @arnoschoon!)
- NEW FEATURE: Emit warning in case of label having multiple TTLs (#1489)
- NEW FEATURE: Provider TYPE is moving from dnsconfig.js to creds.json (#1500) (#1499)
- BUG FIX: creds.json should not be executable under Windows (#1456)
- Welcome maintainers for CLOUDFLAREAPI, ROUTE53
Provider-specific changes:
- AUTODNS: Fix autodns documentation example javascript. (#1470)
- CLOUDFLARE: Add support for PTR records (#1496)
- CLOUDNS: Fix creation of intra-zone NS records (see #1263) (#1469)
- DNSIMPLE: bug-fix, allow non-apex NS records (#1468)
- DOH: Clarify DOH does not reference whois data (#1413)
- GANDI_V5: Fix DS test / Eliminate SHA1 use in DS_Child tests (#1502)
- HEXONET: Fix error format string (#1462)
- HEXONET: Adapt to new OTE endpoint (#1463)
- LINODE: Add support for CAA records and implement get-zones (#1454)
- LINODE: Skip CAA flag test (#1455)
- NETCUP: Autosplit long TXT records (#1481)
- NS1: enable autoDNSSEC capability (#1450)
Other changes and improvements:
- Refactor: Rewrite GetDNSConfig (#1466)
- Refactor: Rename providers/config to pkg/credsfile (#1494)
- Refactor: Move creds.json processing out of InitializeProviders (#1495)
- Cleanup: Eliminate models.StringsToNameservers() (#1486)
- Cleanup: Make skip_fqdn_check error message easier to understand and fix (#1477)
- DOCS: Update maintainers for Route53 and Cloudflare (#1501)
- TESTING: pkg/js/parse_tests: fix a broken test (#1498)
- DOCS: fix a forgotten "VOLUNTEER NEEDED" (#1488)
- Cleanup: Guard against nil (#1452)
- MAINT: Minimum go version is now 1.18 (#1464)
- TESTING: "DUPLICATE E_RECORD" no longer a hard error (#1465)
- Update dependencies (#1490) (#1478)
Depreciation warnings
- Call for new volunteer maintainers for GCLOUD, NAMEDOTCOM, and SOFTLAYER. These providers have no maintainer. Maintainers respond to PRs and fix bugs in a timely manner, and try to stay on top of protocol changes.
- ACME/Let's Encrypt support is frozen and will be removed after December 31, 2022. The
get-certs
command (renews certs via Let's Encrypt) has no maintainer. There are other projects that do a better job. If you don't use this feature, please do not start. If you do use this feature, please plan on migrating to something else. See discussion in #1400 - convertzone is frozen and will be removed after June 30, 2022. The
convertzone
stand-alone program is replaced by theget-zone
subcommand of DNSControl. It does everythingconvertzone
did and more. - Provider ACTIVEDIRECTORY_PS is frozen and will be removed after June 30, 2022. It is replaced by MSDNS which is 100% feature compatible and works better. (We believe nobody uses it.)
- get-zones syntax changes in v3.16 Starting in v3.16, the command line arguments for
dnscontrol get-zones
changes. For backwards compatibility changeprovider
to-
. See documentation for details.