diff --git a/documentation/providers/powerdns.md b/documentation/providers/powerdns.md index beaa9b40b..f7af567f0 100644 --- a/documentation/providers/powerdns.md +++ b/documentation/providers/powerdns.md @@ -29,13 +29,19 @@ Following metadata are available: 'a.example.com.', 'b.example.com.' ], - 'dnssec_on_create': false + 'dnssec_on_create': false, + 'zone_kind': 'Native', } ``` {% endcode %} - `default_ns` sets the nameserver which are used - `dnssec_on_create` specifies if DNSSEC should be enabled when creating zones +- `zone_kind` is the type that will be used when creating the zone. +
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!** + ## Usage An example configuration: diff --git a/providers/powerdns/dns.go b/providers/powerdns/dns.go index fe50e7188..c3878a550 100644 --- a/providers/powerdns/dns.go +++ b/providers/powerdns/dns.go @@ -86,6 +86,7 @@ func (dsp *powerdnsProvider) EnsureZoneExists(domain string) error { Type: zones.ZoneTypeZone, DNSSec: dsp.DNSSecOnCreate, Nameservers: dsp.DefaultNS, + Kind: dsp.ZoneKind, }) return err } diff --git a/providers/powerdns/powerdnsProvider.go b/providers/powerdns/powerdnsProvider.go index fbaf7738f..38d084631 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/v3/models" "github.com/StackExchange/dnscontrol/v3/providers" @@ -40,8 +41,9 @@ type powerdnsProvider struct { APIKey string APIUrl string ServerName string - DefaultNS []string `json:"default_ns"` - DNSSecOnCreate bool `json:"dnssec_on_create"` + DefaultNS []string `json:"default_ns"` + DNSSecOnCreate bool `json:"dnssec_on_create"` + ZoneKind zones.ZoneKind `json:"zone_kind"` nameservers []*models.Nameserver }