aboutsummaryrefslogtreecommitdiff
path: root/plugin/cache/handler.go
diff options
context:
space:
mode:
authorGravatar Yong Tang <yong.tang.github@outlook.com> 2018-01-15 13:54:10 -0800
committerGravatar Miek Gieben <miek@miek.nl> 2018-01-15 21:54:10 +0000
commit9d87b953a0c6b83e214c4152a9c38082ea83246d (patch)
treefbc85c4e972e5cb752bd303a5b532ed2165bbf4a /plugin/cache/handler.go
parent584dd87c70e29abc373f88be52bd2eee287ecace (diff)
downloadcoredns-9d87b953a0c6b83e214c4152a9c38082ea83246d.tar.gz
coredns-9d87b953a0c6b83e214c4152a9c38082ea83246d.tar.zst
coredns-9d87b953a0c6b83e214c4152a9c38082ea83246d.zip
Enhancement of external plugin enabling (#1392)
This fix is an enhancement of external plugin enabling. Previously, it was already able to build a customerized coredns with plugins enabled selectively, without changing coredns source code. However, all default plugins are actually bundled because of the import rule: ``` "github.com/coredns/coredns/coremain" ``` The issue is best described with the following: ``` root@localhost:/go/src/github.com/coredns/coredns/sample# cat sample.go package main import ( _ "github.com/coredns/forward" "github.com/coredns/coredns/coremain" "github.com/coredns/coredns/core/dnsserver" ) var directives = []string{ "forward", "startup", "shutdown", } func init() { dnsserver.Directives = directives } func main() { coremain.Run() } root@localhost:/go/src/github.com/coredns/coredns/sample# root@localhost:/go/src/github.com/coredns/coredns/sample# go build -v sample.go root@localhost:/go/src/github.com/coredns/coredns/sample# ./sample -plugins root@localhost:/go/src/github.com/coredns/coredns/sample# ./sample -plugins Server types: dns Caddyfile loaders: flag default Other plugins: dns.auto dns.autopath dns.bind dns.cache dns.chaos dns.debug dns.dnssec dns.dnstap dns.erratic dns.errors dns.etcd dns.federation dns.file dns.forward dns.health dns.hosts dns.kubernetes dns.loadbalance dns.log dns.nsid dns.pprof dns.prometheus dns.proxy dns.reverse dns.rewrite dns.root dns.route53 dns.secondary dns.template .... ``` This fix moves zplugins.go to a different package/directory so that it is possible to "only import plugins as needed". The following is the new output after this fix: ``` root@localhost:/go/src/github.com/coredns/coredns/sample# ./sample -plugins Server types: dns Caddyfile loaders: flag default Other plugins: dns.forward dns.prometheus shutdown startup root@localhost:/go/src/github.com/coredns/coredns/sample# ``` Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
Diffstat (limited to 'plugin/cache/handler.go')
0 files changed, 0 insertions, 0 deletions