aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes (follow)
AgeCommit message (Collapse)AuthorFilesLines
2017-09-14Remove the word middleware (#1067)Gravatar Miek Gieben 25-3445/+0
* 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
2017-09-12Remove debug queries (#1058)Gravatar Miek Gieben 4-30/+25
* 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
2017-09-07mw/etcd: fix 'fallthrough' (#1026)Gravatar Miek Gieben 1-4/+1
* 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.
2017-09-07mw/kubernetes: document stubDomain proxy (#1032)Gravatar Miek Gieben 1-11/+38
Mention stubdomains in the documentation, give an example and fix a few typos. Fixes #1028
2017-09-02mw/kubernetes: test cleanup (#1020)Gravatar Miek Gieben 4-53/+60
Move tests infra to look like all other middleware, and some small cleanups.
2017-09-01Add k8s tags to related tests (#1018)Gravatar Yong Tang 1-0/+3
, 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>
2017-09-01Add test for SRV on root (#1010)Gravatar Mohammed Naser 1-0/+6
2017-08-26mw/kubernetes: add configurable TTL (#995)Gravatar Miek Gieben 5-19/+85
* 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
2017-08-26Cleanup in go vet and misspell (#996)Gravatar Yong Tang 1-1/+1
Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
2017-08-25core: block CH queries earlier (#973)Gravatar Miek Gieben 1-5/+0
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.
2017-08-24mw/kubernetes: split up tests cases (#971)Gravatar Miek Gieben 4-75/+188
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.
2017-08-24Middleware/Kubernetes: Add RR check to K8s integration tests (#884)Gravatar Sandeep Rajan 1-13/+2
2017-08-23mw/kubernetes: revert if-else for health (#970)Gravatar Miek Gieben 1-51/+53
Do the return early and dedent the rest of the function.
2017-08-23Parse fix (#974)Gravatar Miek Gieben 2-0/+71
* 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
2017-08-23mw/kubernetes: remove kPod and kServices (#969)Gravatar Miek Gieben 6-152/+109
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.
2017-08-22mw/kubernetes: don't export Pod-mode constants. (#959)Gravatar Miek Gieben 4-42/+43
* mw/kubernetes: don't export Pod-mode constants. * merged
2017-08-22mw/kubernetes: resync to opts (#957)Gravatar Miek Gieben 5-63/+52
* 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
2017-08-22mw/kubernetes: Rewrite parseRequest and Readability improvements (#939)Gravatar Miek Gieben 7-151/+175
* 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
2017-08-22mw/*: updates docs about upstream (#968)Gravatar Miek Gieben 1-2/+2
Upstream allows file structured like /etc/resolv.conf. Update docs. Fixes #709
2017-08-22core: hide registerHandler (#964)Gravatar Miek Gieben 1-3/+0
* 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
2017-08-19Dns.join (#944)Gravatar Miek Gieben 2-6/+5
* Add dnsutil.Join * Create dnsutil.Join Create Join helper function and move bits in the code over.
2017-08-19backend.Records make it take request.Request (#943)Gravatar Miek Gieben 1-8/+3
This is more general and aligns well with the other methods. Also allows the kubernetes middleware to use it. Fixes #940
2017-08-19mw/kubernetes: remove zone from parseRequest (#938)Gravatar Miek Gieben 3-10/+12
* 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
2017-08-18mw/federation: add federation back as separate mw for k8s (#929)Gravatar Miek Gieben 12-102/+167
* 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
2017-08-17mw/kubernetes: add reverse test case (#932)Gravatar Miek Gieben 1-3/+7
Add a non-arpa testcase to the reverse test.
2017-08-16tests: add SortAndCheck helper (#926)Gravatar Miek Gieben 2-38/+2
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.
2017-08-16mw/kubernetes: add reverse_test.go (#922)Gravatar Miek Gieben 4-19/+150
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.
2017-08-16Reverse in k8s (#923)Gravatar Miek Gieben 2-1/+38
* 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
2017-08-14Make CoreDNS build on Go 1.7 (#919)Gravatar insomniac 1-1/+1
2017-08-14mw/kubernetes: remove federation and cidr (#916)Gravatar Miek Gieben 13-645/+152
* 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
2017-08-11Add Autopath section to k8s readme (#898)Gravatar Chris O'Haver 1-0/+9
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.
2017-08-11mw/k8s: cleanups (#893)Gravatar Miek Gieben 4-26/+12
* 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
2017-08-11README Typos (#897)Gravatar Chris O'Haver 1-3/+3
Found a few typos, spelling, and grammar errors.
2017-08-11Fix some typos in README (#896)Gravatar Chris O'Haver 1-2/+2
remove extraneous "]"s from the syntax def...
2017-08-11Use server block defaults (#894)Gravatar Miek Gieben 3-138/+91
* 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
2017-08-11mw/k8s: use request.Request in parseRequestGravatar Miek Gieben 5-19/+31
2017-08-11mw/k8s: remove k.defaultNsMsg() (#892)Gravatar Miek Gieben 2-16/+3
Remove k.defaultNSMsg() it is just one line of getting the service and it is another method that needlessly uses recordRequest.
2017-08-10Support multiple k8s api servers specification and load balance among api ↵Gravatar Yong Tang 4-4/+148
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>
2017-08-10mw/k8s: remove dependence on global var (#888)Gravatar Miek Gieben 3-89/+48
* 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
2017-08-10kw/middleware: compress the README (#889)Gravatar Miek Gieben 1-114/+33
Remove the examples, save one in the syntax section. The example section covers all. This brings the kubernetes README inline with other READMEs.
2017-08-10Kubernetes cleanup6 (#887)Gravatar Miek Gieben 3-27/+8
* mw/kubernetes: handle dns.TypeNS better. * mw/kubernetes: cleanup typeNS replies a bit.
2017-08-10core: replace GetMiddleware (#885)Gravatar Miek Gieben 1-0/+3
* 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
2017-08-10mw/kubernetes: remove subzones (#878)Gravatar Miek Gieben 3-85/+7
Only use was in k8s middleware; no tests other than subzone_test.go existed; not exercised: remove.
2017-08-10middleware/authpath: Fix return from k8s mw (#871)Gravatar Miek Gieben 3-12/+38
* 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
2017-08-10mw/kubernetes: fix parseTests (#875)Gravatar Miek Gieben 1-111/+47
* 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
2017-08-10WIP: Parserequest2 cutback (#868)Gravatar Miek Gieben 8-324/+313
* 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
2017-08-09middleware/kubernetes: put reverse function in own file (#863)Gravatar Miek Gieben 4-52/+66
Move reverse function and (some) test code to reverse*.go
2017-08-09mw/kubernetes: restore handler to pre-autopath state (#861)Gravatar Miek Gieben 1-34/+33
Pull in the contents of routeRequest as it is only called once.
2017-08-09mw/authpath: hook in kubernetees (#860)Gravatar Miek Gieben 2-9/+29
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.
2017-08-09WIP: autopath as middleware (#859)Gravatar Miek Gieben 10-626/+24
autopath as middleware