mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-09-20 14:56:20 +08:00
Format provider name as a link also to its corresponding markdown file (#2182)
Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
This commit is contained in:
parent
2162e19134
commit
996f18797b
|
@ -38,7 +38,7 @@ func markdownTable(matrix *FeatureMatrix) (string, error) {
|
||||||
featureMap := matrix.Providers[providerName]
|
featureMap := matrix.Providers[providerName]
|
||||||
|
|
||||||
var tableDataRow []string
|
var tableDataRow []string
|
||||||
tableDataRow = append(tableDataRow, "`"+providerName+"`")
|
tableDataRow = append(tableDataRow, "[`"+providerName+"`](providers/"+strings.ToLower(providerName)+".md)")
|
||||||
for _, featureName := range matrix.Features {
|
for _, featureName := range matrix.Features {
|
||||||
tableDataRow = append(tableDataRow, featureEmoji(featureMap, featureName))
|
tableDataRow = append(tableDataRow, featureEmoji(featureMap, featureName))
|
||||||
}
|
}
|
||||||
|
@ -76,20 +76,20 @@ func matrixData() *FeatureMatrix {
|
||||||
OfficialSupport = "Official Support" // vs. community supported
|
OfficialSupport = "Official Support" // vs. community supported
|
||||||
ProviderDNSProvider = "DNS Provider"
|
ProviderDNSProvider = "DNS Provider"
|
||||||
ProviderRegistrar = "Registrar"
|
ProviderRegistrar = "Registrar"
|
||||||
DomainModifierAlias = "ALIAS"
|
DomainModifierAlias = "[`ALIAS`](functions/domain/ALIAS.md)"
|
||||||
DomainModifierDnssec = "AUTODNSSEC"
|
DomainModifierCaa = "[`CAA`](functions/domain/CAA.md)"
|
||||||
DomainModifierCaa = "CAA"
|
DomainModifierDnssec = "[`AUTODNSSEC`](functions/domain/AUTODNSSEC_ON.md)"
|
||||||
DomainModifierLoc = "LOC"
|
DomainModifierLoc = "[`LOC`](functions/domain/LOC.md)"
|
||||||
DomainModifierPtr = "PTR"
|
DomainModifierNaptr = "[`NAPTR`](functions/domain/NAPTR.md)"
|
||||||
DomainModifierNaptr = "NAPTR"
|
DomainModifierPtr = "[`PTR`](functions/domain/PTR.md)"
|
||||||
DomainModifierSoa = "SOA"
|
DomainModifierSoa = "[`SOA`](functions/domain/SOA.md)"
|
||||||
DomainModifierSrv = "SRV"
|
DomainModifierSrv = "[`SRV`](functions/domain/SRV.md)"
|
||||||
DomainModifierSshfp = "SSHFP"
|
DomainModifierSshfp = "[`SSHFP`](functions/domain/SSHFP.md)"
|
||||||
DomainModifierTlsa = "TLSA"
|
DomainModifierTlsa = "[`TLSA`](functions/domain/TLSA.md)"
|
||||||
DomainModifierDs = "DS"
|
DomainModifierDs = "[`DS`](functions/domain/DS.md)"
|
||||||
DualHost = "dual host"
|
DualHost = "dual host"
|
||||||
CreateDomains = "create-domains"
|
CreateDomains = "create-domains"
|
||||||
NoPurge = "NO_PURGE"
|
NoPurge = "[`NO_PURGE`](functions/domain/NO_PURGE.md)"
|
||||||
GetZones = "get-zones"
|
GetZones = "get-zones"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -100,11 +100,11 @@ func matrixData() *FeatureMatrix {
|
||||||
ProviderDNSProvider,
|
ProviderDNSProvider,
|
||||||
ProviderRegistrar,
|
ProviderRegistrar,
|
||||||
DomainModifierAlias,
|
DomainModifierAlias,
|
||||||
DomainModifierDnssec,
|
|
||||||
DomainModifierCaa,
|
DomainModifierCaa,
|
||||||
|
DomainModifierDnssec,
|
||||||
DomainModifierLoc,
|
DomainModifierLoc,
|
||||||
DomainModifierPtr,
|
|
||||||
DomainModifierNaptr,
|
DomainModifierNaptr,
|
||||||
|
DomainModifierPtr,
|
||||||
DomainModifierSoa,
|
DomainModifierSoa,
|
||||||
DomainModifierSrv,
|
DomainModifierSrv,
|
||||||
DomainModifierSshfp,
|
DomainModifierSshfp,
|
||||||
|
|
|
@ -72,12 +72,59 @@ go generate
|
||||||
popd
|
popd
|
||||||
```
|
```
|
||||||
|
|
||||||
- Add this feature to the feature matrix in `dnscontrol/build/generate/featureMatrix.go` (Add it to the variable `matrix` then add it later in the file with a `setCapability()` statement.
|
- Add this feature to the feature matrix in `dnscontrol/build/generate/featureMatrix.go`. Add it to the variable `matrix` maintaining alphabetical ordering, which should look like this:
|
||||||
|
|
||||||
|
{% code title="dnscontrol/build/generate/featureMatrix.go" %}
|
||||||
|
```diff
|
||||||
|
func matrixData() *FeatureMatrix {
|
||||||
|
const (
|
||||||
|
...
|
||||||
|
DomainModifierCaa = "[`CAA`](functions/domain/CAA.md)"
|
||||||
|
+ DomainModifierFoo = "[`FOO`](functions/domain/FOO.md)"
|
||||||
|
DomainModifierLoc = "[`LOC`](functions/domain/LOC.md)"
|
||||||
|
...
|
||||||
|
)
|
||||||
|
matrix := &FeatureMatrix{
|
||||||
|
Providers: map[string]FeatureMap{},
|
||||||
|
Features: []string{
|
||||||
|
...
|
||||||
|
DomainModifierCaa,
|
||||||
|
+ DomainModifierFoo,
|
||||||
|
DomainModifierLoc,
|
||||||
|
...
|
||||||
|
},
|
||||||
|
}
|
||||||
|
```
|
||||||
|
{% endcode %}
|
||||||
|
|
||||||
|
then add it later in the file with a `setCapability()` statement, which should look like this:
|
||||||
|
|
||||||
|
{% code title="dnscontrol/build/generate/featureMatrix.go" %}
|
||||||
|
```diff
|
||||||
|
...
|
||||||
|
+ setCapability(
|
||||||
|
+ DomainModifierFoo,
|
||||||
|
+ providers.CanUseFOO,
|
||||||
|
+ )
|
||||||
|
...
|
||||||
|
```
|
||||||
|
{% endcode %}
|
||||||
|
|
||||||
- Add the capability to the list of features that zones are validated
|
- Add the capability to the list of features that zones are validated
|
||||||
against (i.e. if you want DNSControl to report an error if this
|
against (i.e. if you want DNSControl to report an error if this
|
||||||
feature is used with a DNS provider that doesn't support it). That's
|
feature is used with a DNS provider that doesn't support it). That's
|
||||||
in the `checkProviderCapabilities` function in
|
in the `checkProviderCapabilities` function in
|
||||||
`pkg/normalize/validate.go`.
|
`pkg/normalize/validate.go`. It should look like this:
|
||||||
|
|
||||||
|
{% code title="pkg/normalize/validate.go" %}
|
||||||
|
```diff
|
||||||
|
var providerCapabilityChecks = []pairTypeCapability{
|
||||||
|
...
|
||||||
|
+ capabilityCheck("FOO", providers.CanUseFOO),
|
||||||
|
...
|
||||||
|
```
|
||||||
|
{% endcode %}
|
||||||
|
|
||||||
- Mark the `bind` provider as supporting this record type by updating `dnscontrol/providers/bind/bindProvider.go` (look for `providers.CanUse` and you'll see what to do).
|
- Mark the `bind` provider as supporting this record type by updating `dnscontrol/providers/bind/bindProvider.go` (look for `providers.CanUse` and you'll see what to do).
|
||||||
|
|
||||||
DNSControl will warn/error if this new record is used with a
|
DNSControl will warn/error if this new record is used with a
|
||||||
|
|
|
@ -12,53 +12,53 @@ a provider that supports it, we'd love your contribution to ensure it works corr
|
||||||
If a feature is definitively not supported for whatever reason, we would also like a PR to clarify why it is not supported, and fill in this entire matrix.
|
If a feature is definitively not supported for whatever reason, we would also like a PR to clarify why it is not supported, and fill in this entire matrix.
|
||||||
|
|
||||||
<!-- provider-matrix-start -->
|
<!-- provider-matrix-start -->
|
||||||
| Provider name | Official Support | DNS Provider | Registrar | ALIAS | AUTODNSSEC | CAA | LOC | PTR | NAPTR | SOA | SRV | SSHFP | TLSA | DS | dual host | create-domains | NO_PURGE | get-zones |
|
| Provider name | Official Support | DNS Provider | Registrar | [`ALIAS`](functions/domain/ALIAS.md) | [`AUTODNSSEC`](functions/domain/AUTODNSSEC_ON.md) | [`CAA`](functions/domain/CAA.md) | [`LOC`](functions/domain/LOC.md) | [`NAPTR`](functions/domain/NAPTR.md) | [`PTR`](functions/domain/PTR.md) | [`SOA`](functions/domain/SOA.md) | [`SRV`](functions/domain/SRV.md) | [`SSHFP`](functions/domain/SSHFP.md) | [`TLSA`](functions/domain/TLSA.md) | [`DS`](functions/domain/DS.md) | dual host | create-domains | [`NO_PURGE`](functions/domain/NO_PURGE.md) | get-zones |
|
||||||
| ------------- | ---------------- | ------------ | --------- | ----- | ---------- | --- | --- | --- | ----- | --- | --- | ----- | ---- | -- | --------- | -------------- | -------- | --------- |
|
| ------------- | ---------------- | ------------ | --------- | ------------------------------------ | ------------------------------------------------- | -------------------------------- | -------------------------------- | ------------------------------------ | -------------------------------- | -------------------------------- | -------------------------------- | ------------------------------------ | ---------------------------------- | ------------------------------ | --------- | -------------- | ------------------------------------------ | --------- |
|
||||||
| `AKAMAIEDGEDNS` | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
|
| [`AKAMAIEDGEDNS`](providers/akamaiedgedns.md) | ❌ | ✅ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
|
||||||
| `AUTODNS` | ❌ | ✅ | ❌ | ✅ | ❔ | ❌ | ❔ | ❌ | ❔ | ❔ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
| [`AUTODNS`](providers/autodns.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ❌ | ❔ | ❔ | ❌ | ❔ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
||||||
| `AXFRDDNS` | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ❌ | ❌ | ❌ | ❌ |
|
| [`AXFRDDNS`](providers/axfrddns.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ❌ | ❌ | ❌ | ❌ |
|
||||||
| `AZURE_DNS` | ✅ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ✅ | ❌ | ❔ | ✅ | ❌ | ❌ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
| [`AZURE_DNS`](providers/azure_dns.md) | ✅ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ✅ | ❔ | ✅ | ❌ | ❌ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `BIND` | ✅ | ✅ | ❌ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
|
| [`BIND`](providers/bind.md) | ✅ | ✅ | ❌ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
|
||||||
| `CLOUDFLAREAPI` | ✅ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ❔ | ❌ | ✅ | ✅ | ✅ |
|
| [`CLOUDFLAREAPI`](providers/cloudflareapi.md) | ✅ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ❌ | ✅ | ✅ | ✅ |
|
||||||
| `CLOUDNS` | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
| [`CLOUDNS`](providers/cloudns.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||||
| `CSCGLOBAL` | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ✅ |
|
| [`CSCGLOBAL`](providers/cscglobal.md) | ✅ | ✅ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ✅ |
|
||||||
| `DESEC` | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ |
|
| [`DESEC`](providers/desec.md) | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ |
|
||||||
| `DIGITALOCEAN` | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
| [`DIGITALOCEAN`](providers/digitalocean.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||||
| `DNSIMPLE` | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
| [`DNSIMPLE`](providers/dnsimple.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
||||||
| `DNSMADEEASY` | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
| [`DNSMADEEASY`](providers/dnsmadeeasy.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `DNSOVERHTTPS` | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
| [`DNSOVERHTTPS`](providers/dnsoverhttps.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
||||||
| `DOMAINNAMESHOP` | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ |
|
| [`DOMAINNAMESHOP`](providers/domainnameshop.md) | ❌ | ✅ | ❌ | ❔ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ |
|
||||||
| `EASYNAME` | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
| [`EASYNAME`](providers/easyname.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
||||||
| `EXOSCALE` | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ❔ | ❌ | ❔ | ❌ | ❌ | ✅ | ❔ |
|
| [`EXOSCALE`](providers/exoscale.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ❔ | ❌ | ❔ | ❌ | ❌ | ✅ | ❔ |
|
||||||
| `GANDI_V5` | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ✅ |
|
| [`GANDI_V5`](providers/gandi_v5.md) | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ✅ |
|
||||||
| `GCLOUD` | ✅ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
| [`GCLOUD`](providers/gcloud.md) | ✅ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `GCORE` | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
| [`GCORE`](providers/gcore.md) | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `HEDNS` | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
| [`HEDNS`](providers/hedns.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `HETZNER` | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ❔ | ❔ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
| [`HETZNER`](providers/hetzner.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `HEXONET` | ❌ | ✅ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ |
|
| [`HEXONET`](providers/hexonet.md) | ❌ | ✅ | ✅ | ❌ | ❔ | ✅ | ❔ | ❔ | ✅ | ❔ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ |
|
||||||
| `HOSTINGDE` | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| [`HOSTINGDE`](providers/hostingde.md) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `INTERNETBS` | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
| [`INTERNETBS`](providers/internetbs.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
||||||
| `INWX` | ❌ | ✅ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
| [`INWX`](providers/inwx.md) | ❌ | ✅ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `LINODE` | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
| [`LINODE`](providers/linode.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
||||||
| `LOOPIA` | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
|
| [`LOOPIA`](providers/loopia.md) | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
|
||||||
| `LUADNS` | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
| [`LUADNS`](providers/luadns.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `MSDNS` | ✅ | ✅ | ❌ | ❌ | ❔ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
| [`MSDNS`](providers/msdns.md) | ✅ | ✅ | ❌ | ❌ | ❔ | ❌ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
||||||
| `NAMECHEAP` | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ❌ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ❌ | ❌ | ❌ | ✅ |
|
| [`NAMECHEAP`](providers/namecheap.md) | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ❌ | ❔ | ❌ | ❔ | ❌ | ❌ | ❌ | ✅ |
|
||||||
| `NAMEDOTCOM` | ❌ | ✅ | ✅ | ✅ | ❔ | ❔ | ❌ | ❌ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ | ✅ |
|
| [`NAMEDOTCOM`](providers/namedotcom.md) | ❌ | ✅ | ✅ | ✅ | ❔ | ❔ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ✅ | ❌ | ✅ | ✅ |
|
||||||
| `NETCUP` | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❌ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ❌ |
|
| [`NETCUP`](providers/netcup.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ✅ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ❌ |
|
||||||
| `NETLIFY` | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
| [`NETLIFY`](providers/netlify.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
||||||
| `NS1` | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| [`NS1`](providers/ns1.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ❔ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `OPENSRS` | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
| [`OPENSRS`](providers/opensrs.md) | ❌ | ❌ | ✅ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
||||||
| `ORACLE` | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
| [`ORACLE`](providers/oracle.md) | ❌ | ✅ | ❌ | ✅ | ❔ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `OVH` | ❌ | ✅ | ✅ | ❌ | ❔ | ✅ | ❔ | ❌ | ❔ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ✅ | ✅ |
|
| [`OVH`](providers/ovh.md) | ❌ | ✅ | ✅ | ❌ | ❔ | ✅ | ❔ | ❔ | ❌ | ❔ | ✅ | ✅ | ✅ | ❔ | ✅ | ❌ | ✅ | ✅ |
|
||||||
| `PACKETFRAME` | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ |
|
| [`PACKETFRAME`](providers/packetframe.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❔ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ❌ | ❌ | ✅ | ❔ |
|
||||||
| `PORKBUN` | ❌ | ✅ | ❌ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
| [`PORKBUN`](providers/porkbun.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ❔ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ |
|
||||||
| `POWERDNS` | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
| [`POWERDNS`](providers/powerdns.md) | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ | ❔ | ✅ | ✅ | ❔ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `ROUTE53` | ✅ | ✅ | ✅ | ❌ | ❔ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
| [`ROUTE53`](providers/route53.md) | ✅ | ✅ | ✅ | ❌ | ❔ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ❔ | ❔ | ❔ | ✅ | ✅ | ✅ | ✅ |
|
||||||
| `RWTH` | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ✅ | ❌ | ❔ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
| [`RWTH`](providers/rwth.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ✅ | ❔ | ✅ | ✅ | ❌ | ❔ | ❌ | ❌ | ✅ | ✅ |
|
||||||
| `SOFTLAYER` | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
| [`SOFTLAYER`](providers/softlayer.md) | ❌ | ✅ | ❌ | ❔ | ❔ | ❔ | ❌ | ❔ | ❔ | ❔ | ✅ | ❔ | ❔ | ❔ | ❔ | ❌ | ✅ | ❔ |
|
||||||
| `TRANSIP` | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❔ | ✅ | ❔ | ✅ | ✅ | ✅ | ❌ | ❔ | ❌ | ✅ | ✅ |
|
| [`TRANSIP`](providers/transip.md) | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❔ | ❔ | ✅ | ✅ | ✅ | ❌ | ❔ | ❌ | ✅ | ✅ |
|
||||||
| `VULTR` | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ❌ | ❔ | ❔ | ✅ | ✅ | ❌ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
| [`VULTR`](providers/vultr.md) | ❌ | ✅ | ❌ | ❌ | ❔ | ✅ | ❌ | ❔ | ❌ | ❔ | ✅ | ✅ | ❌ | ❔ | ❔ | ✅ | ✅ | ✅ |
|
||||||
<!-- provider-matrix-end -->
|
<!-- provider-matrix-end -->
|
||||||
|
|
||||||
### Providers with "official support"
|
### Providers with "official support"
|
||||||
|
@ -74,13 +74,13 @@ Providers in this category and their maintainers are:
|
||||||
|
|
||||||
|Name|Maintainer|
|
|Name|Maintainer|
|
||||||
|---|---|
|
|---|---|
|
||||||
|`AZURE_DNS`|@vatsalyagoel|
|
|[`AZURE_DNS`](providers/azure_dns.md)|@vatsalyagoel|
|
||||||
|`BIND`|@tlimoncelli|
|
|[`BIND`](providers/bind.md)|@tlimoncelli|
|
||||||
|`CLOUDFLAREAPI`|@tresni|
|
|[`CLOUDFLAREAPI`](providers/cloudflareapi.md)|@tresni|
|
||||||
|`CSCGLOBAL`|@mikenz|
|
|[`CSCGLOBAL`](providers/cscglobal.md)|@mikenz|
|
||||||
|`GCLOUD`|@riyadhalnur|
|
|[`GCLOUD`](providers/gcloud.md)|@riyadhalnur|
|
||||||
|`MSDNS`|@tlimoncelli|
|
|[`MSDNS`](providers/msdns.md)|@tlimoncelli|
|
||||||
|`ROUTE53`|@tresni|
|
|[`ROUTE53`](providers/route53.md)|@tresni|
|
||||||
|
|
||||||
### Providers with "contributor support"
|
### Providers with "contributor support"
|
||||||
|
|
||||||
|
@ -103,43 +103,44 @@ Providers in this category and their maintainers are:
|
||||||
|
|
||||||
|Name|Maintainer|
|
|Name|Maintainer|
|
||||||
|---|---|
|
|---|---|
|
||||||
|`AKAMAIEDGEDNS`|@svernick|
|
|[`AKAMAIEDGEDNS`](providers/akamaiedgedns.md)|@svernick|
|
||||||
|`AXFRDDNS`|@hnrgrgr|
|
|[`AXFRDDNS`](providers/axfrddns.md)|@hnrgrgr|
|
||||||
|`CLOUDFLAREAPI`|@tresni|
|
|[`CLOUDFLAREAPI`](providers/cloudflareapi.md)|@tresni|
|
||||||
|`CLOUDNS`|@pragmaton|
|
|[`CLOUDNS`](providers/CLOUDNS.md)|@pragmaton|
|
||||||
|`CSCGLOBAL`|@Air-New-Zealand|
|
|[`CSCGLOBAL`](providers/cscglobal.md)|@Air-New-Zealand|
|
||||||
|`DESEC`|@D3luxee|
|
|[`DESEC`](providers/desec.md)|@D3luxee|
|
||||||
|`DIGITALOCEAN`|@Deraen|
|
|[`DIGITALOCEAN`](providers/digitalocean.md)|@Deraen|
|
||||||
|`DNSIMPLE`|@onlyhavecans|
|
|[`DNSIMPLE`](providers/dnsimple.md)|@onlyhavecans|
|
||||||
|`DNSMADEEASY`|@vojtad|
|
|[`DNSMADEEASY`](providers/dnsmadeeasy.md)|@vojtad|
|
||||||
|`DNSOVERHTTPS`|@mikenz|
|
|[`DNSOVERHTTPS`](providers/dnsoverhttps.md)|@mikenz|
|
||||||
|`DOMAINNAMESHOP`|@SimenBai|
|
|[`DOMAINNAMESHOP`](providers/domainnameshop.md)|@SimenBai|
|
||||||
|`EASYNAME`|@tresni|
|
|[`EASYNAME`](providers/easyname.md)|@tresni|
|
||||||
|`EXOSCALE`|@pierre-emmanuelJ|
|
|[`EXOSCALE`](providers/exoscale.md)|@pierre-emmanuelJ|
|
||||||
|`GANDI_V5`|@TomOnTime|
|
|[`GANDI_V5`](providers/gandi_v5.md)|@TomOnTime|
|
||||||
|`GCORE`|@xddxdd|
|
|[`GCORE`](providers/gcore.md)|@xddxdd|
|
||||||
|`HEDNS`|@rblenkinsopp|
|
|[`HEDNS`](providers/hedns.md)|@rblenkinsopp|
|
||||||
|`HETZNER`|@das7pad|
|
|[`HETZNER`](providers/hetzner.md)|@das7pad|
|
||||||
|`HEXONET`|@KaiSchwarz-cnic|
|
|[`HEXONET`](providers/hexonet.md)|@KaiSchwarz-cnic|
|
||||||
|`HOSTINGDE`|@membero|
|
|[`HOSTINGDE`](providers/hostingde.md)|@membero|
|
||||||
|`INTERNETBS`|@pragmaton|
|
|[`INTERNETBS`](providers/internetbs.md)|@pragmaton|
|
||||||
|`INWX`|@svenpeter42|
|
|[`INWX`](providers/inwx.md)|@svenpeter42|
|
||||||
|`LINODE`|@koesie10|
|
|[`LINODE`](providers/linode.md)|@koesie10|
|
||||||
|`LUADNS`|@riku22|
|
|[`LOOPIA`](providers/loopia.md)|@systemcrash|
|
||||||
|`NAMECHEAP`|@willpower232|
|
|[`LUADNS`](providers/luadns.md)|@riku22|
|
||||||
|`NETCUP`|@kordianbruck|
|
|[`NAMECHEAP`](providers/namecheap.md)|@willpower232|
|
||||||
|`NETLIFY`|@SphericalKat|
|
|[`NETCUP`](providers/netcup.md)|@kordianbruck|
|
||||||
|`NS1`|@costasd|
|
|[`NETLIFY`](providers/netlify.md)|@SphericalKat|
|
||||||
|`OPENSRS`|@pierre-emmanuelJ|
|
|[`NS1`](providers/ns1.md)|@costasd|
|
||||||
|`ORACLE`|@kallsyms|
|
|[`OPENSRS`](providers/opensrs.md)|@pierre-emmanuelJ|
|
||||||
|`OVH`|@masterzen|
|
|[`ORACLE`](providers/oracle.md)|@kallsyms|
|
||||||
|`PACKETFRAME`|@hamptonmoore|
|
|[`OVH`](providers/ovh.md)|@masterzen|
|
||||||
|`POWERDNS`|@jpbede|
|
|[`PACKETFRAME`](providers/packetframe.md)|@hamptonmoore|
|
||||||
|`ROUTE53`|@tresni|
|
|[`POWERDNS`](providers/powerdns.md)|@jpbede|
|
||||||
|`RWTH`|@MisterErwin|
|
|[`ROUTE53`](providers/route53.md)|@tresni|
|
||||||
|`SOFTLAYER`|@jamielennox|
|
|[`RWTH`](providers/rwth.md)|@MisterErwin|
|
||||||
|`TRANSIP`|@blackshadev|
|
|[`SOFTLAYER`](providers/softlayer.md)|@jamielennox|
|
||||||
|`VULTR`|@pgaskin|
|
|[`TRANSIP`](providers/transip.md)|@blackshadev|
|
||||||
|
|[`VULTR`](providers/vultr.md)|@pgaskin|
|
||||||
|
|
||||||
### Requested providers
|
### Requested providers
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue