From d93308f54b263632fd24d10c3734e067941f7922 Mon Sep 17 00:00:00 2001 From: dkim1970 <118921779+dkim1970@users.noreply.github.com> Date: Fri, 18 Aug 2023 15:50:21 +0100 Subject: [PATCH] POWERDNS: Add option to set SOA-EDIT-API when creating zones via the API (#2458) Co-authored-by: Tom Limoncelli --- documentation/providers/powerdns.md | 5 ++++- providers/powerdns/dns.go | 1 + providers/powerdns/powerdnsProvider.go | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/documentation/providers/powerdns.md b/documentation/providers/powerdns.md index 96ab12281..87e5ae86a 100644 --- a/documentation/providers/powerdns.md +++ b/documentation/providers/powerdns.md @@ -41,7 +41,10 @@ Following metadata are available:
Can be one of `Native`, `Master` or `Slave`, when not specified it defaults to `Native`.
Please see [PowerDNS documentation](https://doc.powerdns.com/authoritative/modes-of-operation.html) for explanation of the kinds.
**Note that these tokens are case-sensitive!** - +- `soa_edit_api` is the default SOA serial method that is used for zone created with the API +
Can be one of `DEFAULT`, `INCREASE`, `EPOCH`, `SOA-EDIT` or `SOA-EDIT-INCREASE`, default format is YYYYMMDD01. +
Please see [PowerDNS SOA-EDIT-DNSUPDATE documentation](https://doc.powerdns.com/authoritative/dnsupdate.html#soa-edit-dnsupdate-settings) for explanation of the kinds. +
**Note that these tokens are case-sensitive!** ## Usage An example configuration: diff --git a/providers/powerdns/dns.go b/providers/powerdns/dns.go index c9df0935f..140f1c74c 100644 --- a/providers/powerdns/dns.go +++ b/providers/powerdns/dns.go @@ -87,6 +87,7 @@ func (dsp *powerdnsProvider) EnsureZoneExists(domain string) error { DNSSec: dsp.DNSSecOnCreate, Nameservers: dsp.DefaultNS, Kind: dsp.ZoneKind, + SOAEditAPI: dsp.SOAEditAPI, }) return err } diff --git a/providers/powerdns/powerdnsProvider.go b/providers/powerdns/powerdnsProvider.go index 8b299500d..7fbbe3c85 100644 --- a/providers/powerdns/powerdnsProvider.go +++ b/providers/powerdns/powerdnsProvider.go @@ -3,6 +3,7 @@ package powerdns import ( "encoding/json" "fmt" + "github.com/mittwald/go-powerdns/apis/zones" "github.com/StackExchange/dnscontrol/v4/models" @@ -44,6 +45,7 @@ type powerdnsProvider struct { DefaultNS []string `json:"default_ns"` DNSSecOnCreate bool `json:"dnssec_on_create"` ZoneKind zones.ZoneKind `json:"zone_kind"` + SOAEditAPI string `json:"soa_edit_api,omitempty"` nameservers []*models.Nameserver }