Rename middleware to plugin in content as well
This commit is contained in:
parent
1ee023f0ec
commit
fee7bdec56
|
@ -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).
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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:
|
||||
|
||||
~~~
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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`.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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`.
|
||||
|
||||
~~~
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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]`
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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).
|
||||
|
||||
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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"
|
||||
+++
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue