Upgrade to latest coredns standards

* add ready, remove health
* use plugin.Register

Signed-off-by: Miek Gieben <miek@miek.nl>
This commit is contained in:
Miek Gieben 2019-09-24 07:16:55 +01:00
parent 9132b485e3
commit b5a549213e
7 changed files with 13 additions and 28 deletions

View File

@ -23,9 +23,9 @@ If monitoring is enabled (via the *prometheus* directive) the following metric i
The `server` label indicated which server handled the request, see the *metrics* plugin for details.
## Health
## Ready
This plugin implements dynamic health checking. It will always return healthy though.
This plugin reports readiness to the ready plugin. It will be immediately ready.
## Examples

View File

@ -4,6 +4,7 @@
package example
import (
"context"
"fmt"
"io"
"os"
@ -13,7 +14,6 @@ import (
clog "github.com/coredns/coredns/plugin/pkg/log"
"github.com/miekg/dns"
"golang.org/x/net/context"
)
// Define log to be a logger with the plugin name in it. This way we can just use log.Info and

View File

@ -2,13 +2,13 @@ package example
import (
"bytes"
"context"
"testing"
"github.com/coredns/coredns/plugin/pkg/dnstest"
"github.com/coredns/coredns/plugin/test"
"github.com/miekg/dns"
"golang.org/x/net/context"
)
func TestExample(t *testing.T) {

4
go.mod
View File

@ -1,10 +1,10 @@
module github.com/coredns/example
go 1.12
go 1.13
require (
github.com/caddyserver/caddy v1.0.1
github.com/coredns/coredns v1.5.2
github.com/coredns/coredns v1.6.3
github.com/miekg/dns v1.1.15
github.com/prometheus/client_golang v1.0.0
golang.org/x/net v0.0.0-20190628185345-da137c7871d7

View File

@ -1,14 +0,0 @@
package example
// Health implements the health.Healther interface.
func (e Example) Health() bool {
// More advanced plugins will check their state, i.e. are they
// synchronized correctly against their backend etc.
// Be careful though by making this a single point of failure. I.e. if 5 CoreDNS
// instances are talking to the same backend and the backend goes down, *all* your
// instances are unhealthy.
// This one just returns OK.
return true
}

5
ready.go Normal file
View File

@ -0,0 +1,5 @@
package example
// Ready implements the ready.Readiness interface, once this flips to true CoreDNS
// assumes this plugin is ready for queries; it is not checked again.
func (e Example) Ready() bool { return true }

View File

@ -8,14 +8,8 @@ import (
"github.com/caddyserver/caddy"
)
// init registers this plugin within the Caddy plugin framework. It uses "example" as the
// name, and couples it to the Action "setup".
func init() {
caddy.RegisterPlugin("example", caddy.Plugin{
ServerType: "dns",
Action: setup,
})
}
// init registers this plugin.
func init() { plugin.Register("example", setup) }
// setup is the function that gets called when the config parser see the token "example". Setup is responsible
// for parsing any extra options the example plugin may have. The first token this function sees is "example".