Skip to content

DNSControl

v4.43.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

dns dnscontrol go iac

Summary

AI summary

Broad release touches Provider-specific changes, @TomOnTime, CI/CD, and Other changes and improvements.

Full changelog

Greetings DNS fans!

Release v4.43.0 highlights:

  • 4 New Providers! The most new providers we've had in one release in a long time! Thanks and welcome to our newest maintainers! We look forward to great things!
    • DYNU (#4364) thanks to @DustyRah!
    • OpenWRT (#4166) thanks to @huskyistaken!
    • GIGAHOST (#4394) thanks to @jochristian!
    • SCALEWAY (#4462) thanks to @alessiopcc!
  • AUTODNS now supports child domains. Thanks, @arnoschoon!
  • ROUTE53 can now edit SOA records. Thanks, @istenrot!
  • AXFRDDNS now supports communication over Unix domain sockets. Thanks, @tomfitzhenry!
  • GANDI_V5 now supports HTTPS/SVCB, NAPTR, LOC, OPENPGPKEY record types. Thanks @francois2metz!
  • "init" support added for AKAMAIEDGEDNS, AUTODNS, CLOUDNS, SeSEC, DNSSCCALE, DNSMADEEASY, FORTIGATE, JOKER, LINODE, MIKROTIK, and PORKBUN. If you haven't tried "dnscontrol init" yet, it's one of the coolest new features.
  • The HETZNER provider has been removed, having been replaced by HETZNERV2, thanks to @das7pad!

Upcoming releases:

  • The next release will be "v4.43.1-rc1". It will have no changes. We're just testing the ability to create release candidates. Release candidates will not appear in Homebrew or (maybe) Docker.
  • There may be a v4.43.2 soon (again, no changes) if we need to flush out rc1. For example, if Homebrew publishes rc1 as the default.

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:

  • f1d056a9fb81c656daca884de52b0b8eef5328ff: NEW PROVIDER: DYNU (#4364) (@DustyRah)
  • 1e113ccf2d10f9b4250ad587fa3831089488c928: NEW PROVIDER: OpenWRT (#4166) (@huskyistaken)

Provider-specific changes:

  • e5a85ad5aac39ae47e13f558eb38ead56bfab61f: AKAMAIEDGEDNS: support init command (#4270) (@TomOnTime)
  • ae7eca6528b36de938e772f567a47ae4f44fec70: AUTODNS: optionally include sub-user (children) zones in get-zones (#4391) (@arnoschoon)
  • 21642681393b592a3c1153ec5b65f4d1de4c1c23: AUTODNS: reject TXT values that AutoDNS cannot store losslessly (#4392) (@arnoschoon)
  • 02a4641cf2cee014a6f62611afd0d4ef300e0898: AUTODNS: support init command (#4272) (@TomOnTime)
  • 89d514e38222d6eaf4fb370fafc49e9ee0dfbe91: AXFRDDNS: support unix domain sockets in update-mode/transfer-mode (#4304) (@tomfitzhenry)
  • d1afeea00dc835a194a41decbb7ad4c269ca5f53: BUGFIX: GANDI_V5: Add missing apiurl field to profile.json (#4416) (@TomOnTime)
  • dcdbd2b71292d2efd4eb38dc51f0d9eba2c3d528: CLOUDNS: support init command (#4277) (@TomOnTime)
  • 0b36a3ddf056f0884b5c5a6813f2d29b07b62fff: CNR: Skip ALIAS on DNSSEC-signed zones, add SMIMEA + AUTODNSSEC support, and enhance SVCB handling (#4401) (@AsifNawaz-cnic)
  • dd7c6eb48eadd4a20a37d845439c8ea752b457c3: DESEC: support init command (#4279) (@TomOnTime)
  • 877286279e4cb8c8e36c927534f25dff9552d8b5: DNSCALE: support init command (#4281) (@TomOnTime)
  • 635baec79224a92cec34ba2b2764a4502b2bac33: DNSMADEEASY: fix PortalURL (#4467) (@vojtad)
  • 7186be84c5a708799503e7e7c59163987d906184: DNSMADEEASY: support init command (#4283) (@TomOnTime)
  • 237c44c4edb7f988dc50449a7dc2496f651fec82: FORTIGATE: support init command (#4284) (@TomOnTime)
  • 257953302ad7d8625f1b50924069fc9d21a594e9: GANDI_V5: add HTTPS, NAPTR, LOC, OPENPGPKEY and NVCB records (#4387) (@francois2metz)
  • 3d0372b83ede0707f4f1d33c5a72aa8810e0a310: GIGAHOST: Add Gigahost DNS provider (#4394) (@jochristian)
  • ea09988cac956599e93b5dc0abc567a7ad2f34cd: JOKER: support init command (#4294) (@TomOnTime)
  • ff7b5610360df3fd7b25745356645f6e1ac7c3b1: LINODE: support init command (#4295) (@TomOnTime)
  • d1b5dcb23b75f6830043655add5d616a39042ec5: LuaDNS: Skip changing nameserver TTL (#4470) (@riku22)
  • ec83f32129fb0042a166db792d8f54f765369b93: LuaDNS: add integration test support (#4472) (@riku22)
  • fa9626bd21f65ea54f656fceefda41e519506297: MIKROTIK: support init command (#4297) (@TomOnTime)
  • cd0d84bc8bf6bfe90efc442edf659fdf03a33d28: NETBIRD: Add apiurl creds argument (#4486) (@3l0w)
  • b2fe8df325a938de4af57859ce3af31703d5f417: PORKBUN: support init command (#4418) (@imlonghao)
  • b7d62d010a398212628ac43cf5fcf42c2a8bed6c: ROUTE53: Enable SOA record editing (#4402) (@istenrot)
  • d0166afc677ebde6ddd4b6e0e683ee9afa3d9e31: ROUTE53: Enable SOA record editing, v2 (#4406) (@istenrot)
  • a0f8f19c6a943d54ff1fd7ac9f716ffb14414bd2: Revert "ROUTE53: Enable SOA record editing (#4402)" (#4403) (@TomOnTime)
  • 9328279d9012685db390f197d75f0e3498d218e1: SCALEWAY: Add Scaleway DNS provider (#4462) (@alessiopcc)
  • 8f70e869b73f3e2fc3cb8477ee21aba68bfdec7a: TENCENTDNS: Support line and weight metadata (#4482) (@5aaee9)

Documentation:

  • ce8d993698dd4c4f39a8e6bde0c6222a549c88a6: DOCS: Change "Feature Flags" to "Feature Summary" (#4474) (@TomOnTime)
  • 5143ffd062b4d3bf182af745012bae64d6e3cb28: DOCS: every provider doc includes feature flags automatically (#4173) (@chicks-net)

CI/CD:

  • df8100e79dd3f6cf98814e9f33949d62febf89ee: Build(deps): Bump actions/cache from 5.0.5 to 6.0.0 (#4397) (@dependabot[bot])
  • b40aa654f6e602b0af9a42b5a7f13eb4e05f6148: Build(deps): Bump actions/cache from 6.0.0 to 6.1.0 (#4408) (@dependabot[bot])
  • e60e683d068ee9dcba3d8a4898a6a0e8041eb722: Build(deps): Bump actions/checkout from 6 to 7 (#4398) (@dependabot[bot])
  • a804cea7dbf493326b31f6115cef5689939cc09f: Build(deps): Bump actions/setup-node from 6 to 7 (#4477) (@dependabot[bot])
  • 566f1687b26a81bf075e82b4d83fecfc994f7709: Build(deps): Bump alpine from 3.23.4 to 3.24.1 (#4407) (@dependabot[bot])
  • d3cd6edccd11055384fa2a5f2f568e8ead9ad710: Build(deps): Bump go.mongodb.org/mongo-driver from 1.13.1 to 1.17.7 (#4386) (@dependabot[bot])
  • 8cfbff44f87d0fab46e92d1e8b1bd21a086e475b: Build(deps): Bump js-yaml from 4.1.1 to 4.2.0 (#4384) (@dependabot[bot])
  • 4673302402104cc34838bbb8cd72c3b237ec7556: Build(deps): Bump ws from 8.20.1 to 8.21.0 (#4385) (@dependabot[bot])

Dependencies:

  • 64beb5a3f0bb75e88dc95b0cb1e990b13d74f007: CHORE: Update dependencies (#4404) (@TomOnTime)
  • a6288ff03de5238e8475c45a8c3c7ab7e8558714: CHORE: Update dependencies (#4413) (@TomOnTime)
  • 41f07494107c0a46dac8d0b17a2dadcfb7a6e6df: CHORE: Update dependencies (#4457) (@TomOnTime)
  • ee3c4cd7353cc03b48ace4e965e4ba2574a70141: CHORE: Update dependencies (#4506) (@TomOnTime)
  • 76266855f1bdedc37acebb1c01a8a61ae9bf83b0: CHORE: Update dependencies (#4507) (@TomOnTime)

Other changes and improvements:

  • 237650bb360da055ae059257745430375593cd8e: BACKPORT: Make merge to release_candidate_v5 easier (#4445) (@TomOnTime)
  • 71cdc59a067a039bc71522edb2593f0822f397e7: CHORE: Add utilities: ToFqdnWithDot(), ToFqdnNoDot(), ToShort() (#4502) (@TomOnTime)
  • b6faabc2c543d35069dacb2b1a0cdf30e176ce0a: CHORE: Fix GoReleaser to skip release candidates (#4485) (@TomOnTime)
  • bf4bfa15cdd2276cb4b5f4119501937d36c959e2: CHORE: Move NewDomainConfig (#4443) (@TomOnTime)
  • 42ad458c9b7871d4125ba4dbe34bae2a8398161f: HETZNER: remove defunct provider (#4456) (@das7pad)
  • 7ba346ef9b9a8a4e572da760a152b52efcb3ca46: Misc fixes: GANDI_V5, SVCB/HTTPS records, linting and more (#4399) (@TomOnTime)
  • ed603bfb6fc02167313c00e21eb4f7bda0bef44e: REFACTOR: Add models.MustNewDomainConfig for test fixtures (#4458) (@TomOnTime)
  • 0fb9c591501718c292729ffc731333df58c06bc5: REFACTOR: Backport changes from release_candidate_v5 (#4442) (@TomOnTime)
  • 1ae213e120f4cb8cbcd5de45eabb185310a87d84: REFACTOR: Change signature of EnsureZoneExists to include "dc" (#4441) (@TomOnTime)
  • c8d102a06c38bffbf5a24f78286b133704da7895: Remove v5 files that crept into main (#4505) (@TomOnTime)
  • 3a2f06f916d188ae84ac79e4c0d6749c4914f981: TEST: Add validations and tests for SOA records to reject multiple SOAs (#4417) (@istenrot)

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 trust --formula dnscontrol/tap/dnscontrol
brew install DNSControl/tap/dnscontrol
Using 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 preview

Anywhere 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@main

Update

Update to the latest version depends on how you choose to install dnscontrol on your machine.

Update with Homebrew

brew upgrade DNSControl/tap/dnscontrol

Alternatively, you can grab the latest binary (or the apt/rpm/deb package) from this page.

Breaking Changes

  • Removed HETZNER provider; migrate to HETZNERV2.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track DNSControl

Get notified when new releases ship.

Sign up free

About DNSControl

Infrastructure as code for DNS!

All releases →

Related context

Earlier breaking changes

  • v4.41.0 REV() will switch from RFC2317 to RFC4183 in v5.0 (breaking change)
  • v4.40.0 REV() will switch from RFC2317 to RFC4183 in upcoming v5.0 (breaking change)
  • v4.39.0 REV() will switch from RFC2317 to RFC4183 in v5.0, a breaking change.
  • v4.38.0 `dnscontrol get-zones` drops older syntax support, changing behavior
  • v4.38.0 REV() will switch from RFC2317 to RFC4183 in v5.0, a breaking change for affected configurations

Beta — feedback welcome: [email protected]