* get data reqd to record latency before calling toFuncs
* refactor out unnecessary toFunc wrappers
* remove latency metric unit tests per PR feedback
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
This PR switches from actions/setup-go@v2-beta to actions/setup-go@v2 to fix the
GitHub Actions `set-env` failure. Without this PR the following error shown up
(see https://github.com/coredns/coredns/runs/1423802307):
```
Error: Unable to process command '::set-env name=GOROOT::/opt/hostedtoolcache/go/1.15.5/x64' successfully.
7
Error: The `set-env` command is disabled. Please upgrade to using Environment Files or opt into unsecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_COMMANDS` environment variable to `true`. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
```
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Various improvements to the documentation. Started because `⚠️`
isn't a markdown feature (replace with Note:).
Signed-off-by: Miek Gieben <miek@miek.nl>
Doing a reload every 10ms and sleeping 10ms makes this too racy,
increase all those sleeps to 5ms. A better method would be to get
notified of the reload/change, this would require some polling to get
the RR we expect, with a much longer timeout to stop the test
eventually.
Signed-off-by: Miek Gieben <miek@miek.nl>
Looks like one `*` is missing in Go Fmt GitHub Actions
and that causes the Actions not being triggered.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Setup GitHub Actions for auto remove trailing whitespaces
This PR setup GitHub Actions for auto remove trailing whitespaces,
if any non-go files are touched (.git directory are ignored)
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Remove TestTrailingWhitespace in presubmit tests
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* paths and paths-ignore are mutually exlcusive so only keep paths-ignore
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Remove redundent bufio import
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Add GitHub Actions to `gofmt -s -w` all `*.go` files
This PR adds GitHub Actions to `gofmt -s -w` all `*.go` files,
if any `*.go` files are touched on each commit.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Change go-mod-fmt to go-fmt
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Add github testing workflow, simplify the Makefile because that was
complex because of Travis. Remove the fuzzing, needs to be re-added when
that works properly with go modules (it has been disabled for quite some
time). Multiple builds and files have been added so these tests can all
run in parallel. Our testing now tests a couple of minutes, the codeql
is by far the more expensive.
Move metric's naming test to test/presubmit_test.go
Add longer sleep in the TestAutoAXFR.
Bye bye travis!
Closes: #4266
Signed-off-by: Miek Gieben <miek@miek.nl>
* plugin/dnstap: remove config struct
this struct is an uneeded intermidiate to get a dnstap it can be
removed. Remove the dnstapio subpkg: it's also not needed. Make *many*
functions and structs private now that we can.
Signed-off-by: Miek Gieben <miek@miek.nl>
* correct logging
Signed-off-by: Miek Gieben <miek@miek.nl>
* plugin/dnstap: remove encoder*.go
Those files reimplemented parts of the dnstap spec, we can just use the
dnstap functions for that. This leaves all the queuing that is enabled
and drops messages if the dnstap reader can't keep up. In the new code
flush() would never return an error (at least I couldn't make it do so),
so the reconnect functionally is moved to kick off when we get write
errors.
Some smaller cosmetic changes as well, `d.socket` is now `proto`, which
makes the dial() function smaller.
Total testing time is now <1s (which was the impetus to look into this
plugin *again*).
See #4238
The buffered channel needs to be sized correctly, as we may need to do
some queing if the dnstap reader can't keep up.
Signed-off-by: Miek Gieben <miek@miek.nl>
* add missing file
Signed-off-by: Miek Gieben <miek@miek.nl>
* update doc on queing
Signed-off-by: Miek Gieben <miek@miek.nl>
* initial commit
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* convert endpointslices to object.endpoints
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* add opt hard coded for now
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* check that server supports endpointslice
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* fix import grouping
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* dont use endpoint slice in 1.17 or 1.18
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* bump kind/k8s in circle ci to latest
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* drop k8s to latest supported by kind
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* use endpointslice name as endoint Name; index by Service name
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* use index key comparison in nsAddrs()
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* add Index to object.Endpoint fixtures; fix direct endpoint name compares
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* add slice dup check and test
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* todo
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* add ep-slice skew dup test for reverse
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* nsaddrs: de-dup ep-slice skew dups; add test
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* remove todo
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* address various feedback
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* consolidate endpoint/slice informer code
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* fix endpoint informer consolidation; use clearer func name
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* log info; use major/minor fields
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* fix nsAddr and unit test
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* add latency tracking for endpointslices
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* endpointslice latency unit test & fix
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* code shuffling
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* rename endpointslices in tests
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* remove de-dup from nsAddrs and test
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* remove de-dup from findServices / test
Signed-off-by: Chris O'Haver <cohaver@infoblox.com>
* Speed up testing
* make notification run in the background, this recudes the test_readme
time from 18s to 0.10s
* reduce time for zone reload
* TestServeDNSConcurrent remove entirely. This took a whopping 58s for
... ? A few minutes staring didn't reveal wth it is actually testing.
Making values smaller revealed race conditions in the tests. Remove
entirely.
* Move many interval values to variables so we can reset them to short
values for the tests.
* test_large_axfr: make the zone smaller. The number used 64K has no
rational, make it 64/10 to speed up.
* TestProxyThreeWay: use client with shorter timeout
A few random tidbits in other tests.
Total time saved: 177s (almost 3m) - which makes it worthwhile again to
run the test locally:
this branch:
~~~
ok github.com/coredns/coredns/test 10.437s
cd plugin; time go t ./...
5,51s user 7,51s system 11,15s elapsed 744%CPU (
~~~
master:
~~~
ok github.com/coredns/coredns/test 35.252s
cd plugin; time go t ./...
157,64s user 15,39s system 50,05s elapsed 345%CPU ()
~~~
tests/ -25s
plugins/ -40s
This brings the total on 20s, and another 10s can be saved by fixing
dnstapio. Moving this to 5s would be even better, but 10s is also nice.
Signed-off-by: Miek Gieben <miek@miek.nl>
* Also 0.01
Signed-off-by: Miek Gieben <miek@miek.nl>
Base on the [GOVERNANCE.md] of CoreDNS, we will need to update project lead's term:
1) Any PR should only be opened no earlier than 6 weeks before the end of current lead's term
2) PR can only be merged after it has been opened for 4 weeks.
3) See [GOVERNANCE.md] for more details on how votes are counted.
Since it is less than 6 weeks before 11/11/2020, this PR:
1) propose to extend project lead's term from 11/11/2020 to 11/11/2021.
2) will keep open until at least to 10/28/2020 (4 weeks), so that community has a chance to voice opinions
Please specify +1/-1 for agree/disagree.
Note: Alternative PRs could be opened concurrently, as long as it following the rules specified in [GOVERNANCE.md].
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
sed -i 's/Also See/See Also/' plugin/**/README.md
Some plugins did already use 'See Also', so it's all consistent now.
Fixes: #4196
Signed-off-by: Miek Gieben <miek@miek.nl>
Include:
1. plugin/forward/type.go:8:2: const typeUdp should be typeUDP
2. plugin/forward/type.go:9:2: const typeTcp should be typeTCP
3. plugin/forward/type.go:10:2: const typeTls should be typeTLS
4. plugin/kubernetes/metrics.go:24:2: var DnsProgrammingLatency should be DNSProgrammingLatency
5. plugin/kubernetes/metrics_test.go:124:102: func parameter clusterIp should be clusterIP
Signed-off-by: zouyu <zouy.fnst@cn.fujitsu.com>
We get many questions (which is fine), but those are neither a bug, nor
an enhancement. Just add generic question as an option.
Signed-off-by: Miek Gieben <miek@miek.nl>