Commit graph

929 commits

Author SHA1 Message Date
Tom Limoncelli
1f471a15b9
DIGITALOCEAN: Support TXTMulti with caveats (#949)
* DIGITALOCEAN: Support TXTMulti with caveats
* go get github.com/digitalocean/godo
* DIGITALOCEAN: Enable CI tests
2020-11-18 08:22:31 -05:00
Tom Limoncelli
13a1360779
TXT records should check length at check/preview time (#947)
* TXT records should check length
* Add validation to TXT generator
* Split and validate long TXT targets
* Add a metaparameter to TXT records to indicate autosplit is requested.
* SPF_BUILDER marks TXT records as needing to be autosplit.
* Validate should check for overly-long TXT targets
2020-11-18 07:05:26 -05:00
Jakob Ackermann
550fa436ed
HETZNER: better rate limit handling (#936)
* HETZNER: better rate limit handling

- Hetzner is using a Proxy service 'kong' which broadcasts it limits
- honor 'Retry-After' of 429 responses
- delay requests per-se: see the amended docs for details

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: apply review feedback: store quotaName as lower case

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-11-16 12:26:52 -05:00
Tom Limoncelli
18c026d7d9
DOCS: Fix golint and vendoring notes (#948) 2020-11-15 14:47:52 -05:00
Tom Limoncelli
7db3741bc7
MAINTENANCE: Unknown rtypes should return errors, not a panic (#945)
* Eliminate panics related to unknown rtypes
2020-11-13 16:32:40 -05:00
Tom Limoncelli
654bb9cfeb
GCLOUD: Don't panic() on unknown domain name (#944)
* GCLOUD: Dont panic on unknown domains
2020-11-13 13:12:36 -05:00
Tom Limoncelli
184131b1e3
AZURE_DNS: Remove artificial delays (#943)
* AZURE_DNS: Remove artificial delays
* CloudflareAPI is too slow for all tests
2020-11-13 12:21:13 -05:00
Jan-Philipp Benecke
d759b7b4da
Document: CLI variables (#918)
* Initial version of CLI variables doc

* Add example based on comments

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-11-13 12:18:38 -05:00
Tom Limoncelli
0ef6ce2b40
HEXONET: Add GHA tests. Update docs. (#942) 2020-11-13 10:32:32 -05:00
Tom Limoncelli
9f323e70d1
DOCS: Add pkg.go.dev badge (#939) 2020-11-12 11:22:19 -05:00
Tom Limoncelli
ba08e718b7
DIGITALOCEAN: Abide by rate limits (#934)
* Implement exponential back-off
2020-11-12 10:53:44 -05:00
Tom Limoncelli
724d5ff6c7
ROUTE53: Fix R53_ALIAS creation failure (#938)
Fixes https://github.com/StackExchange/dnscontrol/issues/937

* Add integration test to repro https://github.com/StackExchange/dnscontrol/issues/937
* Reformat integration tests to be more readable.
* ROUTE53: Create CNAME/R53_ALIAS in best order
* Each R53_ALIAS_* should be its own change, not combined.
* Refactor and simplify (omg it has gotten ugly)
2020-11-12 00:30:40 -05:00
Max Horstmann
50d5cbce25
Update build status badge to GH Actions workflow (#933) 2020-11-06 18:45:06 -05:00
Max Horstmann
f920078c0f
Integration tests: add Digital Ocean, Gandi V5 (#932) 2020-11-06 12:56:07 -05:00
Max Horstmann
df0f47b52c
Run integration tests for additional DNS providers (#930) 2020-11-05 08:55:20 -05:00
Max Horstmann
866232e0fb
Run integration tests as part of build checks (#928) 2020-11-03 07:53:59 -05:00
Max Horstmann
d219941059
Run unit tests as part of build checks (#927) 2020-11-02 08:42:33 -05:00
Jakob Ackermann
ab47e92cbf
HETZNER: fix retry of POST/PUT requests -- rebuild request body (#926)
Previously for any retry the request body was already consumed and
 the server received an empty body.

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-11-01 19:34:10 -05:00
Jakob Ackermann
152fa95031
HETZNER: create and modify multiple records in batches (#925)
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>
2020-11-01 19:30:16 -05:00
Max Horstmann
61bf50d4d7
Build & attach release assets automatically (#789) 2020-11-01 13:37:38 -05:00
Max Horstmann
2792c28f6d
Run build checks on PRs targeting master branch (#922) 2020-11-01 13:20:18 -05:00
Tom Limoncelli
80c81b990a TESTING: Fix broken test 2020-10-30 12:04:41 -04:00
Tom Limoncelli
d7601b4fe8
NEW: .editorconfig (#921) 2020-10-29 13:38:15 -04:00
Tom Limoncelli
bb6aecc9ad
Build broke on Windows (#920) 2020-10-29 13:36:47 -04:00
Jan-Philipp Benecke
512aa7d4b3
NEW FEATURE: Set JS variables from command line (#913)
* Add ability to specify variables that are passed to js

* Use SplitN to respect a = in value part

* Add JSON parsing for cli variables

* Remove JSON parsing for cli variables

* Add a function to set CLI defaults

* Update static.go
2020-10-27 10:43:00 -04:00
eifelmicha
e51688c22d
Update README.md (#915)
Netcup was added in 3.2 https://stackexchange.github.io/dnscontrol/provider-list
2020-10-26 20:20:02 -04:00
Tom Limoncelli
ca30c9c34f
Rename provider handles to *Provider (#914) 2020-10-26 09:25:30 -04:00
Patrik Kernstock
29c7ff3a05
Fix #910 (#912)
@patschi Thanks you for the speedy fix!  (and thank you for knowing Javascript!)
2020-10-25 13:29:25 -04:00
Tom Limoncelli
d56a8307f3
Be more consistent in API handle variable names (#911) 2020-10-25 12:58:43 -04:00
Jakob Ackermann
2b50af0cbc
NEW PROVIDER: HETZNER DNS Console (#904)
* HETZNER: implement the provider for Hetzner DNS Console

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: apply review feedback

- add domain into error messages
- insert sub-strings using `%q`
- insert sub-errors using `%w`
- change api.getZone() signature to return a (potentially `nil`) Zone
   pointer instead of a (potentially empty) Zone value
- sort imports and confirm with `$ goimports -w providers/hetzner/`
- use exact 'api_key' term in error message of settings validation
- add blank line for logic separation
- drop internal record id from correction messages

Co-Authored-By: Tom Limoncelli <tlimoncelli@stackoverflow.com>
Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: add request rate-limiting handling

There are a limited number of data-points on how their rate-limiting
 works at this time. I deduce from my account to others and use a fixed/
 constant backoff of 1s as the initial delay. Thereafter exponential
 increase with factor 2 (not needed at this time).
Hetzner has not made any official statements on rate-limiting, so this
 is guesswork only.

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: address golint complaints

- baseUrl -> baseURL
- mark Record as private -> record
- mark Zone as private -> zone
- mark RequestRateLimiter as private -> requestRateLimiter
- capitalize Id fields as ID
- keep delay logic on same level, move return out of branch

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: rate_limited: init the response timestamp on requestRateLimiter

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

* HETZNER: requestRateLimiter: align local variable with struct name

Signed-off-by: Jakob Ackermann <das7pad@outlook.com>

Co-authored-by: Tom Limoncelli <tlimoncelli@stackoverflow.com>
2020-10-22 09:44:21 -04:00
Tom Limoncelli
3a2b1b2f7b
Internal: deps updates and linting (#905)
* Update dependencies
* writing-providers.md: Update for Go Mod, etc.
* Linting pkg/version
* s/CloudflareAPI/api/g
* s/ApiKey/APIKey/g
* s/ApiToken/APIToken/g
* s/ApiUser/APIUser/g
2020-10-18 14:04:50 -04:00
Tom Limoncelli
ac3ee9afea Release v3.4.2 2020-10-12 12:55:43 -04:00
Tom Limoncelli
c899706309 Fix version 2020-10-12 12:55:10 -04:00
Tom Limoncelli
c1e7b36b01 Release v3.4.1 2020-10-12 12:54:40 -04:00
Tom Limoncelli
b77cfa2b84 DOCS: fix release-engineering.md 2020-10-12 12:14:19 -04:00
Tom Limoncelli
a07a8cc731 Release v3.4.0 2020-10-12 12:13:07 -04:00
Tom Limoncelli
8764f77e66 DOCS: Update for vendor-less builds 2020-10-12 12:11:54 -04:00
Tom Limoncelli
a7964652d8 go get -u github.com/aws/aws-sdk-go github.com/miekg/dns golang.org/x/net 2020-10-12 12:08:43 -04:00
Tom Limoncelli
7acf8427f1 go generate 2020-10-12 11:54:18 -04:00
Tom Limoncelli
da1cbad4ec
HEXONET: Implement get-zones, fix module problem (#898)
* VULTR: Update govultr to v1.0.0 (fixes #892) (#897)

* go get -u github.com/hexonet/go-sdk

* Fix HEXONET providers.json entry

* providers.json: json commma

* providers.json: fmtjson

* HEXONET: Implement get-zones. Fix tests and docs.

* fixup!

* Update azure test failures

* Move version info into its own package

* Use new version system
2020-10-12 11:45:44 -04:00
Patrick Gaskin
bc8bcf88c4
Require Go Modules to build (#902)
* Add module info to version

* Add warning if built without Go modules

* Updated source installation instructions for Go modules
2020-10-10 10:34:04 -04:00
Tom Limoncelli
d27e9d3eb7
DOCS: Add info about R53 dotless CNAME bug (#901) 2020-10-10 09:02:31 -04:00
Denis Zavershinskiy
e92717fc77
DOCS: fix jsId for Netcup Provider (#900)
According usage example jsId should be all uppercase
2020-10-09 07:50:35 -04:00
Tom Limoncelli
824ed2b75e
Update AWS and goquery dependencies (#899) 2020-10-08 16:50:42 -04:00
Patrick Gaskin
26c7c356f4
VULTR: Update govultr to v1.0.0 (fixes #892) (#897) 2020-10-08 16:12:56 -04:00
Patrick Gaskin
38d9f059a7
VULTR: AddOrigin is unnecessary (#314) (#896) 2020-10-08 16:12:38 -04:00
Patrick Gaskin
b6d2ddd04c
VULTR: Null MX records are not supported (#702) (#894) 2020-10-08 16:12:22 -04:00
Tom Limoncelli
51b3a5ee0b Remove bug report from doc 2020-10-07 16:27:38 -04:00
Tom Limoncelli
2fb72ac006
go get -u github.com/robertkrimen/otto (#889) 2020-10-07 16:26:49 -04:00
Tom Limoncelli
43537fbfd8 Update dependencies 2020-10-07 16:23:42 -04:00