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. 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 ## Examples

View File

@ -4,6 +4,7 @@
package example package example
import ( import (
"context"
"fmt" "fmt"
"io" "io"
"os" "os"
@ -13,7 +14,6 @@ import (
clog "github.com/coredns/coredns/plugin/pkg/log" clog "github.com/coredns/coredns/plugin/pkg/log"
"github.com/miekg/dns" "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 // 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 ( import (
"bytes" "bytes"
"context"
"testing" "testing"
"github.com/coredns/coredns/plugin/pkg/dnstest" "github.com/coredns/coredns/plugin/pkg/dnstest"
"github.com/coredns/coredns/plugin/test" "github.com/coredns/coredns/plugin/test"
"github.com/miekg/dns" "github.com/miekg/dns"
"golang.org/x/net/context"
) )
func TestExample(t *testing.T) { func TestExample(t *testing.T) {

4
go.mod
View File

@ -1,10 +1,10 @@
module github.com/coredns/example module github.com/coredns/example
go 1.12 go 1.13
require ( require (
github.com/caddyserver/caddy v1.0.1 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/miekg/dns v1.1.15
github.com/prometheus/client_golang v1.0.0 github.com/prometheus/client_golang v1.0.0
golang.org/x/net v0.0.0-20190628185345-da137c7871d7 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" "github.com/caddyserver/caddy"
) )
// init registers this plugin within the Caddy plugin framework. It uses "example" as the // init registers this plugin.
// name, and couples it to the Action "setup". func init() { plugin.Register("example", setup) }
func init() {
caddy.RegisterPlugin("example", caddy.Plugin{
ServerType: "dns",
Action: setup,
})
}
// setup is the function that gets called when the config parser see the token "example". Setup is responsible // 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". // for parsing any extra options the example plugin may have. The first token this function sees is "example".