Rename middleware to plugin in content as well

This commit is contained in:
Miek Gieben 2017-09-13 22:25:16 +01:00
parent 1ee023f0ec
commit fee7bdec56
39 changed files with 135 additions and 135 deletions

View File

@ -10,7 +10,7 @@ If you want to have your external plugin listed here send an email to the [cored
list](/community) with the details or create [a pull
request](https://github.com/coredns/coredns.io).
In that email or pull request you'll need to add a file to `content/blog/exmiddleware/` that looks
In that email or pull request you'll need to add a file to `content/blog/explugins/` that looks
like this:
~~~ txt
@ -33,13 +33,13 @@ The *<plugin name>* plugin is a ...
## How to Enable
Follow [these](/2017/07/25/compile-time-enabling-or-disabling-plugin/) steps.
Follow [these](/2017/07/25/compile-time-enabling-or-disabling-plugins/) steps.
~~~
See [shutdown.md for an example]
(https://github.com/coredns/new.coredns.io/blob/master/content/exmiddleware/shutdown.md) on how to do
(https://github.com/coredns/coredns.io/blob/master/content/explugins/shutdown.md) on how to do
this.
Note that **description** needs to be a full sentence, and that **repo** must be a Go-gettable link
that can be put in `plugin.cfg`. Also document in your README.md what would be suitable position
for your plugin in `plugin.cfg` (beginning, middle, end or give it a specific number).
that can be put in `plugins.cfg`. Also document in your README.md what would be suitable position
for your plugin in `plugins.cfg` (beginning, middle, end or give it a specific number).

View File

@ -40,7 +40,7 @@ plugin better, e.g. the proxy implementation is slow and needs to be
address.
* A *whoami* [plugin](https://github.com/coredns/coredns/tree/master/plugin/whoami) reports
back your address and port.
* All other middlewares are reworked to fit in the new plugin framework from Caddy version 0.9 (and
* All other plugins are reworked to fit in the new plugin framework from Caddy version 0.9 (and
up).
The *whoami* plugin is also used when CoreDNS starts up and can't find a Corefile.

View File

@ -11,7 +11,7 @@ remarkably [similar](https://github.com/mholt/caddy/wiki/Writing-a-Plugin:-Direc
slightly reworks (and simplifies in some cases) those pages.
A new plugin adds new functionality to CoreDNS, i.e. *caching*, *metrics* and basic *zone* file
serving are all middlewares.
serving are all plugins.
If you want to write a new plugin and want it to be included by default, i.e. merged in the code
base please open an [issue](https://github.com/coredns/coredns/issues) first to discuss initial design

View File

@ -25,7 +25,7 @@ Next *all* queries should be forwarded to 8.8.8.8:53.
Then because the *file* plugin **does not** specify what zones should be answered from the
`db.example.com` file, the toplevel one applies, which is root (`.`)
So we are left with a situation where both middlewares will be called for the same names (which can
So we are left with a situation where both plugins will be called for the same names (which can
be perfectly valid for plugin that calls other chained-in plugin).
But *proxy* **will not** call *file* because the query will be answered and done with after

View File

@ -7,7 +7,7 @@ date = "2017-07-25T16:07:39+01:00"
author = "miek"
+++
CoreDNS' [plugin](/plugin) (or [external plugin](/exmiddleware)) can be enabled or
CoreDNS' [plugin](/plugin) (or [external plugin](/explugins)) can be enabled or
disabled on the fly by specifying (or not specifying) it in the
[Corefile](/2017/07/23/corefile-explained/). But you can also compile CoreDNS with only the
plugin you *need* and leave the rest completely out.

View File

@ -57,7 +57,7 @@ Notice here that there are two different ports: 5300 and 53. Internally, each of
result in a [`dnsserver.Server`](https://github.com/coredns/coredns/blob/master/core/dnsserver/server.go).
Even though there are four _server blocks_ (stanzas), we only get two actual servers. CoreDNS will gather up all of the
server blocks associated with the same port and combine them in to the same `dnsserver.Server`. The server will
multiplex the queries on the port, passing them to the different _middleware chains_ depending upon the zone. It chooses
multiplex the queries on the port, passing them to the different _plugin chains_ depending upon the zone. It chooses
the most specific matching server block for the zone. If no server block matches, `SERVFAIL` is returned. This is shown
visually in the diagram below.

View File

@ -2,18 +2,18 @@
title = "alias"
description = "*alias* replaces zone apex CNAMEs."
weight = 10
tags = [ "middleware" , "alias" ]
categories = [ "middleware", "external" ]
tags = [ "plugin" , "alias" ]
categories = [ "plugin", "external" ]
date = "2017-07-25T21:57:00+08:00"
repo = "https://github.com/serverwentdown/alias"
home = "https://github.com/serverwentdown/alias/blob/master/README.md"
+++
The *alias* middleware eliminates CNAME records from zone apex by making the subsequent resolved
The *alias* plugin eliminates CNAME records from zone apex by making the subsequent resolved
records look like they belong to the zone apex. This behaves similarily to [CloudFlare's Zone
Flattening](https://support.cloudflare.com/hc/en-us/articles/200169056-CNAME-Flattening-RFC-compliant-support-for-CNAME-at-the-root).
This middleware only works with the `file` middleware with `upstream` set, or when A or AAAA records
This plugin only works with the `file` plugin with `upstream` set, or when A or AAAA records
exist alongside the CNAME record.
## Syntax
@ -50,4 +50,4 @@ example.com. 299 IN A 123.123.45.67
## How to Enable
Follow [these](/2017/07/25/compile-time-enabling-or-disabling-middleware/) steps.
Follow [these](/2017/07/25/compile-time-enabling-or-disabling-plugin/) steps.

View File

@ -2,8 +2,8 @@
title = "example"
description = "*example* prints 'example' on every query received."
weight = 10
tags = [ "middleware" , "example" ]
categories = [ "middleware", "external" ]
tags = [ "plugin" , "example" ]
categories = [ "plugin", "external" ]
date = "2017-07-25T21:57:00+08:00"
repo = "https://github.com/coredns/example/"
home = "https://github.com/coredns/example/blob/master/README.md"
@ -11,8 +11,8 @@ home = "https://github.com/coredns/example/blob/master/README.md"
# example
The example middleware prints "example" on every query received. It can be used as documentation for
writing external middleware and to test if external middleware compiles with CoreDNS.
The example plugin prints "example" on every query received. It can be used as documentation for
writing external plugin and to test if external plugin compiles with CoreDNS.
## Syntax
@ -33,5 +33,5 @@ example.com {
## How to Enable
Follow [these](/2017/07/25/compile-time-enabling-or-disabling-middleware/) steps,
*example* should be put relatively early in the middleware chain.
Follow [these](/2017/07/25/compile-time-enabling-or-disabling-plugin/) steps,
*example* should be put relatively early in the plugin chain.

View File

@ -2,8 +2,8 @@
title = "import"
description = "*import* allows you to use configuration from another file. It gets replaced with the contents of that file."
weight = 10
tags = [ "middleware" , "import" ]
categories = [ "middleware", "external" ]
tags = [ "plugin" , "import" ]
categories = [ "plugin", "external" ]
date = "2017-07-22T12:37:19+01:00"
repo = "https://github.com/mholt/caddy"
home = "https://caddyserver.com/docs/import"
@ -42,4 +42,4 @@ import ../zones/*
## How to Enable
This external middleware is included in the default CoreDNS configuration.
This external plugin is included in the default CoreDNS configuration.

View File

@ -2,15 +2,15 @@
title = "shutdown"
description = "*shutdown* executes a command when the server exits."
weight = 10
tags = [ "middleware" , "shutdown" ]
categories = [ "middleware", "external" ]
tags = [ "plugin" , "shutdown" ]
categories = [ "plugin", "external" ]
date = "2017-07-22T12:37:19+01:00"
repo = "https://github.com/mholt/caddy"
home = "https://caddyserver.com/docs/shutdown"
+++
This is useful for performing cleanup or stopping a background process. (Also see
[startup](/exmiddleware/startup).)
[startup](/explugins/startup).)
Each command that is executed at shutdown is blocking. The output and error of the command go to
stdout and stderr, respectively. There is no stdin.
@ -40,4 +40,4 @@ shutdown /etc/init.d/command stop
## How to Enable
This external middleware is included in the default CoreDNS configuration.
This external plugin is included in the default CoreDNS configuration.

View File

@ -2,15 +2,15 @@
title = "startup"
description = "*startup* executes a command when the server begins."
weight = 10
tags = [ "middleware" , "startup" ]
categories = [ "middleware", "external" ]
tags = [ "plugin" , "startup" ]
categories = [ "plugin", "external" ]
date = "2017-07-22T12:37:19+01:00"
repo = "https://github.com/mholt/caddy"
home = "https://caddyserver.com/docs/startup"
+++
This is useful for preparing to serve a zone by running a script or starting a background process.
(Also see [shutdown](/exmiddleware/shutdown).)
(Also see [shutdown](/explugins/shutdown).)
Each command that is executed at startup is blocking, unless you suffix the command with a space and
`&`, which will cause the command to be run in the background. The output and error of the command go
@ -42,4 +42,4 @@ startup "\"C:\Program Files\command.exe\" -b 127.0.0.1:9123" &
## How to Enable
This external middleware is included in the default CoreDNS configuration.
This external plugin is included in the default CoreDNS configuration.

View File

@ -2,12 +2,12 @@
title = "auto"
description = "*auto* enables serving zone data from an RFC 1035-style master file which is automatically picked up from disk."
weight = 1
tags = [ "middleware", "auto" ]
categories = [ "middleware" ]
tags = [ "plugin", "auto" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.761867"
+++
The *auto* middleware is used for an "old-style" DNS server. It serves from a preloaded file that exists
The *auto* plugin is used for an "old-style" DNS server. It serves from a preloaded file that exists
on disk. If the zone file contains signatures (i.e. is signed, i.e. DNSSEC) correct DNSSEC answers
are returned. Only NSEC is supported! If you use this setup *you* are responsible for resigning the
zonefile. New zones or changed zone are automatically picked up from disk.
@ -38,7 +38,7 @@ are used.
pointing to external names. **ADDRESS** can be an IP address, and IP:port or a string pointing to
a file that is structured as /etc/resolv.conf.
All directives from the *file* middleware are supported. Note that *auto* will load all zones found,
All directives from the *file* plugin are supported. Note that *auto* will load all zones found,
even though the directive might only receive queries for a specific zone. I.e:
~~~

View File

@ -1,9 +1,9 @@
+++
title = "autopath"
description = "The *autopath* middleware allows CoreDNS to perform server side search path completion. If it sees a query that matches the first element of the configured search path, *autopath* will follow the chain of search path elements and returns the first reply that is not NXDOMAIN. On any failures the original reply is returned."
description = "The *autopath* plugin allows CoreDNS to perform server side search path completion. If it sees a query that matches the first element of the configured search path, *autopath* will follow the chain of search path elements and returns the first reply that is not NXDOMAIN. On any failures the original reply is returned."
weight = 2
tags = [ "middleware", "autopath" ]
categories = [ "middleware" ]
tags = [ "plugin", "autopath" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.762159"
+++
@ -18,10 +18,10 @@ autopath [ZONE..] RESOLV-CONF
* **ZONES** zones *autopath* should be authoritative for.
* **RESOLV-CONF** points to a `resolv.conf` like file or uses a special syntax to point to another
middleware. For instance `@kubernetes`, will call out to the kubernetes middleware (for each
plugin. For instance `@kubernetes`, will call out to the kubernetes plugin (for each
query) to retrieve the search list it should use.
Currently the following set of middleware has implemented *autopath*:
Currently the following set of plugin has implemented *autopath*:
* *kubernetes*
* *erratic*
@ -39,9 +39,9 @@ Use `my-resolv.conf` as the file to get the search path from. This file only nee
autopath @kubernetes
~~~
Use the search path dynamically retrieved from the kubernetes middleware.
Use the search path dynamically retrieved from the kubernetes plugin.
## Bugs
When the *cache* middleware is enabled it is possible for pods in different namespaces to get the
When the *cache* plugin is enabled it is possible for pods in different namespaces to get the
same answer.

View File

@ -2,8 +2,8 @@
title = "bind"
description = "*bind* overrides the host to which the server should bind."
weight = 3
tags = [ "middleware", "bind" ]
categories = [ "middleware" ]
tags = [ "plugin", "bind" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.762316"
+++

View File

@ -2,8 +2,8 @@
title = "cache"
description = "*cache* enables a frontend cache. It will cache all records except zone transfers and metadata records."
weight = 4
tags = [ "middleware", "cache" ]
categories = [ "middleware" ]
tags = [ "plugin", "cache" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.762512"
+++

View File

@ -1,9 +1,9 @@
+++
title = "chaos"
description = "The *chaos* middleware allows CoreDNS to respond to TXT queries in the CH class."
description = "The *chaos* plugin allows CoreDNS to respond to TXT queries in the CH class."
weight = 5
tags = [ "middleware", "chaos" ]
categories = [ "middleware" ]
tags = [ "plugin", "chaos" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.762643"
+++
@ -18,7 +18,7 @@ chaos [VERSION] [AUTHORS...]
* **VERSION** is the version to return. Defaults to `CoreDNS-<version>`, if not set.
* **AUTHORS** is what authors to return. No default.
Note that you have to make sure that this middleware will get actual queries for the
Note that you have to make sure that this plugin will get actual queries for the
following zones: `version.bind`, `version.server`, `authors.bind`, `hostname.bind` and
`id.server`.

View File

@ -2,12 +2,12 @@
title = "debug"
description = "*debug* disables the automatic recovery upon a CoreDNS crash so that you'll get a nice stack trace."
weight = 6
tags = [ "middleware", "debug" ]
categories = [ "middleware" ]
tags = [ "plugin", "debug" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.762769"
+++
Note that the *errors* middleware (if loaded) will also set a `recover` negating this setting.
Note that the *errors* plugin (if loaded) will also set a `recover` negating this setting.
The main use of *debug* is to help testing.
## Syntax

View File

@ -2,8 +2,8 @@
title = "dnssec"
description = "*dnssec* enables on-the-fly DNSSEC signing of served data."
weight = 7
tags = [ "middleware", "dnssec" ]
categories = [ "middleware" ]
tags = [ "plugin", "dnssec" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.762938"
+++
@ -21,7 +21,7 @@ CSK (common signing key), forgoing the ZSK/KSK split. All signing operations are
Authenticated denial of existence is implemented with NSEC black lies. Using ECDSA as an algorithm
is preferred as this leads to smaller signatures (compared to RSA). NSEC3 is *not* supported.
If multiple *dnssec* middlewares are specified in the same zone, the last one specified will be
If multiple *dnssec* plugins are specified in the same zone, the last one specified will be
used ( see [bugs](#bugs) ).
* `ZONES` zones that should be signed. If empty, the zones from the configuration block
@ -38,7 +38,7 @@ used ( see [bugs](#bugs) ).
* generated private key `Kexample.org+013+45330.private`
* `cache_capacity` indicates the capacity of the cache. The dnssec middleware uses a cache to store
* `cache_capacity` indicates the capacity of the cache. The dnssec plugin uses a cache to store
RRSIGs. The default capacity is 10000.
## Metrics
@ -76,7 +76,7 @@ cluster.local:53 {
## Bugs
Multiple *dnssec* middlewares inside one server stanza will silently overwrite earlier ones, here
Multiple *dnssec* plugins inside one server stanza will silently overwrite earlier ones, here
`example.local` will overwrite the one for `cluster.local`.
~~~

View File

@ -2,8 +2,8 @@
title = "dnstap"
description = "*dnstap* enables logging to dnstap, a flexible, structured binary log format for DNS software: http://dnstap.info."
weight = 8
tags = [ "middleware", "dnstap" ]
categories = [ "middleware" ]
tags = [ "plugin", "dnstap" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.763093"
+++

View File

@ -1,17 +1,17 @@
+++
title = "erratic"
description = "*erratic* is a middleware useful for testing client behavior. It returns a static response to all queries, but the responses can be delayed, dropped or truncated."
description = "*erratic* is a plugin useful for testing client behavior. It returns a static response to all queries, but the responses can be delayed, dropped or truncated."
weight = 9
tags = [ "middleware", "erratic" ]
categories = [ "middleware" ]
tags = [ "plugin", "erratic" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.763257"
+++
The *erratic* middleware will respond to every A or AAAA query. For any other type it will return
The *erratic* plugin will respond to every A or AAAA query. For any other type it will return
a SERVFAIL response. The reply for A will return 192.0.2.53 (see RFC 5737), for AAAA it returns
2001:DB8::53 (see RFC 3849).
*erratic* can also be used in conjunction with the *autopath* middleware. This is mostly to aid in
*erratic* can also be used in conjunction with the *autopath* plugin. This is mostly to aid in
testing.
## Syntax

View File

@ -2,8 +2,8 @@
title = "errors"
description = "*errors* enables error logging."
weight = 10
tags = [ "middleware", "errors" ]
categories = [ "middleware" ]
tags = [ "plugin", "errors" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.763391"
+++

View File

@ -2,12 +2,12 @@
title = "etcd"
description = "*etcd* enables reading zone data from an etcd instance. The data in etcd has to be encoded as a [message](https://github.com/skynetservices/skydns/blob/2fcff74cdc9f9a7dd64189a447ef27ac354b725f/msg/service.go#L26) like [SkyDNS](https://github.com/skynetservices/skydns). It should also work just like SkyDNS."
weight = 11
tags = [ "middleware", "etcd" ]
categories = [ "middleware" ]
tags = [ "plugin", "etcd" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.763610"
+++
The etcd middleware makes extensive use of the proxy middleware to forward and query other servers
The etcd plugin makes extensive use of the proxy plugin to forward and query other servers
in the network.
## Syntax
@ -21,7 +21,7 @@ etcd [ZONES...]
The path will default to `/skydns` the local etcd proxy (http://localhost:2379).
If no zones are specified the block's zone will be used as the zone.
If you want to `round robin` A and AAAA responses look at the `loadbalance` middleware.
If you want to `round robin` A and AAAA responses look at the `loadbalance` plugin.
~~~
etcd [ZONES...] {
@ -37,12 +37,12 @@ etcd [ZONES...] {
* `stubzones` enables the stub zones feature. The stubzone is *only* done in the etcd tree located
under the *first* zone specified.
* `fallthrough` If zone matches but no record can be generated, pass request to the next middleware.
* `fallthrough` If zone matches but no record can be generated, pass request to the next plugin.
* **PATH** the path inside etcd. Defaults to "/skydns".
* **ENDPOINT** the etcd endpoints. Defaults to "http://localhost:2397".
* `upstream` upstream resolvers to be used resolve external names found in etcd (think CNAMEs)
pointing to external names. If you want CoreDNS to act as a proxy for clients, you'll need to add
the proxy middleware. **ADDRESS** can be an IP address, and IP:port or a string pointing to a file
the proxy plugin. **ADDRESS** can be an IP address, and IP:port or a string pointing to a file
that is structured as /etc/resolv.conf.
* `tls` followed by:
* no arguments, if the server certificate is signed by a system-installed CA and no client cert is needed

View File

@ -1,9 +1,9 @@
+++
title = "federation"
description = "The *federation* middleware enables [federated](https://kubernetes.io/docs/tasks/federation/federation-service-discovery/) queries to be resolved via the kubernetes middleware."
description = "The *federation* plugin enables [federated](https://kubernetes.io/docs/tasks/federation/federation-service-discovery/) queries to be resolved via the kubernetes plugin."
weight = 12
tags = [ "middleware", "federation" ]
categories = [ "middleware" ]
tags = [ "plugin", "federation" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.763770"
+++

View File

@ -2,12 +2,12 @@
title = "file"
description = "*file* enables serving zone data from an RFC 1035-style master file."
weight = 13
tags = [ "middleware", "file" ]
categories = [ "middleware" ]
tags = [ "plugin", "file" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.763913"
+++
The file middleware is used for an "old-style" DNS server. It serves from a preloaded file that exists
The file plugin is used for an "old-style" DNS server. It serves from a preloaded file that exists
on disk. If the zone file contains signatures (i.e. is signed, i.e. DNSSEC) correct DNSSEC answers
are returned. Only NSEC is supported! If you use this setup *you* are responsible for resigning the
zonefile.
@ -23,7 +23,7 @@ file DBFILE [ZONES...]
* **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
are used.
If you want to round robin A and AAAA responses look at the *loadbalance* middleware.
If you want to round robin A and AAAA responses look at the *loadbalance* plugin.
TSIG key configuration is TODO; directive format for transfer will probably be extended with
TSIG key information, something like `transfer out [ADDRESS...] key [NAME[:ALG]] [BASE64]`

View File

@ -2,8 +2,8 @@
title = "health"
description = "This module enables a simple health check endpoint. By default it will listen on port 8080."
weight = 14
tags = [ "middleware", "health" ]
categories = [ "middleware" ]
tags = [ "plugin", "health" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.764039"
+++
@ -15,8 +15,8 @@ health [ADDRESS]
Optionally takes an address; the default is `:8080`. The health path is fixed to `/health`. The
health endpoint returns a 200 response code and the word "OK" when CoreDNS is healthy. It returns
a 503. *health* periodically (1s) polls middleware that exports health information. If any of the
middleware signals that it is unhealthy, the server will go unhealthy too. Each middleware that
a 503. *health* periodically (1s) polls plugin that exports health information. If any of the
plugin signals that it is unhealthy, the server will go unhealthy too. Each plugin that
supports health checks has a section "Health" in their README.
## Examples

View File

@ -2,14 +2,14 @@
title = "hosts"
description = "*hosts* enables serving zone data from a `/etc/hosts` style file."
weight = 15
tags = [ "middleware", "hosts" ]
categories = [ "middleware" ]
tags = [ "plugin", "hosts" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.764175"
+++
The hosts middleware is useful for serving zones from a /etc/hosts file. It serves from a preloaded
The hosts plugin is useful for serving zones from a /etc/hosts file. It serves from a preloaded
file that exists on disk. It checks the file for changes and updates the zones accordingly. This
middleware only supports A, AAAA, and PTR records. The hosts middleware can be used with readily
plugin only supports A, AAAA, and PTR records. The hosts plugin can be used with readily
available hosts files that block access to advertising servers.
## Syntax
@ -24,7 +24,7 @@ hosts [FILE [ZONES...]] {
directive will be prepended to it. Defaults to /etc/hosts if omitted
* **ZONES** zones it should be authoritative for. If empty, the zones from the configuration block
are used.
* `fallthrough` If zone matches and no record can be generated, pass request to the next middleware.
* `fallthrough` If zone matches and no record can be generated, pass request to the next plugin.
## Examples
@ -41,7 +41,7 @@ hosts example.hosts
~~~
Load example.hosts file and only serve example.org and example.net from it and fall through to the
next middleware if query doesn't match.
next plugin if query doesn't match.
~~~
hosts example.hosts example.org example.net {

View File

@ -1,18 +1,18 @@
+++
title = "kubernetes"
description = "The *kubernetes* middleware enables the reading zone data from a Kubernetes cluster. It implements the [Kubernetes DNS-Based Service Discovery Specification](https://github.com/kubernetes/dns/blob/master/docs/specification.md)."
description = "The *kubernetes* plugin enables the reading zone data from a Kubernetes cluster. It implements the [Kubernetes DNS-Based Service Discovery Specification](https://github.com/kubernetes/dns/blob/master/docs/specification.md)."
weight = 16
tags = [ "middleware", "kubernetes" ]
categories = [ "middleware" ]
tags = [ "plugin", "kubernetes" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.764411"
+++
CoreDNS running the kubernetes middleware can be used as a replacement of kube-dns in a kubernetes
CoreDNS running the kubernetes plugin can be used as a replacement of kube-dns in a kubernetes
cluster. See the [deployment](https://github.com/coredns/deployment) repository for details on [how
to deploy CoreDNS in Kubernetes](https://github.com/coredns/deployment/tree/master/kubernetes).
[stubDomains](http://blog.kubernetes.io/2017/04/configuring-private-dns-zones-upstream-nameservers-kubernetes.html)
are implemented via the *proxy* middleware.
are implemented via the *proxy* plugin.
## Syntax
@ -20,10 +20,10 @@ are implemented via the *proxy* middleware.
kubernetes [ZONES...]
~~~
With only the directive specified, the *kubernetes* middleware will default to the zone specified in
With only the directive specified, the *kubernetes* plugin will default to the zone specified in
the server's block. It will handle all queries in that zone and connect to Kubernetes in-cluster. It
will not provide PTR records for services, or A records for pods. If **ZONES** is used it specifies
all the zones the middleware should be authoritative for.
all the zones the plugin should be authoritative for.
```
kubernetes [ZONES...] {
@ -73,7 +73,7 @@ kubernetes [ZONES...] {
5 seconds, the maximum is capped at 3600 seconds.
* `fallthrough` If a query for a record in the cluster zone results in NXDOMAIN, normally that is
what the response will be. However, if you specify this option, the query will instead be passed
on down the middleware chain, which can include another middleware to handle the query.
on down the plugin chain, which can include another plugin to handle the query.
## Examples
@ -108,7 +108,7 @@ kubernetes cluster.local {
}
~~~
Here we use the *proxy* middleware to implement stubDomains that forwards `example.org` and
Here we use the *proxy* plugin to implement stubDomains that forwards `example.org` and
`example.com` to another nameserver.
~~~ txt
@ -128,7 +128,7 @@ example.com {
## AutoPath
The *kubernetes* middleware can be used in conjunction with the *autopath* middleware. Using this
The *kubernetes* plugin can be used in conjunction with the *autopath* plugin. Using this
feature enables server-side domain search path completion in kubernetes clusters. Note: `pods` must
be set to `verified` for this to function properly.
@ -141,7 +141,7 @@ be set to `verified` for this to function properly.
## Federation
The *kubernetes* middleware can be used in conjunction with the *federation* middleware. Using this
The *kubernetes* plugin can be used in conjunction with the *federation* plugin. Using this
feature enables serving federated domains from the kubernetes clusters.
cluster.local {

View File

@ -2,8 +2,8 @@
title = "loadbalance"
description = "*loadbalance* acts as a round-robin DNS loadbalancer by randomizing the order of A and AAAA records in the answer."
weight = 17
tags = [ "middleware", "loadbalance" ]
categories = [ "middleware" ]
tags = [ "plugin", "loadbalance" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.764551"
+++

View File

@ -2,8 +2,8 @@
title = "log"
description = "*log* enables query logging to standard output."
weight = 18
tags = [ "middleware", "log" ]
categories = [ "middleware" ]
tags = [ "plugin", "log" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.764725"
+++

View File

@ -2,8 +2,8 @@
title = "prometheus"
description = "This module enables prometheus metrics for CoreDNS."
weight = 19
tags = [ "middleware", "metrics" ]
categories = [ "middleware" ]
tags = [ "plugin", "metrics" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.764877"
+++
@ -29,7 +29,7 @@ Extra labels used are:
other types.
* The `response_rcode_count_total` has an extra label `rcode` which holds the rcode of the response.
If monitoring is enabled, queries that do not enter the middleware chain are exported under the fake
If monitoring is enabled, queries that do not enter the plugin chain are exported under the fake
name "dropped" (without a closing dot - this is never a valid domain name).

View File

@ -2,8 +2,8 @@
title = "pprof"
description = "*pprof* publishes runtime profiling data at endpoints under /debug/pprof."
weight = 20
tags = [ "middleware", "pprof" ]
categories = [ "middleware" ]
tags = [ "plugin", "pprof" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.765098"
+++

View File

@ -2,13 +2,13 @@
title = "proxy"
description = "*proxy* facilitates both a basic reverse proxy and a robust load balancer."
weight = 21
tags = [ "middleware", "proxy" ]
categories = [ "middleware" ]
tags = [ "plugin", "proxy" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.765416"
+++
The proxy has support for multiple backends. The load balancing features include multiple policies,
health checks, and failovers. If all hosts fail their health check the proxy middleware will fail
health checks, and failovers. If all hosts fail their health check the proxy plugin will fail
back to randomly selecting a target and sending packets to it.
## Syntax
@ -58,7 +58,7 @@ proxy FROM TO... {
old DNS, and `https_google` uses `https://dns.google.com` and speaks a JSON DNS dialect. Note when
using this **TO** will be ignored. The `grpc` option will talk to a server that has implemented
the [DnsService](https://github.com/coredns/coredns/pb/dns.proto).
An out-of-tree middleware that implements the server side of this can be found at
An out-of-tree plugin that implements the server side of this can be found at
[here](https://github.com/infobloxopen/coredns-grpc).
## Policies
@ -96,7 +96,7 @@ payload over HTTPS). Note that with `https_google` the entire transport is encry
* **KEY** **CERT** **CACERT** - Client authentication is used with the specified key/cert pair. The
server certificate is verified using the **CACERT** file.
An out-of-tree middleware that implements the server side of this can be found at
An out-of-tree plugin that implements the server side of this can be found at
[here](https://github.com/infobloxopen/coredns-grpc).
## Metrics

View File

@ -1,9 +1,9 @@
+++
title = "reverse"
description = "The *reverse* middleware allows CoreDNS to respond dynamically to a PTR request and the related A/AAAA request."
description = "The *reverse* plugin allows CoreDNS to respond dynamically to a PTR request and the related A/AAAA request."
weight = 22
tags = [ "middleware", "reverse" ]
categories = [ "middleware" ]
tags = [ "plugin", "reverse" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.765679"
+++
@ -20,7 +20,7 @@ reverse NETWORK... {
* **NETWORK** one or more CIDR formatted networks to respond on.
* `hostname` injects the IP and zone to a template for the hostname. Defaults to "ip-{IP}.{zone[1]}". See below for template.
* `ttl` defaults to 60
* `fallthrough` if zone matches and no record can be generated, pass request to the next middleware.
* `fallthrough` if zone matches and no record can be generated, pass request to the next plugin.
* `wildcard` allows matches to catch all subdomains as well.
### Template Syntax

View File

@ -2,8 +2,8 @@
title = "rewrite"
description = "*rewrite* performs internal message rewriting."
weight = 23
tags = [ "middleware", "rewrite" ]
categories = [ "middleware" ]
tags = [ "plugin", "rewrite" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.765902"
+++

View File

@ -2,8 +2,8 @@
title = "root"
description = "*root* simply specifies the root of where CoreDNS finds (e.g.) zone files."
weight = 24
tags = [ "middleware", "root" ]
categories = [ "middleware" ]
tags = [ "plugin", "root" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.766138"
+++
@ -20,7 +20,7 @@ root PATH
## Examples
Serve zone data (when the *file* middleware is used) from `/etc/coredns/zones`:
Serve zone data (when the *file* plugin is used) from `/etc/coredns/zones`:
~~~ txt
root /etc/coredns/zones

View File

@ -2,8 +2,8 @@
title = "secondary"
description = "*secondary* enables serving a zone retrieved from a primary server."
weight = 25
tags = [ "middleware", "secondary" ]
categories = [ "middleware" ]
tags = [ "plugin", "secondary" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.766413"
+++

View File

@ -2,8 +2,8 @@
title = "tls"
description = "*tls* allows you to configure the server certificates for the TLS and gRPC servers. For other types of servers it is ignored."
weight = 26
tags = [ "middleware", "tls" ]
categories = [ "middleware" ]
tags = [ "plugin", "tls" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.766707"
+++

View File

@ -1,9 +1,9 @@
+++
title = "trace"
description = "This module enables OpenTracing-based tracing of DNS requests as they go through the middleware chain."
description = "This module enables OpenTracing-based tracing of DNS requests as they go through the plugin chain."
weight = 27
tags = [ "middleware", "trace" ]
categories = [ "middleware" ]
tags = [ "plugin", "trace" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.766958"
+++

View File

@ -2,8 +2,8 @@
title = "whoami"
description = "*whoami* returns your local IP address, port and transport used. Your local IP address is returned in the additional section as either an A or AAAA record."
weight = 28
tags = [ "middleware", "whoami" ]
categories = [ "middleware" ]
tags = [ "plugin", "whoami" ]
categories = [ "plugin" ]
date = "2017-09-10T18:11:52.767138"
+++
@ -14,7 +14,7 @@ The port and transport are included in the additional section as a SRV record, t
._<transport>.qname. 0 IN SRV 0 0 <port> .
~~~
The *whoami* middleware will respond to every A or AAAA query, regardless of the query name.
The *whoami* plugin will respond to every A or AAAA query, regardless of the query name.
## Syntax