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
}