Commit graph

683 commits

Author SHA1 Message Date
Phil Pennock 3c41a39252
BIND: Implement AutoDNSSEC (#648)
There's a philosophy issue here around what is the Bind output meant to
do.  Since AFAIK we're not integrating into Bind's catalog zones or the
like, we're just targeting the zonefiles, we're not in a position to do
_anything_ relating to registrar options such as setting up DS glue.

So at one level, enabling AutoDNSSEC for Bind is a lie. But without
this, folks can't target a Bind zone as a secondary provider for their
domain, to get debug dumps of the zone output, because the checks for
"Can" block it.  So I think this commit achieves a happy compromise: we
write a comment into the Bind zonefile, indicating that DNSSEC was
requested.

Actually: we add support for arbitrary zone comments to be written into
a zonefile via a slightly ugly "can be `nil`" parameter.  We then write
in a generation timestamp comment, and if AutoDNSSEC was requested we
then write that in too.
2020-02-22 13:27:24 -05:00
Tom Limoncelli 7384743f6d
pretty helpers.js (#649) 2020-02-22 12:07:10 -05:00
Phil Pennock 9b239f41a3
Add AUTODNSSEC, implement for DNSimple (#640)
* Add AUTODNSSEC, implement for DNSimple

There are two models for DNSSEC in DNS management: either dnscontrol
manages all the DNSSEC records and has to be invoked regularly for
re-signing, or the provider manages DNSSEC automatically and dnscontrol
is not involved beyond saying "yeah, do that".

This implements the latter, as a model, and for one provider.

Potentially we could tune/configure options for DNSSEC such as
algorithm, but DNSimple don't expose that API so I haven't implemented
it.

This minimal model should be something which maps into other providers
cleanly.

* Fix missing CanAutoDNSSEC on provider

* Validation fix for master broken

This is broken in master and causing Travis in my branch to fail.  The
validation tool runs with `gofmt -s` to require "simplify", and so
rejects an ignored second bound variable to range iteration.

* Correct wire in the AUTODNSSEC validation step
2020-02-22 07:09:31 -05:00
Tom Limoncelli b360ddd1e9
NAMEDOTCOM: Implement get-zones (#645)
* NAMEDOTCOM: Implement get-zones
2020-02-21 15:03:27 -05:00
Tom Limoncelli 3c507d6b77
get-zones: new output format nameonly; remove tsvfqdn (#644)
* Add nameonly; remove tsvfqdn

* document tsv fields
2020-02-21 14:59:47 -05:00
Tom Limoncelli 1ec696e4fa
Implement get-zones (#641) 2020-02-21 13:49:10 -05:00
Tom Limoncelli f5d6f8074d
BIND: Implement get-zones (#642)
* BIND: implement get-zones
* BIND: Implement ZoneLister
2020-02-21 13:48:55 -05:00
Phil Pennock d221471e38
dnsimple: bug-fix SSHFP, add multi TXT support (#639)
* dnsimple: bug-fix SSHFP, add multi TXT support

The default logic for encoding SSHFP records was dropping the key and
hash algorithms and just posting the content, the `Can` check didn't
stop attempts to use SSHFP.  So, implement SSHFP support.

DNSimple support multiple DNS strings in a TXT record, by representing
the payload as quoted strings already.  This doesn't appear to be
documented, but it does actually work.

* Update docs support matrix too

* fix go fmt missing upstream

Tests failing on my branch for something broken upstream

* fix typo in error message
2020-02-21 13:23:30 -05:00
Tom Limoncelli 7c0e02539c
ACTIVEDIRECTORY: Implement get-zones (#643)
* activedir: implement get-zones
2020-02-21 12:54:00 -05:00
Tom Limoncelli 386275fde1
ROUTE53: Fully implement get-zones (#638)
* ROUTE53: Implement ListZones

* DNSIMPLE: Fix comment
2020-02-20 15:07:34 -05:00
Amelia Aronsohn b45c6b6b6c
DNSimple: Implement GetZones and ListZones (#637)
* Update to latest dnsimple-go

* Implement GetZoneRecords

* Better naming

* Return NS records in GetZoneRecords

* Be clearer with the comment.

As an employee I confirm this is exactly how this works. No guessing needed.

* Respect that Puncycode encoding can blow up

* Implement ListZones and the ZoneLister Interface

* Categorize DNSIMPLE

* Update docs with go generate

* vendor modules

* Don't store intermediary Zone data
2020-02-20 14:52:19 -05:00
Juho Teperi ca99517ced
Do get zones (#635)
* Implement GetZoneRecords for Digitalocean provider
* Clean fixme comment from digitalocean provider
2020-02-19 13:11:49 -05:00
Tom Limoncelli 05cedab5a7
Remove test for empty TXT strings. (#633) 2020-02-18 15:24:04 -05:00
Vatsalya Goel f12d4bb8d6
Implement Get Zone for Azure DNS (#631)
* Implement Get Zone for Azure DNS

* Internalize getExistingRecord
2020-02-18 11:35:13 -05:00
Tom Limoncelli 87ad01d194
Add "get-zone" command (#613)
* Add GetZoneRecords to DNSProvider interface
* dnscontrol now uses ufave/cli/v2
* NEW: get-zones.md
* HasRecordTypeName should be a method on models.Records not models.DomainConfig
* Implement BIND's GetZoneRecords
* new WriteZoneFile implemented
* go mod vendor
* Update docs to use get-zone instead of convertzone
* Add CanGetZone capability and update all providers.
* Get all zones for a provider at once (#626)
* implement GetZoneRecords for cloudflare
* munge cloudflare ttls
* Implement GetZoneRecords for cloudflare (#625)

Co-authored-by: Craig Peterson <192540+captncraig@users.noreply.github.com>
2020-02-18 08:59:18 -05:00
Vatsalya Goel cd680cc738
Upgraded Azure SDK to 39.1.0 (#627)
* Upgrade Azure DNS API
* vendor modules
* Fixed AZURE_DNS Empty TXT Record
* Fix preview
2020-02-18 08:45:31 -05:00
Patrick Gaskin 2e76c0e9d1
Updated govultr to v0.2.0 (#619) (#624) 2020-02-17 10:47:34 -05:00
Tom Limoncelli 5a5eeb524c "go mod tidy" 2020-02-14 15:03:04 -05:00
Tom Limoncelli 8123b05d43 Clarify versions in RE 2020-02-14 15:01:39 -05:00
Tom Limoncelli 6a0c6a517c
Update github.com/go-acme/lego (#623) 2020-02-14 13:59:28 -05:00
Juho Teperi 737c8b5616
Update digitalocean module (#622)
Related #619
2020-02-14 06:40:13 -05:00
Tom Limoncelli 0f07d91f54 go mod vendor 2020-02-12 21:17:56 -05:00
Tom Limoncelli f708f19535
Update many modules (#620)
* Update many modules.

go get -u golang.org/x/net
go get -u github.com/aws/aws-sdk-go
go get -u golang.org/x/oauth2
go get -u google.golang.org/api
go get -u gopkg.in/yaml.v2
go mod tidy

* Update modules

go get -u github.com/tiramiseb/go-gandi
go get -u github.com/miekg/dns
go mod tidy
2020-02-12 21:16:35 -05:00
Tom Limoncelli 66a290067a git mod tidy 2020-02-12 20:13:18 -05:00
Tom Limoncelli cad8a279a8 fixup! 2020-02-12 20:09:06 -05:00
Tom Limoncelli 6680e9e2a7 DOCS: Document release note bprocess 2020-02-12 13:51:00 -05:00
Vatsalya Goel d2625cf17a
Using Alias Records breaks DNSControl (#616) 2020-02-07 14:25:08 -05:00
Tom Hughes 6c4192bf82
Add _mta-sts to labels allowed to have an underscore (#617)
Although _mta-sts is normally used with a TXT record it can
also be used with a CNAME record to delegate the authority.

See sections 3.1 and 8.2 of RFC8461 for details.
2020-02-07 14:20:24 -05:00
Vatsalya Goel 450accf0a5
AZURE: Bug: Wrong domain updated in query (#615) 2020-02-05 18:19:24 -05:00
Tom Limoncelli 891c4162df
Upgrade urfave/cli to v2 (#614)
* Upgrade cli to v2
* Re-vendor
2020-02-03 12:44:11 -05:00
Tom Limoncelli f2c77b6541 linting 2020-02-02 09:50:07 -05:00
Tom Limoncelli fcccb2b9dc
LETS_ENCRYPT: Try all cert renewals before returning error. (#611) 2020-01-30 16:29:39 -05:00
Tom Limoncelli e172df2817
Integration testing: Standardize "empty" usage (#612)
* All tests start with an "empty", not end.
* "empty" formatted the same way for all tests.
2020-01-30 10:05:37 -05:00
Tom Limoncelli 36a05608e0
DOCS: Explain nameservers vs ns (#608) 2020-01-29 13:47:32 -05:00
Tom Limoncelli 92b51dbc65
Update github.com/mjibson/esc (#515)
* Update github.com/mjibson/esc

* Update github.com/mjibson/esc
* Fix generate.go to new signature for esc.Run

* Internal: Upgrade to lastest "esc"
2020-01-29 13:43:25 -05:00
Tom Limoncelli 75756136cb
RELENG: Doc should list correct version numbers (#607)
* RELENG: Release numbers no longer begin with 0.
2020-01-28 16:59:09 -05:00
Tom Limoncelli 071d9377c2 fixup! 2020-01-28 14:38:53 -05:00
Tom Limoncelli 88abe122cf
Docs: Clarify bug triage process (#606) 2020-01-28 14:36:28 -05:00
Patrick Gaskin 6e8d5b59ab Fixed issues from go vet (#605)
* CloudFlare provider is missing quotes on a JSON struct tag.
* ACME package has a unnecessary JSON struct tag.
* Route53 provider has an unreachable return.
2020-01-28 12:10:58 -05:00
Patrick Gaskin 825ba2d081 Switch to Go 1.13 error wrapping (#604)
* Replaced errors.Wrap with fmt.Errorf (#589)

* Find:    errors\.Wrap\(([^,]+),\s+(["`][^"`]*)(["`])\)
  Replace: fmt.Errorf($2: %w$3, $1)

* Replaced errors.Wrapf with fmt.Errorf (#589)

* Find:    errors\.Wrapf\(([^,]+),\s+(["`][^"`]*)(["`])\)
  Replace: fmt.Errorf($2: %w$3, $1)
* Find:    errors\.Wrapf\(([^,]+),\s+(["`][^"`]*)(["`])(,[^)]+)\)
* Replace: fmt.Errorf($2: %w$3$4, $1)

* Replaced errors.Errorf with fmt.Errorf (#589)

* Find:    errors\.Errorf
  Replace: fmt.Errorf

* Cleaned up remaining imports

* Cleanup

* Regenerate provider support matrix

This was broken by #533 ... and it's now the third time this has been missed.
2020-01-28 11:06:56 -05:00
George Pittarelli cae35a2c8f NAMECHEAP: Add CAA support (#533) 2020-01-28 10:54:58 -05:00
Tom Limoncelli ae3a730e64
Documentation: Add vendoring details. (#596)
* Add vendoring details.

* Address @geek1011's comments.

* fixup!
2020-01-28 10:44:07 -05:00
Patrick Gaskin 2f83aa9302 Internals: Switch to v2 go.mod, drop GOPATH, and fix Azure Pipelines (#595)
* Switched to v2 go.mod

Also set GO111MODULE=on in build stuff to always use Go modules
even when in GOPATH.

* Ensure go.mod, go.sum, and vendor are up to date

* Attempt to fix Azure pipelines

* Add set -e to properly fail on exit (it didn't seem to be
  propagating properly before).
* Set workingDirectory for GoFmt and GoGen (this might be why it
  fails unlike compile and unitests).

* Another attempt to fix Azure Pipelines

* Use the Go env template for all go-related jobs.

* Completely fixed Azure Pipelines

* Added a display name to GoFmt for consistency.
* Fixed diffs for GoFmt and GoGen.
* Show git status for checks.

* Drop GOPATH for tests

TODO: Do the same for integration tests.

* Drop GOPATH for integration tests

* Show more diffs

* Regenerate provider support matrix

This wasn't done in #590...
2020-01-28 10:42:31 -05:00
Tom Limoncelli d19eedaa63
DOC: Improve internetbs doc (#603) 2020-01-28 07:44:52 -05:00
Anton Yurchenko 2d88d81392 NEW PROVIDER: Internet.bs (#590)
* Ineternet.bs: first version of provider
* Ineternet.bs: code and documentation cleanup
2020-01-27 08:25:20 -05:00
Patrick Gaskin c0a68fae4f Regenerate provider support matrix (fixes #592) (#599)
Also see #595.
2020-01-24 17:20:41 -05:00
Juho Teperi bfa36ebbf8 DIGITALOCEAN: CAA is supported with some caveats (#592)
Change the tests to skip test case with CAA `;` value for Digitalocean,
because that specific feature isn't supported.

Closes #588
2020-01-24 12:21:01 -05:00
Tom Limoncelli d3dc5a5eb7
Integration test: Add test for TXT with null string (#597) 2020-01-24 12:10:27 -05:00
Anton Yurchenko 262acdd3d8 get-certs: DNS01 challenge skipping preCheckDNS (#591) 2020-01-23 17:54:07 -05:00
Tom Limoncelli 28d650207b
Improve Lets Encrypt docs (#594)
* Mention certbot
* Link to get-certs.md from the main page
* Rename lets-encrypt.md -> get-certs.md
2020-01-23 17:49:43 -05:00