aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--corefile.5.md6
-rw-r--r--plugin/import/import.md73
2 files changed, 77 insertions, 2 deletions
diff --git a/corefile.5.md b/corefile.5.md
index 663b61e0a..a1ce4fed0 100644
--- a/corefile.5.md
+++ b/corefile.5.md
@@ -39,6 +39,8 @@ Comments may be started anywhere on a line.
Environment variables are supported and either the Unix or Windows form may be used: `{$ENV_VAR_1}`
or `{%ENV_VAR_2%}`.
+You can use the `import` "plugin" to include parts of other files.
+
If CoreDNS can’t find a Corefile to load it loads the following builtin one:
~~~ corefile
@@ -49,8 +51,7 @@ If CoreDNS can’t find a Corefile to load it loads the following builtin one:
## Import
-You can use the `import` "plugin" to include parts of other files, see <https://coredns.io/explugins/import>.
-This is enabled by default.
+You can use the `import` "plugin" to include parts of other files, see <https://coredns.io/plugins/import>.
## Snippets
@@ -133,3 +134,4 @@ Apache License 2.0
## See Also
The manual page for CoreDNS: coredns(1) and more documentation on <https://coredns.io>.
+Also see the [*import*](https://coredns.io/plugins/import)'s documentation.
diff --git a/plugin/import/import.md b/plugin/import/import.md
new file mode 100644
index 000000000..7e34097db
--- /dev/null
+++ b/plugin/import/import.md
@@ -0,0 +1,73 @@
+# import
+
+## Name
+
+*import* - include files or reference snippets from a Corefile.
+
+## Description
+
+The *import* plugin can be used to incude files into the main configuration. Another use it to
+reference predefined snippets. Both can help to avoid some duplication.
+
+This is a unique directive in that *import* can appear outside of a server block. In other words, it
+can appear at the top of a Corefile where an address would normally be.
+
+## Syntax
+
+~~~
+import PATTERN
+~~~
+
+* **PATTERN** is the file, glob pattern (`*`) or snippet to include. Its contents will replace
+ this line, as if that file's contents appeared here to begin with.
+
+## Files
+
+You can use *import* to include a file or files. This file's location is relative to the
+Corefile's location. It is an error if a specific file cannot be found, but an empty glob pattern is
+not an error.
+
+## Snippets
+
+You can define snippets to be reused later in your Corefile by defining a block with a single-token
+label surrounded by parentheses:
+
+~~~ corefile
+(mysnippet) {
+ ...
+}
+~~~
+
+Then you can invoke the snippet with *import*:
+
+~~~
+import mysnippet
+~~~
+
+## Examples
+
+Import a shared configuration:
+
+~~~
+. {
+ import config/common.conf
+}
+~~~
+
+Where `config/common.conf` contains:
+
+~~~
+prometheus
+errors
+log
+~~~
+
+This imports files found in the zones directory:
+
+~~~
+import ../zones/*
+~~~
+
+## Also See
+
+See corefile(5).