Age | Commit message (Collapse) | Author | Files | Lines |
|
* Rename middleware to plugin
first pass; mostly used 'sed', few spots where I manually changed
text.
This still builds a coredns binary.
* fmt error
* Rename AddMiddleware to AddPlugin
* Readd AddMiddleware to remain backwards compat
|
|
* Remove debug from interface and methods
* remove debug queries from etcd
* remove debug queries from k8s - they were not used
* And remove from mw/proxy-google as well
* Remove debug query test
|
|
* mw/etcd: revert 'add fallthrough'
This removes 'fallthrough' for *etcd* which is not needed. This was
added in 00f5c7797 but is totally not needed and creates backwards
incompat behavior even.
Thanks to @johnbelamaric for pointing this out in #925.
* remove here as well
* Revert "remove here as well"
This reverts commit 9d44397827425e567af01d43564c4294b42e98c9.
* Revert "mw/etcd: revert 'add fallthrough'"
This reverts commit 0cfe3cb1ab5495ed38a8a0486e3f5386f3bd95dc.
* mw/{etcd,kubernetes}: use fallthrough correctly
reverts of reverts, will rebase and squash later.
|
|
Mention stubdomains in the documentation, give an example and fix a few
typos.
Fixes #1028
|
|
Move tests infra to look like all other middleware, and some small
cleanups.
|
|
, so that `make test` will pass by default.
Also fixed several ineffassign and golint issues.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
|
|
|
|
* mw/kubernetes: add configurable TTL
Add ttl option to kubernetes. This defaults to 5s but allows
configuration to go up to 3600.
Configure the tests so that a few actually check for the 5s, while the
rest use the TTL of 303 which is ignored by the checking code.
Fixes #935
* fix tests
* and more
|
|
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
|
|
block chaos queries, unless the chaos or proxy middleware is loaded. We
respond with REFUSED.
This removes the need for each middleware to do this class != ClassINET
if-then.
Also make config.Registry non-public.
|
|
Split up the handler_test in four files that all tests their specific
bits. Removed the CNAME sort as there was only 1 answer with a CNAME
and that was a single one.
See #942, this fixes (a bit) the tests in middleware.
|
|
|
|
Do the return early and dedent the rest of the function.
|
|
* mw/kubernetes: add apex test
This adds small test case for apex queries: SOA and HINFO.
Fix (obvious) parse bug in parse.go.
* Test Ns request also here
|
|
Based up on: #939, but redone in a new PR with some cherry-picked
commits:
aacb91ef0b927683b21d6ee39dbddbd001334854
5dc34247b7d0136d9fe035f6b10d6b3e14ee7f2c
This removes kPod and Kservice and creates []msg.Service from k.findPods
and k.findServices.
Updated few tests which I *think* are correct; they look correct to me.
|
|
* mw/kubernetes: don't export Pod-mode constants.
* merged
|
|
* mw/kubernetes: resync to opts
Only used to initialize the cache that already has a dnsControlopts, so
remove it from the main kubernetes struct.
* Fix test
* mw/kubernetes: LabelSelector to options as well
Labels select is also only used for init. Don't carry it in the main
kubernetes struct.
* remove this test: can't happen
Caddyfile parser will only call setup when it sees kubernetes.
* erge gone wrong
|
|
* mw/kubernetes: rewrite parseRequest
Stop looking at the qtype in parseRequest and make k.Namespace a map.
Fallout from this is that pkg/strings as it is not used anymore. Also
add a few helper functions to make unexposed namespaces easier to see in
the code.
Add wildcard tests to the middleware tests.
* Fix tests
Add a whole bunch of comments to document what we are trying to do.
* This is now answered
* up coverage
* duh
* Update testcase
* Make it nodata
|
|
Upstream allows file structured like /etc/resolv.conf. Update docs.
Fixes #709
|
|
* core: hide registerHandler
Remove RegisterHandler and just make it implicit when we look at the
handler compilation step.
* Rename GetHandler to just Handler
Update callers and make auto check Hander in OnStartup.
* Up test coverage in erratic
* up test coverage
|
|
* Add dnsutil.Join
* Create dnsutil.Join
Create Join helper function and move bits in the code over.
|
|
This is more general and aligns well with the other methods.
Also allows the kubernetes middleware to use it.
Fixes #940
|
|
* mw/kubernetes: remove zone from parseRequest
State has the zone info as well, so don't need to have it in
parseRequest anymore.
* Fix up tests
* improve test coverage
|
|
* mw/federaration
This PR add the federation back as a middleware to keep it more
contained from the main kubernetes code.
It also makes parseRequest less import and pushes this functionlity down
in the k.Entries. This minimizes (or tries to) the importance for the
qtype in the query. In the end the qtype checking should only happen
in ServeDNS - but for k8s this might proof difficult.
Numerous other cleanup in code and kubernetes tests.
* up test coverage
|
|
Add a non-arpa testcase to the reverse test.
|
|
There was quite some code duplication in a lot of tests to check if
an answer was considered Ok. Created a test.SortAndCheck helper function
that takes care of this.
|
|
This PR adds a reverse tests that copies some of it from the main
integration test. This aids in local testing because you don't need
a full k8s setup running.
It does the most minimal testing, a successful return and a nodata
response that includes the SOA for in-addr.arpa.
|
|
* mw/kubernetes: reverse zone in ZONE stanza not parsed
Properly parse the reverse zone syntax in the ZONES stanza as promised
in the README.
As short test case to test.
* add test
|
|
|
|
* mw/kubernetes: remove federation and cidr
Remove both as we have a corefile syntax change that handles cidr and
remove federation because that is going to be its own middleware.
* backwards incompat changes
This PR:
* removes cidr from kubernetes (core Corefile feature now)
* removes federation from kubernets (comes back as new middleware)
* [remove autopath - which was already gone, so that already was
backwards incompat]
* adds `fallthrough` to the *etcd* middleware and makes you enable it.
* Fail on unknown properties
* documentation
* Disable TestHealthCheck as it uses realtime and fails
|
|
The primary driver for autopath was kubernetes. It addresses a specific need in kubernetes, so it deserves a mention in the K8s README, with an example.
|
|
* mw/k8s: cleanups
Remove some constants that aren't used any more. Make PrimaryZone
private because it doesn't need to be exported. Remove test that
did not cover corner case as expressed in setup.go
* cleanup this as well
|
|
Found a few typos, spelling, and grammar errors.
|
|
remove extraneous "]"s from the syntax def...
|
|
* mw/k8s: Test Federation parsing
The test case was there, but there was nothing testing it?!?!?!
Add it and split it out of the main setup test which is too long
already.
Also allow kubernetes a not have a ZONE, just default to the serverblock
in that case. Remove test that was blocking that.
Cleanup up the readme more.
* rewrite README
|
|
|
|
Remove k.defaultNSMsg() it is just one line of getting the service and
it is another method that needlessly uses recordRequest.
|
|
servers (#820)
* Support multiple k8s api servers specification and load balance among api servers
This fix adds supports for multiple k8s api servers specification,
load balance among api servers.
When two or more api servers are specified in kubernetes block (endpoint ...),
a proxy is created locally (with randomly generately port). The coredns
will points to the generated proxy so that load balancing could be achieved.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Setup initial healthcheck at the beginning
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Update README.md for kubernetes middleware and remove whitespaces.
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
* Use middleware/pkg/healthcheck in middleware/kubernetes
for api proxy
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
|
|
* mw/k8s: remove dependence on global var
Remove the global coreDNSRecord that was used. Remove tests the
referenced that var. Cleanup the rest.
* Rename function as well
* fixes
|
|
Remove the examples, save one in the syntax section. The example
section covers all.
This brings the kubernetes README inline with other READMEs.
|
|
* mw/kubernetes: handle dns.TypeNS better.
* mw/kubernetes: cleanup typeNS replies a bit.
|
|
* core: replace GetMiddleware
See the discussion in #881. GetMiddleware would add a `nil` middleware
to the callstack thereby breaking functionality.
This PR drops it in favor of RegisterHandler which is a completely
standalone registry for middleware that want to let it self know to
other middleware.
Currenly *autopath* uses this to call *kubernetes*'s AutoPath method
for dynamic autopathing.
* Drop GetMiddleware
* Register metrics
* drop the panic
|
|
Only use was in k8s middleware; no tests other than subzone_test.go
existed; not exercised: remove.
|
|
* middleware/authpath: Fix return from k8s mw
Return the correct search path from the kubernetes' AutoPath function.
Based on preliminary discussion in #870
* PodWithIP can be private
Fix and add docs to functions.
* CR: remove the error from AutoPathFunc
|
|
* mw/kubernetes: fix parseTests
Make parse tests table driven to remove a duplicate code, i.e. most
of the contents of parse_test.go can be removed as well as the
expectString helper function.
* cleanup parse tests
|
|
* middleware/kubernetes: pull TXT out of parseRequest
Put the TXT handling one layer higher and remove it from parseRequest.
Also rename the podsvc field in there to podOrSvc. Now that it isn't
used anymore for TXT record (dns-version) that was put in there. We can
make this a boolean (in a future PR).
Make parseRequest get an optional Zone that is from state.Zone and use
that instead of its own code. Removed some tests and other smaller
cleanups.
Fixes #836
* add this reverse
* another check
* readd
* Rename to kPod and kService for some clarity
|
|
Move reverse function and (some) test code to reverse*.go
|
|
Pull in the contents of routeRequest as it is only called once.
|
|
Call out to kubernetes to get the search path - this still needs
to return something sensible, but all infrastructure has landed
to make it work.
|
|
autopath as middleware
|