* Update Caddy to 1.0.1, and update import path
This fix updates caddy to 1.0.1 and also
updates the import path to github.com/caddyserver/caddy
This fix fixes 2959
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Also update plugin.cfg
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Update and bump zplugin.go
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
`upstream` is not needed as a setting; just set if unconditionally and
remove all documentation and tests for it.
At some point we want remove the hanlding for `upstream` as well and
error out on seeing it.
Signed-off-by: Miek Gieben <miek@miek.nl>
This fixes a long standing bug:
fixes: #1609
Load secondary zones in a go-routine; this required another mutex to
protect some fields; I think those were needded anyway because a
transfer can also happen when we're running; we just didn't have a test
for that situation.
The test had to be changed to wait for the transfer to happen at this is
async now.
Signed-off-by: Miek Gieben <miek@miek.nl>
* added a test for transferring a large zone in file plugin
* avoid hardcoding number of RRs multiple times
* don't do testing.Parallel as suggested.
* applied gofmt -s
* Provide example to utilize k8s_external plugin
The example provides a specific use case of k8s_external and may help others to grasp `k8s_external`'s capabilities.
* Update plugin/k8s_external/README.md
Co-Authored-By: Chris O'Haver <cohaver@infoblox.com>
* Update plugin/k8s_external/README.md
Co-Authored-By: Chris O'Haver <cohaver@infoblox.com>
* add metrics for reload
* documented release process better
* run: Makefile.doc all to push reload doc to man-pages
Signed-off-by: Miek Gieben <miek@miek.nl>
* Run gofmt -s and golint on the codebase
Run golint and fix everythign it flagged (except the context arg
ordering), mostly edits in the rewrite plugin.
Signed-off-by: Miek Gieben <miek@miek.nl>
* ... and ofcourse the test as well
Signed-off-by: Miek Gieben <miek@miek.nl>
* Add 1.5.1 release notes
Prepare for imminent release.
Also list PRs merged in a new section to provide more detail.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Updates after review
Signed-off-by: Miek Gieben <miek@miek.nl>
This fix updates:
- github.com/miekg/dns from 1.1.12 to 1.1.14
- google.golang.org/grpc from 1.21.0 to 1.21.1
- github.com/aws/aws-sdk-go from 1.19.41 to 1.20.3
- github.com/prometheus/common from 0.4.1 to 0.6.0
- gopkg.in/DataDog/dd-trace-go.v1 from 1.14.0 to 1.15.0
This fix fixes#2899
This fix fixes#2900
This fix fixes#2901
This fix fixes#2902
This fix fixes#2903
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* plugin/cache: remove item.Autoritative
Confuses clients if not set; remove it.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Add extra comments on why we do this
Signed-off-by: Miek Gieben <miek@miek.nl>
While running make encountered the following error:
```
$ docker run -i -t --rm -v $PWD:/v --net=host -w /v golang:1.12 make
...
...
** presubmit/test-lowercase
plugin/kubernetes/metadata_test.go: t.Errorf("case %d expected metadata %v and got %v", i, tc.Md, md)
** presubmit/test-lowercase: please start with an upper case letter when using t.Error*()
Makefile:62: recipe for target 'presubmit' failed
make: *** [presubmit] Error 1
```
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Add OnRestartFailed to the ready plugin and some various cleanups.
Document slightly better how things are supposed to work with multiple
`ready`'s in the multiple Server Blocks.
All manually tested with this Corefile:
~~~
. {
log
ready
}
example.org {
log
chaos
ready
}
~~~
And then `kill -SIGUSR1` and curling the ready endpoint. This works
well, the FailedReload is triggered by adding a syntax error in the
Corefile.
See #2659
Signed-off-by: Miek Gieben <miek@miek.nl>
This fix updates several direct dependencies (grpc, aws, protobuf) in go mod,
and removed duplicates with `go mod tidy`
Note: tracing related dependencies are not touched, as
DataDog/tracing dependencies still give trouble.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Don't add pods to our internal cache that are being deleted. This saves
a field in the struct as well.
Add (extra) comments about adding fields to the
object/{Pod,Service,Endpoint} structs.
Signed-off-by: Miek Gieben <miek@miek.nl>
* make sure client CA and auth type are set if CA is explicitly specified.
added some simple tests to confirm the effect.
* test certificates (forgot to add them in the previous commit)
* made client auth policy configurable with new client_auth option.
README has been updated accordingly.
* fix editorial in README
* Fix for #2842, instead of returning the first Pod, return the one which is Running
* a more memory efficient version of the fix, string -> bool
* fix with no extra fields in struct, return nil at Pod conversion if Pod is not Running
* let Kuberneretes filter for Running Pods using FieldSelector
* filter for Pods that are Running and Pending (implicit)
* Add server instance to the context in ServerTLS and ServerHTTPS
The problem with the current code is that there's no way to get the server instance inside a plugin.
Because of that "metrics" plugin sets empty "server" label for requests served over TLS or HTTPS.
* use s.Server instead of s
* Added server to the context of grpc requests
This fix:
1. Update dns to v1.1.12
2. Redirect dns v1.1.3 in caddy to v1.1.12 so that there is only one version of dns.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* pkg/log: fix data race on d
Wrap d in a mutex to prevent data race. This makes is slower, but this
is a debugging aid anyway. It's not used normally.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Fix tests compilation
Signed-off-by: Miek Gieben <miek@miek.nl>
* Fix test compile
Signed-off-by: Miek Gieben <miek@miek.nl>
This fixes a data race on the listener(s) that get started in the
metrics plugins.
It also restore pkg/uniq to its former glory and removes and state being
carried in there; this means for metrics that registry.go was to
replicate that behavior *with* locking (as pkg/uniq doesn't do, or need
that).
Also renamed uniqAddr to just u, to make it slightly shorter.
Signed-off-by: Miek Gieben <miek@miek.nl>
Fix metrics endpoint on a failed reload, follows the same lines as the
previous PRs, see for e.g. 076b8d4f. Test with a Corefile with 2 server
blocks and metrics enabled and then introducing a syntax error:
~~~
[ERROR] Restart failed: Corefile:5 - Error during parsing: Unknown directive 'jfkdjk'
[ERROR] SIGUSR1: starting with listener file descriptors: Corefile:5 - Error during parsing: Unknown directive 'jfkdjk'
~~~
And then curl-ing the metrics endpoint.
See #2659 and as this is the last one.
Fixes: #2659
Getting this all right turns out to be tricky, also it's not easy
testable which is something I should fix.
Signed-off-by: Miek Gieben <miek@miek.nl>