aboutsummaryrefslogtreecommitdiff
path: root/middleware/kubernetes/handler.go
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-11-05 15:43:27 +0000
committerGravatar GitHub <noreply@github.com> 2016-11-05 15:43:27 +0000
commit8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d (patch)
treeb36578d8d551e79810b504db8dac9550330c40d7 /middleware/kubernetes/handler.go
parent2cca527d9f17fd1595366545c47630bf35591873 (diff)
downloadcoredns-8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d.tar.gz
coredns-8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d.tar.zst
coredns-8d3418c01535f63129da2fe1ffd5ff8e4ceceb2d.zip
BackendService: add Reverse method (#381)
Add a Reverse method to BackendService because different backends want to to do diff. things. This allows etc/k8s to share even more code and we can unify the PTR handling.
Diffstat (limited to 'middleware/kubernetes/handler.go')
-rw-r--r--middleware/kubernetes/handler.go20
1 files changed, 2 insertions, 18 deletions
diff --git a/middleware/kubernetes/handler.go b/middleware/kubernetes/handler.go
index eb3071b18..e21ea6d58 100644
--- a/middleware/kubernetes/handler.go
+++ b/middleware/kubernetes/handler.go
@@ -22,24 +22,6 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M
m.SetReply(r)
m.Authoritative, m.RecursionAvailable, m.Compress = true, true, true
- // TODO: find an alternative to this block
- // TODO(miek): Why is this even here, why does the path Etcd takes not work?
- // Should be a "case PTR" below. I would also like to use middleware.PTR for this.
- ip := dnsutil.ExtractAddressFromReverse(state.Name())
- if ip != "" {
- records := k.getServiceRecordForIP(ip, state.Name())
- if len(records) > 0 {
- srvPTR := &records[0]
- m.Answer = append(m.Answer, srvPTR.NewPTR(state.QName(), ip))
-
- m = dnsutil.Dedup(m)
- state.SizeAndDo(m)
- m, _ = state.Scrub(m)
- w.WriteMsg(m)
- return dns.RcodeSuccess, nil
- }
- }
-
// Check that query matches one of the zones served by this middleware,
// otherwise delegate to the next in the pipeline.
zone := middleware.Zones(k.Zones).Matches(state.Name())
@@ -63,6 +45,8 @@ func (k Kubernetes) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.M
records, _, err = middleware.TXT(&k, zone, state, middleware.Options{})
case "CNAME":
records, _, err = middleware.CNAME(&k, zone, state, middleware.Options{})
+ case "PTR":
+ records, _, err = middleware.PTR(&k, zone, state, middleware.Options{})
case "MX":
records, extra, _, err = middleware.MX(&k, zone, state, middleware.Options{})
case "SRV":