NEW PROVIDER: Netnod primary DNS#4191
Conversation
Add a DNSControl provider for Netnod primary DNS API. Provider is loosely based on the PowerDNS provider.
|
Thanks! Super glad to receive this! Right now the project is in transition but I hope to be able to address this once we've moved to our new org. |
|
Hi @TomOnTime, thanks for the reply! Let me know if there is anything I can do to help. Is the project being transitioned away from the |
Yes, it will soon be in the dnscontrol organization. Tom |
|
I handled the conflicts due to package update and renames ( @vilhelmprytz Do double check that I didn't mess something up. |
|
Oh, wait, I used the web-GUI and obviously something funny happened. |
Fixed typos / artifacts from web-GUI based merge.
Fixed web-GUI based merge artifacts.
TomOnTime
left a comment
There was a problem hiding this comment.
Everything looks good. I'm requesting @cafferata review the docs.
nitpick: Would you please rename providers/netnod/diff.go to providers/netnod/records.go ? Thanks!
|
@TomOnTime Certainly, now changed. |
|
Thanks! |
|
Greetings! Thank you for your patience while we migrated to the new GitHub org. Now that the migration is complete, please rebase. Thank you. |
|
@TomOnTime Thanks, now pushed! |
|
Hi there! Oops... things move quickly and another rebase to main is needed. Yes, I'd love to have this added to the automated tests. Please see https://docs.dnscontrol.org/developer-info/byo-secrets for instructions. |
cafferata
left a comment
There was a problem hiding this comment.
Thanks for adding Netnod support! A few suggestions on the documentation and one build issue.
|
|
||
| ## Activation | ||
|
|
||
| See the [Netnod DNS](https://www.netnod.se/dns/dns-enterprise-services). |
There was a problem hiding this comment.
This is a sentence fragment. Consider expanding it to explain how users obtain API credentials, similar to how other provider docs handle this section.
There was a problem hiding this comment.
The API credentials are obtained by contacting Netnod using the details on the linked page. Is there any specific detail you think should be added?
|
Optionally: since #4208 landed before this PR, would you be open to implementing |
|
The integration tests pass locally when I try them, but only when I change this in --- a/pkg/diff2/analyze.go
+++ b/pkg/diff2/analyze.go
@@ -267,7 +267,7 @@ func diffTargets(existing, desired []targetConfig) ChangeList {
var unquoted, quoted string
if _, ok := echs[v.rec.NameFQDN]; ok {
unquoted = fmt.Sprintf("ech=%s", echs[v.rec.NameFQDN])
- quoted = fmt.Sprintf("ech=%q", echs[v.rec.NameFQDN])
+ quoted = fmt.Sprintf("ech=%s", echs[v.rec.NameFQDN])
} else {
unquoted = ""
quoted = ""Without this change, |
@gucci-on-fleek: Any suggestions? (git blame lists you as the last to modify this) |
The quoted form should definitely be allowed according to RFC 9848 §3, but since this is guaranteed to be base64-encoded text, the syntax in RFC 9460 §A means that it should be safe to omit the quotes. The version with quotes seems "better" in the sense that it's always safe to use quotes around a string and only sometimes okay to omit them (for |
Add a DNSControl provider for Netnod primary DNS API. Provider is loosely based on the PowerDNS provider.
diff2.ByRecordSet(), updates are batched per label+typeCapabilities
A, AAAA, ALIAS, CAA, CNAME, HTTPS, MX, NS, PTR, SRV, TLSA, TXT (
CanGetZones,DocCreateDomains,DocDualHost)We can offer an API key for automated testing, if needed.
Please create the GitHub label 'provider-NETNOD'.
Fixes #4192.