Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/coredns/example
Example middleware for CoreDNS
https://github.com/coredns/example
cncf dns
Last synced: 3 months ago
JSON representation
Example middleware for CoreDNS
- Host: GitHub
- URL: https://github.com/coredns/example
- Owner: coredns
- License: apache-2.0
- Created: 2017-07-29T08:18:14.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2020-09-25T06:06:41.000Z (about 4 years ago)
- Last Synced: 2024-04-17T18:05:14.696Z (7 months ago)
- Topics: cncf, dns
- Language: Go
- Size: 41 KB
- Stars: 44
- Watchers: 6
- Forks: 28
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-coredns - example - prints ‘example’ on every query received. (External Plguins)
README
# example
## Name
*example* - prints "example" after a query is handled.
## Description
The example plugin prints "example" on every query that got handled by the server. It serves as
documentation for writing CoreDNS plugins.## Compilation
This package will always be compiled as part of CoreDNS and not in a standalone way. It will require you to use `go get` or as a dependency on [plugin.cfg](https://github.com/coredns/coredns/blob/master/plugin.cfg).
The [manual](https://coredns.io/manual/toc/#what-is-coredns) will have more information about how to configure and extend the server with external plugins.
A simple way to consume this plugin, is by adding the following on [plugin.cfg](https://github.com/coredns/coredns/blob/master/plugin.cfg), and recompile it as [detailed on coredns.io](https://coredns.io/2017/07/25/compile-time-enabling-or-disabling-plugins/#build-with-compile-time-configuration-file).
~~~
example:github.com/coredns/example
~~~Put this early in the plugin list, so that *example* is executed before any of the other plugins.
After this you can compile coredns by:
``` sh
go generate
go build
```Or you can instead use make:
``` sh
make
```## Syntax
~~~ txt
example
~~~## Metrics
If monitoring is enabled (via the *prometheus* directive) the following metric is exported:
* `coredns_example_request_count_total{server}` - query count to the *example* plugin.
The `server` label indicated which server handled the request, see the *metrics* plugin for details.
## Ready
This plugin reports readiness to the ready plugin. It will be immediately ready.
## Examples
In this configuration, we forward all queries to 9.9.9.9 and print "example" whenever we receive
a query.~~~ corefile
. {
forward . 9.9.9.9
example
}
~~~Or without any external connectivity:
~~~ corefile
. {
whoami
example
}
~~~## Also See
See the [manual](https://coredns.io/manual).