Greetings DNS fans!
This is our first feature release since DNSControl's move to the new GitHub org. It is now complete. Thanks to all the volunteers that helped make that move possible!
This is a huge release with many new features due to the backlog of contributions that were waiting for the big move to complete.
I'm particularly excited about the new dnscontrol init command, contributed by @cafferata. It is an interactive experience that helps new users build their configuration. I expect this will greatly help increase adoption of DNSControl. However we need a little help: Each DNS provider needs to update their provider to be included in the menu (we'll have more news soon).
- NEW PROVIDER MAINTAINER! Applause all around to @natalie-o-perret for stepping up to be the maintainer of the
EXOSCALEprovider. We look forward to great things! ROUTE53users can now control a weighted routing and health check via DNSControl (Thanks @Crazu!)LOCrecords were broken on 32-bit CPUs (Thanks @al20ov!)dnscontrol initis an interactive experience that helps new users build their configuration (Thanks @cafferata!)dnscontrol get-zonesno longer supports older syntax, and is less confusing as a results (Thanks @cafferata!)dnscontrol previewoutput forTXTrecords is easier to read (Thanks @raman1236!)LUADNSnow supportsOPENPGPKEY(Thanks @riku22!)- PRs are now automatically assigned (Thanks @chicks-net)
- Adding new providers has fewer manual steps (yay!) (Thanks @cafferata!)
- Old code that used parser.ParseDir has been replaced (Thanks @philpennock!)
- Bug fixes and improvements for AXFRDDNS, CLOUDFLAREAPI, CLOUDNS, DNSCALE, EXOSCALE, GIDINET, INFOMANIAK, POWERDNS, UNIFI.
- And much, much, more!
Thanks to all contributors involved in this release! This is a community project and we couldn't do it without all of your contributions!
Sincerely,
--Tom Limoncelli
Monthly video call!
Everyone is invited to the Monthly DNSControl Community Video Conference Call on the 2nd Tuesday of each month. Join whether you are a new user with questions or an experienced developer that wants to discuss DNSControl internals... or anything in between! Meeting details on
GitHub Discussions.
Changelog
Major features:
- a79e872: FEATURE: Init command (#4208) (@cafferata)
Provider-specific changes:
- 7ec4cb3: AXFRDDNS: Add missing ALPN token 'dot' (#4207) (@Mr-Foo)
- c09090b: CLOUDFLAREAPI: allow CNAME + other records when Cloudflare proxy is enabled (#4189) (@raman1236)
- 72bce2a: DNSCALE: allow third-party NS records at zone apex (#4176) (@dnscale-ops)
- 0b4d6fd: EXOSCALE: migrate to egoscale v3 (#4224) (@natalie-o-perret)
- c93f116: GIDINET: Auto-suggest nameservers and add premium DNS helper (#4203) (@zupolgec)
- f8e6f21: INFOMANIAK: report invalid API token rather than claim all records disappeared (#4200) (@signalwerk)
- b55ad79: LINODE: Add Linode integration test support (#4244) (@labrown)
- af9a220: LUADNS: support OPENPGPKEY record type (#4249) (@riku22)
- bc4119b: POWERDNS: Fix DNSSEC corrections handling for unset AutoDNSSEC (#4248) (@jpbede)
- 3770218: ROUTE53: Add weighted routing and health check support (#4175) (@Crazu)
- 9944f97: UNIFI: fix errors on version 10.2.105 (#4201) (@Matthew-Kilpatrick)
- 4df0c76: fix(cloudns): map CLOUD_WR to CLOUDNS_WR so redirect records are not recreated every push (#4188) (@raman1236)
Documentation:
- f640d76: DOCS: Fixed 404 account URL in INWX documentation (#4169) (@cafferata)
- 91282bb: DOCS: POWERDNS SOA documentation (#4028) (@flindeberg)
- e47eda9: DOCS: Unwrap hard-wrapped paragraphs in GitBook documentation (#4225) (@cafferata)
- 1ad739e: DOCS: Update SendSafely instructions (#4254) (@TomOnTime)
CI/CD:
- af896ac: BUILD: Eliminate the need to manually update GoReleaser for new providers (#4255) (@cafferata)
- 2dbde3e: CICD: Derive integration test provider list from profiles.json (#4245) (@cafferata)
- f6a0068: CICD: Move OWNERS to .github/CODEOWNERS to fix #3978 (#3983) (@chicks-net)
- fca753c: CICD: only release in DNSControl/dnscontrol repo, fixes #4238 (#4239) (@chicks-net)
Dependencies:
- cd03690: CHORE: Update dependencies (#4257) (@TomOnTime)
- 0b0f92c: CHORE: Update dependencies, etc (#4242) (@TomOnTime)
Other changes and improvements:
- 1e599ca: BUG: Fix get-zones argument parsing to match documentation (#4240) (@cafferata)
- 44b3486: BUG: TypeScript definition of TXT is incorrect (#4199) (@dasyad00)
- 59d7a97: BUGFIX: LOC record latitude/longitude overflow on 32 bit archs (#4194) (@al20ov)
- 0682d08: BUGFIX: preview should display long TXT records as one string (#4190) (@raman1236)
- dae9d96: CHORE: Add CODEOWNERS for documentation and GoReleaser config (#4256) (@cafferata)
- 590caea: CHORE: Fix lint issues (#4252) (@TomOnTime)
- 1132bed: CHORE: Replace parser.ParseDir with golang.org/x/tools/go/packages (#4195) (@philpennock)
Deprecation warnings
Warning
- REV() will switch from RFC2317 to RFC4183 in v5.0. This is a breaking change. Warnings are output if your configuration is affected. No date has been announced for v5.0. See https://docs.dnscontrol.org/language-reference/top-level-functions/revcompat
- NAMEDOTCOM, OPENSRS and SOFTLAYER need maintainers! 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.
Install
macOS and Linux
Install with Homebrew (recommended)
brew install DNSControl/tap/dnscontrolUsing with Docker
You can use the Docker image from Docker hub or GitHub Container Registry.
docker run --rm -it -v "$(pwd):/dns" ghcr.io/dnscontrol/dnscontrol previewAnywhere else
Alternatively, you can install the latest binary (or the apt/rpm/deb/archlinux package) from this page.
Or, if you have Go installed, you can install the latest version of DNSControl with the following command:
go install github.com/DNSControl/dnscontrol/v4@mainUpdate
Update to the latest version depends on how you choose to install dnscontrol on your machine.
Update with Homebrew
brew upgrade DNSControl/tap/dnscontrolAlternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.