2017-08-09 03:13:38 -07:00
# autopath
2018-01-04 12:53:07 +00:00
## Name
2018-01-10 23:32:06 -08:00
*autopath* - allows for server-side search path completion.
2018-01-04 12:53:07 +00:00
## Description
2017-08-09 03:13:38 -07:00
2017-09-15 22:27:55 +01:00
If it sees a query that matches the first element of the configured search path, *autopath* will
2018-01-10 23:32:06 -08:00
follow the chain of search path elements and return the first reply that is not NXDOMAIN. On any
failures, the original reply is returned. Because *autopath* returns a reply for a name that wasn't
2017-09-15 22:27:55 +01:00
the original question it will add a CNAME that points from the original name (with the search path
element in it) to the name of this answer.
2017-08-09 03:13:38 -07:00
## Syntax
~~~
2017-10-10 09:39:35 +02:00
autopath [ZONE...] RESOLV-CONF
2017-08-09 03:13:38 -07:00
~~~
* **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
2017-09-14 09:36:06 +01:00
plugin. For instance `@kubernetes` , will call out to the kubernetes plugin (for each
2017-08-09 03:13:38 -07:00
query) to retrieve the search list it should use.
2017-12-12 15:40:30 -05:00
If a plugin implements the `AutoPather` interface then it can be used.
2017-08-09 03:13:38 -07:00
2017-10-15 19:39:24 +02:00
## Metrics
2017-12-12 15:40:30 -05:00
2017-10-15 19:39:24 +02:00
If monitoring is enabled (via the *prometheus* directive) then the following metric is exported:
2017-12-12 15:40:30 -05:00
2018-04-25 16:43:57 +01:00
* `coredns_autopath_success_count_total{server}` - counter of successfully autopath-ed queries.
The `server` label is explained in the *metrics* plugin documentation.
2017-10-15 19:39:24 +02:00
2017-08-09 03:13:38 -07:00
## Examples
~~~
autopath my-resolv.conf
~~~
Use `my-resolv.conf` as the file to get the search path from. This file only needs so have one line:
`search domain1 domain2 ...`
~~~
autopath @kubernetes
~~~
2018-01-10 23:32:06 -08:00
Use the search path dynamically retrieved from the *kubernetes* plugin.
2018-10-18 17:42:53 -04:00
## Known Issues
2019-04-01 10:38:17 -04:00
In Kubernetes, *autopath* is not compatible with pods running from Windows nodes.
If the server side search ultimately results in a negative answer (e.g. `NXDOMAIN` ), then the client will fruitlessly search all paths manually, thus negating the *autopath* optimization.