diff --git a/docs/_includes/matrix.html b/docs/_includes/matrix.html
index a96235369..35d66d8bd 100644
--- a/docs/_includes/matrix.html
+++ b/docs/_includes/matrix.html
@@ -158,7 +158,9 @@
|
- |
+
+
+ |
|
|
@@ -190,7 +192,9 @@
|
|
- |
+
+
+ |
|
@@ -258,7 +262,9 @@
|
|
- |
+
+
+ |
|
@@ -284,7 +290,9 @@
|
|
|
- |
+
+
+ |
|
|
diff --git a/providers/dnsimple/dnsimpleProvider.go b/providers/dnsimple/dnsimpleProvider.go
index 84599a1f1..efc4aefa7 100644
--- a/providers/dnsimple/dnsimpleProvider.go
+++ b/providers/dnsimple/dnsimpleProvider.go
@@ -19,11 +19,12 @@ var docNotes = providers.DocumentationNotes{
providers.DocDualHost: providers.Cannot("DNSimple does not allow sufficient control over the apex NS records"),
providers.DocCreateDomains: providers.Cannot(),
providers.DocOfficiallySupported: providers.Cannot(),
+ providers.CanUseTLSA: providers.Cannot(),
}
func init() {
providers.RegisterRegistrarType("DNSIMPLE", newReg)
- providers.RegisterDomainServiceProviderType("DNSIMPLE", newDsp, providers.CanUsePTR, docNotes)
+ providers.RegisterDomainServiceProviderType("DNSIMPLE", newDsp, providers.CanUsePTR, providers.CanUseAlias, providers.CanUseCAA, providers.CanUseSRV, docNotes)
}
const stateRegistered = "registered"
@@ -61,9 +62,14 @@ func (c *DnsimpleApi) GetDomainCorrections(dc *models.DomainConfig) ([]*models.C
if r.Name == "" {
r.Name = "@"
}
- if r.Type == "CNAME" || r.Type == "MX" {
+ if r.Type == "CNAME" || r.Type == "MX" || r.Type == "ALIAS" || r.Type == "SRV" {
r.Content += "."
}
+ // dnsimple adds these odd txt records that mirror the alias records.
+ // they seem to manage them on deletes and things, so we'll just pretend they don't exist
+ if r.Type == "TXT" && strings.HasPrefix(r.Content, "ALIAS for ") {
+ continue
+ }
rec := &models.RecordConfig{
NameFQDN: dnsutil.AddOrigin(r.Name, dc.Name),
Type: r.Type,
@@ -72,9 +78,18 @@ func (c *DnsimpleApi) GetDomainCorrections(dc *models.DomainConfig) ([]*models.C
MxPreference: uint16(r.Priority),
Original: r,
}
+ if r.Type == "CAA" || r.Type == "SRV" {
+ rec.CombinedTarget = true
+ }
actual = append(actual, rec)
}
removeOtherNS(dc)
+ dc.Filter(func(r *models.RecordConfig) bool {
+ if r.Type == "CAA" || r.Type == "SRV" {
+ r.MergeToTarget()
+ }
+ return true
+ })
differ := diff.New(dc)
_, create, delete, modify := differ.IncrementalDiff(actual)
@@ -246,7 +261,6 @@ func (c *DnsimpleApi) createRecordFunc(rc *models.RecordConfig, domainName strin
if err != nil {
return err
}
-
record := dnsimpleapi.ZoneRecord{
Name: dnsutil.TrimDomainName(rc.NameFQDN, domainName),
Type: rc.Type,
@@ -254,7 +268,6 @@ func (c *DnsimpleApi) createRecordFunc(rc *models.RecordConfig, domainName strin
TTL: int(rc.TTL),
Priority: int(rc.MxPreference),
}
-
_, err = client.Zones.CreateRecord(accountId, domainName, record)
if err != nil {
return err
|