Commit graph

427 commits

Author SHA1 Message Date
Tom Limoncelli de4455942b
Refactor RecordConfig: Add getters/setters (#314)
* Replace RecordConfig.Name and .NameFQDN with getters and setters.
* Replace RecordConfig.Target with getters and setters.
* Eliminate the CombinedTarget concept.
* Add RecordConfig.PopulateFromString to reduce code in all providers.
* encode and decode name.com txt records (#315)
* Replace fmt.Errorf with errors.Errorf
2018-02-15 12:02:50 -05:00
Tom Limoncelli 324b1ea930 UPdate static.go 2018-02-09 14:04:07 -05:00
Ismael Peral 06404fdcf9 Fix CAA Support: helpers.js CAA_CRITICAL flag=128 (#318) (#319)
* Update helpers.js CAA_CRITICAL flag=128 (#318)

CAA flag "Issuer Critical Flag" sets first bit (bit 0) to 1 where bit 0 is the 8th bit in the flag, so it's doing the change by left shift 7 positions the value 1.

* Change caa tests

Apply changes for Travis-CI, now caaflag must be 128 instead of 1.

* generated static.go and matrix.html
2018-02-09 14:03:40 -05:00
Craig Peterson 84743bd7f4
Delete 009-reverse.json 2018-02-07 10:38:27 -05:00
Craig Peterson 74bb157bd7
Delete 009-reverse.js 2018-02-07 10:38:18 -05:00
Tom Limoncelli 4b1dc82c9b
Switch from fmt.Error* to errors.Error* (#317) 2018-02-05 16:17:20 -05:00
Tom Limoncelli 65f8fb63f0
Better .gitignore of integration test stuff. (#316) 2018-02-05 10:28:58 -05:00
Craig Peterson 7a4dca5ad5 Refactor: Prelink providers to domains (#305) 2018-02-01 11:45:53 -05:00
Brice Figureau b7c6efaa53 Make IGNORE work with all providers (#313)
the `differ.matchIgnored` function was comparing only with the `Name`
field of `RecordConfig`.

Most providers don't set `RecordConfig.Name`, only `RecordConfig.NameFQDN`
and for those `IGNORE` doesn't work at all.

This patch converts `IGNORE` to use `NameFQDN` instead since it seems
all providers provides it.
2018-02-01 10:32:38 -05:00
Brice Figureau 4c80526860 Fix R53_ALIAS not being registered as custom type (#310) (#311)
Apparently I've forgot to register the R53_ALIAS custom record
type, thus preventing to use R53_ALIAS in a js file.
The integration still worked fine because they probably don't run
the validation.
2018-02-01 07:39:11 -05:00
Pat Moroney d5adb3faf6 trim trailing '.' from FQDN (#307) 2018-01-24 18:41:10 -05:00
Tom Limoncelli 7bd7105c44 release-engineering.md: Parameterize $VERSION 2018-01-22 21:21:33 -05:00
Tom Limoncelli 5fa0cd1d46 Release v2.5 2018-01-22 20:42:41 -05:00
Tom Limoncelli 9764322d0e
vendor github.com/prasmussen/gandi-api with new LiveDNS support. (#302) 2018-01-16 17:11:11 -05:00
Brice Figureau 7b8d608019 ROUTE53: Support Route53's ALIAS record type (#239) (#301)
* Stable comparison of metadata (#239)

Iterating over a map in Go never produces twice the same ordering.
Thus when comparing two metadata map with more than one key, the
`differ` is always finding differences.

To properly compare records metadata, we need to iterate the maps
in a deterministic way.

Signed-off-by: Brice Figureau <brice@daysofwonder.com>

* Support for Route53 ALIAS record type (#239)

Route53 ALIAS doesn't behave like a regular ALIAS, and is much more
limited as its target can only be some specific AWS resources or
another record in the same zone.

According to #239, this change adds a new directive R53_ALIAS which
implements this specific alias. This record type can only be used
with the Route53 provider.

This directive usage looks like this:
```js
D("example.com", REGISTRAR, DnsProvider("ROUTE53"),
R53_ALIAS("foo1", "A", "bar") // record in same zone
R53_ALIAS("foo2", "A",
  "blahblah.elasticloadbalancing.us-west-1.amazonaws.com",
   R53_ZONE('Z368ELLRRE2KJ0')) // ELB in us-west-1

```

Unfortunately, Route53 requires indicating the hosted zone id
where the target is defined (those are listed in AWS documentation,
see the R53_ALIAS documentation for links).
2018-01-16 05:53:12 -05:00
Brice Figureau 2fc55dfdc4 Add IGNORE(label) which ignores label at the provider (#183) (#300)
* Add support for the IGNORE(name) directive (#183)

IGNORE is like NO_PURGE but for a spefic record instead of the whole
zone. This is very useful for instance if you have a zone where
only some records are managed externally from dnscontrol (for instance
using kubernetes external dns system).

Adding IGNORE("foo") in the zone will make dnscontrol not trying
to manage the "foo" record (and especially not deleting it).
dnscontrol will error out if the "foo" record is both ignored and
managed in dnscontrol.

This can be seen as a generic Cloudflare's ignored label.

Signed-off-by: Brice Figureau <brice@daysofwonder.com>

* Deprecate CloudFlare ignoredLabels in favor of IGNORE (#183)

Since IGNORE implements a generic `ignoredLabels` system, let
the user know CF `ignoredLabels` are deprecated.

Signed-off-by: Brice Figureau <brice@daysofwonder.com>
2018-01-15 15:39:29 -05:00
Tom Limoncelli 79983f3493 docs/adding-new-rtypes.md: add missing step WRT the feature matrix 2018-01-14 12:30:39 -05:00
Craig Peterson 0b329bf0ee add emphasis 2018-01-11 12:44:52 -05:00
Craig Peterson 9dbd4a3066
Simple notification framework (#297)
* bonfire notifications working

* make interface to make more extensible

* some docs

* typo

* rename typo
2018-01-11 11:15:19 -05:00
Pat Moroney 91e2cf67ef NAMEDOTCOM: add TXTMulti capability (#299)
* add TXTMulti capability to the namedotcom provider
* run go generate
* escape multi txt records before sending to the API
2018-01-11 07:23:59 -05:00
Tom Limoncelli c4ec6c8246 Add TXTMulti to the feature matrix.
* Add TXTMulti to the feature matrix.
* Sort the features alphabetically.
2018-01-10 17:06:15 -05:00
Pat Moroney 716cc0843a Namecom v4 api (#298)
* new Name.com api version and go client library
* vendor github.com/namedotcom/go/namecom
2018-01-10 16:49:20 -05:00
Tom Limoncelli b7c251190f
Vet and Lint the entire system (#296)
* govet and golint corrections
2018-01-09 12:53:16 -05:00
Tom Limoncelli 1a91a7f536 go generate 2018-01-06 15:13:57 -05:00
Tom Limoncelli 2dd9049582 helpders.js: Run prettier. 2018-01-06 15:13:22 -05:00
Tom Limoncelli a03c8f19e8
Add syntax for very long DKIM strings (#295)
* Add DKIM() function to split long strings.
* Add parse_test for DKIM()
2018-01-04 21:17:08 -05:00
Tom Limoncelli be50e1a6a3
convertzone: Handle TXT records with multiple strings (#294)
* Check for the right number of command line args
* Handle TXT records with multiple strings
2018-01-04 20:35:15 -05:00
Tom Limoncelli de88bfe8b7
Add support for TXT records with multiple strings (BIND, ROUTE53) (#293)
* BIND: Support TXT records with multiple strings (#289)
* ROUTE53: Add support for TXT records with multiple strings (#292)
2018-01-04 19:19:35 -05:00
Tom Limoncelli d051f51a59
ROUTE53: Document error messages from various credential issues. (#291) 2017-12-23 08:03:05 -05:00
Tom Limoncelli a0f14e5981
GANDI: Add support for CAA rtype (#288)
* GANDI: Add support for CAA rtype
2017-12-22 07:10:29 -05:00
Tom Limoncelli 612001c5c1 Merge branch 'tlim_doc' 2017-12-21 09:57:47 -05:00
Tom Limoncelli 48de548826 docs: Improve comments related to capabilities. (#287) 2017-12-21 09:43:21 -05:00
Tom Limoncelli 1886b64a9f Merge branch 'master' into tlim_doc 2017-12-21 09:34:42 -05:00
Tom Limoncelli c520471ab7 doc: Fix path to providers stuff. 2017-12-21 09:33:21 -05:00
Tom Limoncelli 9e90f59f33 docs: Improve comments related to capabilities. 2017-12-21 09:19:39 -05:00
Tom Limoncelli 8baf9ee1a4 docs: Add bookmark to comparison chart 2017-12-20 16:29:52 -05:00
Tom Limoncelli 0c607348df docs: Add bookmark to comparison chart 2017-12-20 16:27:11 -05:00
Tom Limoncelli 65c3702335 docs: Add bookmark to comparison chart 2017-12-20 16:06:56 -05:00
Tom Limoncelli 611a597ae0
CLOUDFLARE: Support CAA rtype (#285)
* Add CAA support to cloudflare
2017-12-20 10:25:23 -05:00
Tom Limoncelli ed2b34d473 Fix https://github.com/StackExchange/dnscontrol/issues/284 2017-12-17 11:59:02 -05:00
Tom Limoncelli 86257b3863 Docs: Correct numbering and add integration test advice. 2017-12-14 06:11:10 -05:00
Louis T. Getterman IV 11f29e1dd7 DIGITALOCEAN: Improve example in docs (#281)
Documentation fix to resolve, "Creating do dns provider: Digitalocean Token must be provided." error.
2017-12-11 10:02:13 -05:00
Tom Limoncelli 3f4cc3c025 unittests.md: Update for new-style flags. 2017-12-11 09:57:46 -05:00
Tom Limoncelli a77f89ca72 Clean "go vet" issue in providers/cloudflare/preprocess_test.go 2017-12-09 07:14:09 -05:00
Tom Limoncelli 21e4cb4fc3 go generate && add more RelEng docs. 2017-12-06 17:03:07 -05:00
Tom Limoncelli 678610034b Merge branch 'reformat' 2017-12-06 17:01:52 -05:00
Tom Limoncelli efd34e94a8 docs/release-engineering.md: Minor fixes. 2017-12-06 17:01:16 -05:00
Tom Limoncelli f5945ab444 Release v2.4 2017-12-06 15:59:00 -05:00
Tom Limoncelli d8e22b4e2c
pkg/js/helpers.js: Prettier. (#280) 2017-12-06 15:56:57 -05:00
Tom Limoncelli 3f8642afda pkg/js/helpers.js: Prettier. 2017-12-06 15:55:42 -05:00