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:
parent
9132b485e3
commit
b5a549213e
@ -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
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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
4
go.mod
@ -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
|
||||||
|
14
health.go
14
health.go
@ -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
5
ready.go
Normal 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 }
|
10
setup.go
10
setup.go
@ -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".
|
||||||
|
Loading…
Reference in New Issue
Block a user