mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2024-05-11 05:55:12 +00:00
DOCS: Fix examples in documentation (#1435)
* Add example include * Replace example includes * Remove old example includes
This commit is contained in:
@ -12,8 +12,7 @@ The address should be an ip address, either a string, or a numeric value obtaine
|
|||||||
|
|
||||||
Modifiers can be any number of [record modifiers](#record-modifiers) or json objects, which will be merged into the record's metadata.
|
Modifiers can be any number of [record modifiers](#record-modifiers) or json objects, which will be merged into the record's metadata.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("R53"),
|
D("example.com", REGISTRAR, DnsProvider("R53"),
|
||||||
A("@", "1.2.3.4"),
|
A("@", "1.2.3.4"),
|
||||||
@ -22,5 +21,6 @@ D("example.com", REGISTRAR, DnsProvider("R53"),
|
|||||||
A("*", "1.2.3.4", {foo: 42})
|
A("*", "1.2.3.4", {foo: 42})
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -12,8 +12,7 @@ The address should be an IPv6 address as a string.
|
|||||||
|
|
||||||
Modifiers can be any number of [record modifiers](#record-modifiers) or json objects, which will be merged into the record's metadata.
|
Modifiers can be any number of [record modifiers](#record-modifiers) or json objects, which will be merged into the record's metadata.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var addrV6 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
|
var addrV6 = "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
|
||||||
|
|
||||||
@ -24,5 +23,6 @@ D("example.com", REGISTRAR, DnsProvider("R53"),
|
|||||||
AAAA("*", addrV6, {foo: 42})
|
AAAA("*", addrV6, {foo: 42})
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -14,12 +14,12 @@ The name should be the relative label for the domain.
|
|||||||
|
|
||||||
Target should be a string representing the target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
Target should be a string representing the target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("CLOUDFLARE"),
|
D("example.com", REGISTRAR, DnsProvider("CLOUDFLARE"),
|
||||||
ALIAS("@", "google.com."), // example.com -> google.com
|
ALIAS("@", "google.com."), // example.com -> google.com
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -17,8 +17,7 @@ data model.
|
|||||||
NOTE: No parenthesis should follow these keywords. That is, the
|
NOTE: No parenthesis should follow these keywords. That is, the
|
||||||
correct syntax is `AUTODNSSEC_ON` not `AUTODNSSEC_ON()`
|
correct syntax is `AUTODNSSEC_ON` not `AUTODNSSEC_ON()`
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", .... ,
|
D("example.com", .... ,
|
||||||
AUTODNSSEC_ON, // Enable AutoDNSSEC.
|
AUTODNSSEC_ON, // Enable AutoDNSSEC.
|
||||||
@ -30,8 +29,9 @@ D("insecure.com", .... ,
|
|||||||
A("@", "10.2.2.2")
|
A("@", "10.2.2.2")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
If neither `AUTODNSSEC_ON` or `AUTODNSSEC_OFF` is specified for a
|
If neither `AUTODNSSEC_ON` or `AUTODNSSEC_OFF` is specified for a
|
||||||
domain no changes will be requested.
|
domain no changes will be requested.
|
||||||
|
@ -42,13 +42,13 @@ Alias records can reference other record sets of the same type.
|
|||||||
For example, a DNS CNAME record set can be an alias to another CNAME record set.
|
For example, a DNS CNAME record set can be an alias to another CNAME record set.
|
||||||
This arrangement is useful if you want some record sets to be aliases and some non-aliases.
|
This arrangement is useful if you want some record sets to be aliases and some non-aliases.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("AZURE_DNS"),
|
D("example.com", REGISTRAR, DnsProvider("AZURE_DNS"),
|
||||||
AZURE_ALIAS("foo", "A", "/subscriptions/726f8cd6-6459-4db4-8e6d-2cd2716904e2/resourceGroups/test/providers/Microsoft.Network/trafficManagerProfiles/testpp2"), // record for traffic manager
|
AZURE_ALIAS("foo", "A", "/subscriptions/726f8cd6-6459-4db4-8e6d-2cd2716904e2/resourceGroups/test/providers/Microsoft.Network/trafficManagerProfiles/testpp2"), // record for traffic manager
|
||||||
AZURE_ALIAS("foo", "CNAME", "/subscriptions/726f8cd6-6459-4db4-8e6d-2cd2716904e2/resourceGroups/test/providers/Microsoft.Network/dnszones/example.com/A/quux."), // record in the same zone
|
AZURE_ALIAS("foo", "CNAME", "/subscriptions/726f8cd6-6459-4db4-8e6d-2cd2716904e2/resourceGroups/test/providers/Microsoft.Network/dnszones/example.com/A/quux."), // record in the same zone
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -19,8 +19,7 @@ Flags are controlled by modifier:
|
|||||||
|
|
||||||
CAA record is supported only by BIND, Google Cloud DNS, Amazon Route 53 and OVH. Some certificate authorities may not support this record until the mandatory date of September 2017.
|
CAA record is supported only by BIND, Google Cloud DNS, Amazon Route 53 and OVH. Some certificate authorities may not support this record until the mandatory date of September 2017.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
||||||
// Allow letsencrypt to issue certificate for this domain
|
// Allow letsencrypt to issue certificate for this domain
|
||||||
@ -32,5 +31,6 @@ D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
|||||||
CAA("@", "iodef", "mailto:test@example.com", CAA_CRITICAL)
|
CAA("@", "iodef", "mailto:test@example.com", CAA_CRITICAL)
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -25,12 +25,12 @@ only after sufficient time has elapsed to prove this is what you really want.
|
|||||||
|
|
||||||
This example redirects the bare (aka apex, or naked) domain to www:
|
This example redirects the bare (aka apex, or naked) domain to www:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("foo.com", .... ,
|
D("foo.com", .... ,
|
||||||
CF_REDIRECT("mydomain.com/*", "https://www.mydomain.com/$1"),
|
CF_REDIRECT("mydomain.com/*", "https://www.mydomain.com/$1"),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -18,12 +18,12 @@ backups and manually verifying `dnscontrol preview` output before running
|
|||||||
`dnscontrol push`. This is especially true when mixing Page Rules that are
|
`dnscontrol push`. This is especially true when mixing Page Rules that are
|
||||||
managed by DNSControl and those that aren't.
|
managed by DNSControl and those that aren't.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("foo.com", .... ,
|
D("foo.com", .... ,
|
||||||
CF_TEMP_REDIRECT("example.mydomain.com/*", "https://otherplace.yourdomain.com/$1"),
|
CF_TEMP_REDIRECT("example.mydomain.com/*", "https://otherplace.yourdomain.com/$1"),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -19,13 +19,13 @@ backups and manually verifying `dnscontrol preview` output before running
|
|||||||
|
|
||||||
This example assigns the patterns `api.foo.com/*` and `foo.com/api/*` to a `my-worker` script:
|
This example assigns the patterns `api.foo.com/*` and `foo.com/api/*` to a `my-worker` script:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("foo.com", .... ,
|
D("foo.com", .... ,
|
||||||
CF_WORKER_ROUTE("api.foo.com/*", "my-worker"),
|
CF_WORKER_ROUTE("api.foo.com/*", "my-worker"),
|
||||||
CF_WORKER_ROUTE("foo.com/api/*", "my-worker"),
|
CF_WORKER_ROUTE("foo.com/api/*", "my-worker"),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -11,8 +11,7 @@ Using `@` or `*` for CNAME records is not recommended, as different providers su
|
|||||||
|
|
||||||
Target should be a string representing the CNAME target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
Target should be a string representing the CNAME target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("R53"),
|
D("example.com", REGISTRAR, DnsProvider("R53"),
|
||||||
CNAME("foo", "google.com."), // foo.example.com -> google.com
|
CNAME("foo", "google.com."), // foo.example.com -> google.com
|
||||||
@ -20,5 +19,6 @@ D("example.com", REGISTRAR, DnsProvider("R53"),
|
|||||||
CNAME("def", "test"), // def.example.com -> test.example.com
|
CNAME("def", "test"), // def.example.com -> test.example.com
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -19,12 +19,12 @@ Digest Type must be a number.
|
|||||||
|
|
||||||
Digest must be a string.
|
Digest must be a string.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider(R53),
|
D("example.com", REGISTRAR, DnsProvider(R53),
|
||||||
DS("example.com", 2371, 13, 2, "ABCDEF")
|
DS("example.com", 2371, 13, 2, "ABCDEF")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -7,8 +7,7 @@ parameters:
|
|||||||
DefaultTTL sets the TTL for all records in a domain that do not explicitly set one with [TTL](#TTL). If neither `DefaultTTl` or `TTL` exist for a record,
|
DefaultTTL sets the TTL for all records in a domain that do not explicitly set one with [TTL](#TTL). If neither `DefaultTTl` or `TTL` exist for a record,
|
||||||
it will use the DNSControl global default of 300 seconds.
|
it will use the DNSControl global default of 300 seconds.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D('example.com', REGISTRAR, DnsProvider('R53'),
|
D('example.com', REGISTRAR, DnsProvider('R53'),
|
||||||
DefaultTTL("4h"),
|
DefaultTTL("4h"),
|
||||||
@ -19,5 +18,6 @@ D('example.com', REGISTRAR, DnsProvider('R53'),
|
|||||||
|
|
||||||
The DefaultTTL duration is the same format as [TTL](#TTL), an integer number of seconds
|
The DefaultTTL duration is the same format as [TTL](#TTL), an integer number of seconds
|
||||||
or a string with a unit such as `'4d'`.
|
or a string with a unit such as `'4d'`.
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -22,8 +22,7 @@ Technically `IGNORE_NAME` is a promise that DNSControl will not add, change, or
|
|||||||
|
|
||||||
In this example, DNSControl will insert/update the "baz.example.com" record but will leave unchanged the "foo.example.com" and "bar.example.com" ones.
|
In this example, DNSControl will insert/update the "baz.example.com" record but will leave unchanged the "foo.example.com" and "bar.example.com" ones.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com",
|
D("example.com",
|
||||||
`IGNORE_NAME`("foo"),
|
`IGNORE_NAME`("foo"),
|
||||||
@ -31,8 +30,9 @@ D("example.com",
|
|||||||
A("baz", "1.2.3.4")
|
A("baz", "1.2.3.4")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
`IGNORE_NAME` also supports glob patterns in the style of the [gobwas/glob](https://github.com/gobwas/glob) library. All of
|
`IGNORE_NAME` also supports glob patterns in the style of the [gobwas/glob](https://github.com/gobwas/glob) library. All of
|
||||||
the following patterns will work:
|
the following patterns will work:
|
||||||
|
@ -19,16 +19,16 @@ IGNORE_TARGET is generally used in very specific situations:
|
|||||||
|
|
||||||
In this example, DNSControl will insert/update the "baz.example.com" record but will leave unchanged a CNAME to "foo.acm-validations.aws" record.
|
In this example, DNSControl will insert/update the "baz.example.com" record but will leave unchanged a CNAME to "foo.acm-validations.aws" record.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com",
|
D("example.com",
|
||||||
IGNORE_TARGET('**.acm-validations.aws.', 'CNAME'),
|
IGNORE_TARGET('**.acm-validations.aws.', 'CNAME'),
|
||||||
A("baz", "1.2.3.4")
|
A("baz", "1.2.3.4")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
IGNORE_TARGET also supports glob patterns in the style of the [gobwas/glob](https://github.com/gobwas/glob#example) library. Some example patterns:
|
IGNORE_TARGET also supports glob patterns in the style of the [gobwas/glob](https://github.com/gobwas/glob#example) library. Some example patterns:
|
||||||
|
|
||||||
|
@ -23,8 +23,7 @@ You wouldn't want to maintain bar.com manually, would you? It would
|
|||||||
be very error prone. Therefore instead you maintain foo.com and
|
be very error prone. Therefore instead you maintain foo.com and
|
||||||
let `IMPORT_TRANSFORM` automatically generate bar.com.
|
let `IMPORT_TRANSFORM` automatically generate bar.com.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```text
|
```text
|
||||||
foo.com:
|
foo.com:
|
||||||
one.foo.com. IN A 1.2.3.1
|
one.foo.com. IN A 1.2.3.1
|
||||||
@ -39,13 +38,13 @@ bar.com:
|
|||||||
three.foo.com.bar.com. IN A 123.123.123.113
|
three.foo.com.bar.com. IN A 123.123.123.113
|
||||||
four.foo.com.bar.com. IN A 123.123.123.114
|
four.foo.com.bar.com. IN A 123.123.123.114
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
Here's how you'd implement this in DNSControl:
|
Here's how you'd implement this in DNSControl:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var TRANSFORM_INT = [
|
var TRANSFORM_INT = [
|
||||||
// RANGE_START, RANGE_END, NEW_BASE
|
// RANGE_START, RANGE_END, NEW_BASE
|
||||||
@ -65,8 +64,9 @@ D("bar.com", .... ,
|
|||||||
IMPORT_TRANSFORM(TRANSFORM_INT, 'foo.com', 300),
|
IMPORT_TRANSFORM(TRANSFORM_INT, 'foo.com', 300),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
Transform rules are: RANGE_START, RANGE_END, NEW_BASE. NEW_BASE may be:
|
Transform rules are: RANGE_START, RANGE_END, NEW_BASE. NEW_BASE may be:
|
||||||
|
|
||||||
|
@ -7,8 +7,7 @@ parameters:
|
|||||||
Includes all records from a given domain
|
Includes all records from a given domain
|
||||||
|
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com!external", REGISTRAR, DnsProvider(R53),
|
D("example.com!external", REGISTRAR, DnsProvider(R53),
|
||||||
A("test", "8.8.8.8")
|
A("test", "8.8.8.8")
|
||||||
@ -19,5 +18,6 @@ D("example.com!internal", REGISTRAR, DnsProvider(R53),
|
|||||||
A("home", "127.0.0.1")
|
A("home", "127.0.0.1")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -13,13 +13,13 @@ Priority should be a number.
|
|||||||
|
|
||||||
Target should be a string representing the MX target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
Target should be a string representing the MX target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider(R53),
|
D("example.com", REGISTRAR, DnsProvider(R53),
|
||||||
MX("@", 5, "mail"), // mx example.com -> mail.example.com
|
MX("@", 5, "mail"), // mx example.com -> mail.example.com
|
||||||
MX("sub", 10, "mail.foo.com.")
|
MX("sub", 10, "mail.foo.com.")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -17,8 +17,7 @@ delegations. `NAMESERVER()` is for informing upstream delegations.
|
|||||||
|
|
||||||
For more information, refer to [this page]({{site.github.url}}/nameservers).
|
For more information, refer to [this page]({{site.github.url}}/nameservers).
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, .... ,
|
D("example.com", REGISTRAR, .... ,
|
||||||
DnsProvider(route53, 0),
|
DnsProvider(route53, 0),
|
||||||
@ -33,8 +32,9 @@ D("example2.com", REGISTRAR, .... ,
|
|||||||
NAMESERVER("ns2.myserver.com."),
|
NAMESERVER("ns2.myserver.com."),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
|
|
||||||
# The difference between NS() and NAMESERVER()
|
# The difference between NS() and NAMESERVER()
|
||||||
|
@ -8,13 +8,13 @@ TTL sets the TTL on the domain apex NS RRs defined by [NAMESERVER](#NAMESERVER).
|
|||||||
|
|
||||||
The value can be an integer or a string. See [TTL](#TTL) for examples.
|
The value can be an integer or a string. See [TTL](#TTL) for examples.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D('example.com', REGISTRAR, DnsProvider('R53'),
|
D('example.com', REGISTRAR, DnsProvider('R53'),
|
||||||
NAMESERVER_TTL('2d'),
|
NAMESERVER_TTL('2d'),
|
||||||
NAMESERVER('ns')
|
NAMESERVER('ns')
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -15,15 +15,15 @@ zone, but otherwise leave the zone alone. Changes to "foo"'s IP
|
|||||||
address will update the record. Removing the A("foo", ...) record
|
address will update the record. Removing the A("foo", ...) record
|
||||||
from dnscontrol will leave the record in place.
|
from dnscontrol will leave the record in place.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", .... , NO_PURGE,
|
D("example.com", .... , NO_PURGE,
|
||||||
A("foo","1.2.3.4")
|
A("foo","1.2.3.4")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
The main caveat of NO_PURGE is that intentionally deleting records
|
The main caveat of NO_PURGE is that intentionally deleting records
|
||||||
becomes more difficult. Suppose a NO_PURGE zone has an record such
|
becomes more difficult. Suppose a NO_PURGE zone has an record such
|
||||||
|
@ -14,8 +14,7 @@ The difference between `NS()` and `NAMESERVER()` is explained in the `NAMESERVER
|
|||||||
|
|
||||||
Target should be a string representing the NS target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
Target should be a string representing the NS target. If it is a single label we will assume it is a relative name on the current domain. If it contains *any* dots, it should be a fully qualified domain name, ending with a `.`.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("R53"),
|
D("example.com", REGISTRAR, DnsProvider("R53"),
|
||||||
NS("foo", "ns1.example2.com."), // Delegate ".foo.example.com" zone to another server.
|
NS("foo", "ns1.example2.com."), // Delegate ".foo.example.com" zone to another server.
|
||||||
@ -24,5 +23,6 @@ D("example.com", REGISTRAR, DnsProvider("R53"),
|
|||||||
A("ns2.example2.com", "10.10.10.20"), // Glue records
|
A("ns2.example2.com", "10.10.10.20"), // Glue records
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -56,8 +56,7 @@ and A, B, C are the first 3 octets of the IP address. For example
|
|||||||
`172.20.18.130/27` is located in a zone named
|
`172.20.18.130/27` is located in a zone named
|
||||||
`128/27.18.20.172.in-addr.arpa`
|
`128/27.18.20.172.in-addr.arpa`
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D(REV('1.2.3.0/24'), REGISTRAR, DnsProvider(BIND),
|
D(REV('1.2.3.0/24'), REGISTRAR, DnsProvider(BIND),
|
||||||
PTR('1', 'foo.example.com.'),
|
PTR('1', 'foo.example.com.'),
|
||||||
@ -78,8 +77,9 @@ D(REV('2001:db8:302::/48'), REGISTRAR, DnsProvider(BIND),
|
|||||||
PTR('2001:db8:302::3', 'three.example.com.'), // '3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0'
|
PTR('2001:db8:302::3', 'three.example.com.'), // '3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0'
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
In the future we plan on adding a flag to `A()` which will insert
|
In the future we plan on adding a flag to `A()` which will insert
|
||||||
the correct PTR() record if the appropriate `.arpa` domain has been
|
the correct PTR() record if the appropriate `.arpa` domain has been
|
||||||
|
@ -12,31 +12,30 @@ These three examples all are equivalent.
|
|||||||
|
|
||||||
PURGE is the default:
|
PURGE is the default:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", .... ,
|
D("example.com", .... ,
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
Purge is the default, but we set it anyway:
|
Purge is the default, but we set it anyway:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", .... ,
|
D("example.com", .... ,
|
||||||
PURGE,
|
PURGE,
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
Since the "last command wins", this is the same as `PURGE`:
|
Since the "last command wins", this is the same as `PURGE`:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", .... ,
|
D("example.com", .... ,
|
||||||
PURGE,
|
PURGE,
|
||||||
@ -46,5 +45,6 @@ D("example.com", .... ,
|
|||||||
PURGE,
|
PURGE,
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -32,8 +32,7 @@ The zone id can be found depending on the target type:
|
|||||||
* _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
|
* _S3 bucket_ (configured as website): specify the hosted zone ID for the region that you created the bucket in. You can find it in [the List of regions and hosted Zone IDs](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)
|
||||||
* _Another Route 53 record_: you can either specify the correct zone id or do not specify anything and dnscontrol will figure out the right zone id. (Note: Route53 alias can't reference a record in a different zone).
|
* _Another Route 53 record_: you can either specify the correct zone id or do not specify anything and dnscontrol will figure out the right zone id. (Note: Route53 alias can't reference a record in a different zone).
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D('example.com', REGISTRAR, DnsProvider('ROUTE53'),
|
D('example.com', REGISTRAR, DnsProvider('ROUTE53'),
|
||||||
R53_ALIAS('foo', 'A', 'bar'), // record in same zone
|
R53_ALIAS('foo', 'A', 'bar'), // record in same zone
|
||||||
@ -43,5 +42,6 @@ D('example.com', REGISTRAR, DnsProvider('ROUTE53'),
|
|||||||
R53_ALIAS('foo', 'A', 'blahblah-bucket.s3-website-us-west-1.amazonaws.com.', R53_ZONE('Z2F56UZL2M1ACD')), // a website S3 Bucket in us-west-1
|
R53_ALIAS('foo', 'A', 'blahblah-bucket.s3-website-us-west-1.amazonaws.com.', R53_ZONE('Z2F56UZL2M1ACD')), // a website S3 Bucket in us-west-1
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -13,15 +13,15 @@ parameters:
|
|||||||
|
|
||||||
`SOA` adds an `SOA` record to a domain. The name should be `@`. ns and mbox are strings. The other fields are unsigned 32-bit ints.
|
`SOA` adds an `SOA` record to a domain. The name should be `@`. ns and mbox are strings. The other fields are unsigned 32-bit ints.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REG_THIRDPARTY, DnsProvider("DNS_BIND"),
|
D("example.com", REG_THIRDPARTY, DnsProvider("DNS_BIND"),
|
||||||
SOA("@", "ns3.example.org.", "hostmaster.example.org.", 3600, 600, 604800, 1440),
|
SOA("@", "ns3.example.org.", "hostmaster.example.org.", 3600, 600, 604800, 1440),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
## Notes:
|
## Notes:
|
||||||
|
|
||||||
|
@ -13,8 +13,7 @@ parameters:
|
|||||||
|
|
||||||
Priority, weight, and port are ints.
|
Priority, weight, and port are ints.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
||||||
// Create SRV records for a a SIP service:
|
// Create SRV records for a a SIP service:
|
||||||
@ -23,5 +22,6 @@ D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
|||||||
SRV('_sip._tcp', 10, 20, 5060, 'smallbox1.example.tld.'),
|
SRV('_sip._tcp', 10, 20, 5060, 'smallbox1.example.tld.'),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -28,10 +28,10 @@ SSHFP contains a fingerprint of a SSH server which can be validated before SSH c
|
|||||||
|
|
||||||
`value` is the fingerprint as a string.
|
`value` is the fingerprint as a string.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
SSHFP('@', 1, 1, '00yourAmazingFingerprint00'),
|
SSHFP('@', 1, 1, '00yourAmazingFingerprint00'),
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -15,13 +15,13 @@ Usage, selector, and type are ints.
|
|||||||
|
|
||||||
Certificate is a hex string.
|
Certificate is a hex string.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
D("example.com", REGISTRAR, DnsProvider("GCLOUD"),
|
||||||
// Create TLSA record for certificate used on TCP port 443
|
// Create TLSA record for certificate used on TCP port 443
|
||||||
TLSA("_443._tcp", 3, 1, 1, "abcdef0"),
|
TLSA("_443._tcp", 3, 1, 1, "abcdef0"),
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -18,8 +18,7 @@ will be done for you.
|
|||||||
|
|
||||||
Modifiers can be any number of [record modifiers](#record-modifiers) or json objects, which will be merged into the record's metadata.
|
Modifiers can be any number of [record modifiers](#record-modifiers) or json objects, which will be merged into the record's metadata.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("example.com", REGISTRAR, ....,
|
D("example.com", REGISTRAR, ....,
|
||||||
TXT('@', '598611146-3338560'),
|
TXT('@', '598611146-3338560'),
|
||||||
@ -30,8 +29,9 @@ Modifiers can be any number of [record modifiers](#record-modifiers) or json obj
|
|||||||
TXT('long', 'X'.repeat(300)) // Long strings are split automatically.
|
TXT('long', 'X'.repeat(300)) // Long strings are split automatically.
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
NOTE: In the past, long strings had to be annotated with the keyword
|
NOTE: In the past, long strings had to be annotated with the keyword
|
||||||
`AUTOSPLIT`. This is no longer required. The keyword is now a no-op.
|
`AUTOSPLIT`. This is no longer required. The keyword is now a no-op.
|
||||||
|
@ -17,8 +17,7 @@ Modifier arguments are processed according to type as follows:
|
|||||||
- An array argument will have all of it's members evaluated recursively. This allows you to combine multiple common records or modifiers into a variable that can
|
- An array argument will have all of it's members evaluated recursively. This allows you to combine multiple common records or modifiers into a variable that can
|
||||||
be used like a macro in multiple domains.
|
be used like a macro in multiple domains.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var REGISTRAR = NewRegistrar("name.com", "NAMEDOTCOM");
|
var REGISTRAR = NewRegistrar("name.com", "NAMEDOTCOM");
|
||||||
var r53 = NewDnsProvider("R53","ROUTE53");
|
var r53 = NewDnsProvider("R53","ROUTE53");
|
||||||
@ -44,8 +43,9 @@ D("example.com", REGISTRAR, DnsProvider(r53),
|
|||||||
GOOGLE_APPS_DOMAIN_MX
|
GOOGLE_APPS_DOMAIN_MX
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
|
|
||||||
# Split Horizon DNS
|
# Split Horizon DNS
|
||||||
@ -58,8 +58,7 @@ To differentiate the different domains, specify the domains as
|
|||||||
`domain.tld!tag`, such as `example.com!inside` and
|
`domain.tld!tag`, such as `example.com!inside` and
|
||||||
`example.com!outside`.
|
`example.com!outside`.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var REG = NewRegistrar("Third-Party", "NONE");
|
var REG = NewRegistrar("Third-Party", "NONE");
|
||||||
var DNS_INSIDE = NewDnsProvider("Cloudflare", "CLOUDFLAREAPI");
|
var DNS_INSIDE = NewDnsProvider("Cloudflare", "CLOUDFLAREAPI");
|
||||||
@ -77,8 +76,9 @@ D_EXTEND("example.com!inside",
|
|||||||
A("internal", "10.99.99.99")
|
A("internal", "10.99.99.99")
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
A domain name without a `!` is assigned a tag that is the empty
|
A domain name without a `!` is assigned a tag that is the empty
|
||||||
string. For example, `example.com` and `example.com!` are equivalent.
|
string. For example, `example.com` and `example.com!` are equivalent.
|
||||||
|
@ -7,8 +7,7 @@ parameters:
|
|||||||
`DEFAULTS` allows you to declare a set of default arguments to apply to all subsequent domains. Subsequent calls to [D](#D) will have these
|
`DEFAULTS` allows you to declare a set of default arguments to apply to all subsequent domains. Subsequent calls to [D](#D) will have these
|
||||||
arguments passed as if they were the first modifiers in the argument list.
|
arguments passed as if they were the first modifiers in the argument list.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var COMMON = NewDnsProvider("foo","BIND");
|
var COMMON = NewDnsProvider("foo","BIND");
|
||||||
// we want to create backup zone files for all domains, but not actually register them.
|
// we want to create backup zone files for all domains, but not actually register them.
|
||||||
@ -21,5 +20,6 @@ D("example.com", REGISTRAR, DnsProvider("R53"), A("@","1.2.3.4")); // this domai
|
|||||||
DEFAULTS();
|
DEFAULTS();
|
||||||
D("example2.com", REGISTRAR, DnsProvider("R53"), A("@","1.2.3.4")); // this domain will not have the previous defaults.
|
D("example2.com", REGISTRAR, DnsProvider("R53"), A("@","1.2.3.4")); // this domain will not have the previous defaults.
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -31,8 +31,7 @@ in a `D_EXTEND` subdomain may not be what you expect.
|
|||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D("domain.tld", REG, DnsProvider(DNS),
|
D("domain.tld", REG, DnsProvider(DNS),
|
||||||
A("@", "127.0.0.1"), // domain.tld
|
A("@", "127.0.0.1"), // domain.tld
|
||||||
@ -77,8 +76,9 @@ This will end up in the following modifications:
|
|||||||
#11: CREATE CNAME g.sub.sub.domain.tld h.sub.sub.domain.tld.
|
#11: CREATE CNAME g.sub.sub.domain.tld h.sub.sub.domain.tld.
|
||||||
#12: CREATE CNAME i.sub.domain.tld j.sub.domain.tld.
|
#12: CREATE CNAME i.sub.domain.tld j.sub.domain.tld.
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
ProTips: `D_EXTEND()` permits you to create very complex and
|
ProTips: `D_EXTEND()` permits you to create very complex and
|
||||||
sophisticated configurations, but you shouldn't. Be nice to the next
|
sophisticated configurations, but you shouldn't. Be nice to the next
|
||||||
|
@ -18,8 +18,7 @@ Otherwise the syntax of `FETCH` is the same as `fetch`.
|
|||||||
> 1. Relying on external sources adds a point of failure. If the external source doesn't work, your script won't either. Please make sure you are aware of the consequences.
|
> 1. Relying on external sources adds a point of failure. If the external source doesn't work, your script won't either. Please make sure you are aware of the consequences.
|
||||||
> 2. Make sure DnsControl only uses verified configuration if you want to use `FETCH`. For example, an attacker can send Pull Requests to your config repo, and have your CI test malicious configurations and make arbitrary HTTP requests. Therefore, `FETCH` must be explicitly enabled with flag `--allow-fetch` on DnsControl invocation.
|
> 2. Make sure DnsControl only uses verified configuration if you want to use `FETCH`. For example, an attacker can send Pull Requests to your config repo, and have your CI test malicious configurations and make arbitrary HTTP requests. Therefore, `FETCH` must be explicitly enabled with flag `--allow-fetch` on DnsControl invocation.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var REG_NONE = NewRegistrar('none', 'NONE');
|
var REG_NONE = NewRegistrar('none', 'NONE');
|
||||||
var DNS_BIND = NewDnsProvider('bind', 'BIND');
|
var DNS_BIND = NewDnsProvider('bind', 'BIND');
|
||||||
@ -42,5 +41,6 @@ FETCH('https://example.com', {
|
|||||||
]);
|
]);
|
||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -8,12 +8,12 @@ Converts an IPv4 address from string to an integer. This allows performing mathe
|
|||||||
|
|
||||||
This does not accept IPv6 addresses. (PRs gladly accepted.)
|
This does not accept IPv6 addresses. (PRs gladly accepted.)
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var addrA = IP('1.2.3.4')
|
var addrA = IP('1.2.3.4')
|
||||||
var addrB = addrA + 1
|
var addrB = addrA + 1
|
||||||
// addrB = 1.2.3.5
|
// addrB = 1.2.3.5
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -14,13 +14,13 @@ Metadata is an optional object, that will only be used by certain providers. See
|
|||||||
|
|
||||||
This function will return the name as a string so that you may assign it to a variable to use inside [D](#D) directives.
|
This function will return the name as a string so that you may assign it to a variable to use inside [D](#D) directives.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var REGISTRAR = NewRegistrar("name.com", "NAMEDOTCOM");
|
var REGISTRAR = NewRegistrar("name.com", "NAMEDOTCOM");
|
||||||
var R53 = NewDnsProvider("r53", "ROUTE53");
|
var R53 = NewDnsProvider("r53", "ROUTE53");
|
||||||
|
|
||||||
D("example.com", REGISTRAR, DnsProvider(R53), A("@","1.2.3.4"));
|
D("example.com", REGISTRAR, DnsProvider(R53), A("@","1.2.3.4"));
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -14,13 +14,13 @@ Metadata is an optional object, that will only be used by certain providers. See
|
|||||||
|
|
||||||
This function will return the name as a string so that you may assign it to a variable to use inside [D](#D) directives.
|
This function will return the name as a string so that you may assign it to a variable to use inside [D](#D) directives.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var REGISTRAR = NewRegistrar("name.com", "NAMEDOTCOM");
|
var REGISTRAR = NewRegistrar("name.com", "NAMEDOTCOM");
|
||||||
var r53 = NewDnsProvider("R53","ROUTE53");
|
var r53 = NewDnsProvider("R53","ROUTE53");
|
||||||
|
|
||||||
D("example.com", REGISTRAR, DnsProvider(r53), A("@","1.2.3.4"));
|
D("example.com", REGISTRAR, DnsProvider(r53), A("@","1.2.3.4"));
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -6,10 +6,10 @@ parameters:
|
|||||||
|
|
||||||
`PANIC` terminates the script and therefore DnsControl with an exit code of 1. This should be used if your script cannot gather enough information to generate records, for example when a HTTP request failed.
|
`PANIC` terminates the script and therefore DnsControl with an exit code of 1. This should be used if your script cannot gather enough information to generate records, for example when a HTTP request failed.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
PANIC("Something really bad has happened");
|
PANIC("Something really bad has happened");
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -29,8 +29,7 @@ Note that the lower bits (the ones outside the netmask) must be zeros. They are
|
|||||||
zeroed out automatically. Thus, `REV('1.2.3.4/24') is an error. This is done
|
zeroed out automatically. Thus, `REV('1.2.3.4/24') is an error. This is done
|
||||||
to catch typos.
|
to catch typos.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D(REV('1.2.3.0/24'), REGISTRAR, DnsProvider(BIND),
|
D(REV('1.2.3.0/24'), REGISTRAR, DnsProvider(BIND),
|
||||||
PTR("1", 'foo.example.com.'),
|
PTR("1", 'foo.example.com.'),
|
||||||
@ -47,8 +46,9 @@ D(REV('2001:db8:302::/48'), REGISTRAR, DnsProvider(BIND),
|
|||||||
PTR("2001:db8:302::3", 'three.example.com.'), // 3.0.0...
|
PTR("2001:db8:302::3", 'three.example.com.'), // 3.0.0...
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
In the future we plan on adding a flag to `A()` which will insert
|
In the future we plan on adding a flag to `A()` which will insert
|
||||||
the correct PTR() record if the appropriate `D(REV()` domain (i.e. `.arpa` domain) has been
|
the correct PTR() record if the appropriate `D(REV()` domain (i.e. `.arpa` domain) has been
|
||||||
|
@ -11,8 +11,7 @@ configured at the time the function is called. Calling this function early or la
|
|||||||
domains at the end of your configuration file.
|
domains at the end of your configuration file.
|
||||||
|
|
||||||
Example for adding records to all configured domains:
|
Example for adding records to all configured domains:
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var domains = getConfiguredDomains();
|
var domains = getConfiguredDomains();
|
||||||
for(i = 0; i < domains.length; i++) {
|
for(i = 0; i < domains.length; i++) {
|
||||||
@ -37,12 +36,12 @@ This will end up in following modifications:
|
|||||||
#1: CREATE TXT _important.domain2.tld "BLA" ttl=43200
|
#1: CREATE TXT _important.domain2.tld "BLA" ttl=43200
|
||||||
#2: REFRESH zone domain2.tld
|
#2: REFRESH zone domain2.tld
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
Example for adding DMARC report records:
|
Example for adding DMARC report records:
|
||||||
{% include startExample.html %}
|
{% capture example %}This example might be more useful, specially for configuring the DMARC report records. According to DMARC RFC you need to specify `domain2.tld._report.dmarc.domain1.tld` to allow `domain2.tld` to send aggregate/forensic email reports to `domain1.tld`. This can be used to do this in an easy way, without using the wildcard from the RFC.
|
||||||
This example might be more useful, specially for configuring the DMARC report records. According to DMARC RFC you need to specify `domain2.tld._report.dmarc.domain1.tld` to allow `domain2.tld` to send aggregate/forensic email reports to `domain1.tld`. This can be used to do this in an easy way, without using the wildcard from the RFC.
|
|
||||||
|
|
||||||
```js
|
```js
|
||||||
var domains = getConfiguredDomains();
|
var domains = getConfiguredDomains();
|
||||||
@ -64,5 +63,6 @@ This will end up in following modifications:
|
|||||||
#3: CREATE TXT domain4.tld._report._dmarc.domain2.tld "v=DMARC1" ttl=43200
|
#3: CREATE TXT domain4.tld._report._dmarc.domain2.tld "v=DMARC1" ttl=43200
|
||||||
#4: REFRESH zone domain2.tld
|
#4: REFRESH zone domain2.tld
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -18,8 +18,7 @@ the currently-loading file (which may not be the file where the
|
|||||||
is interpreted relative to the program's working directory at the time
|
is interpreted relative to the program's working directory at the time
|
||||||
of the call.
|
of the call.
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// dnsconfig.js
|
// dnsconfig.js
|
||||||
require('kubernetes/clusters.js');
|
require('kubernetes/clusters.js');
|
||||||
@ -52,14 +51,14 @@ function includeK8Sdev() {
|
|||||||
return [ /* ... */ ];
|
return [ /* ... */ ];
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
You can also use it to require json files and initialize variables with it:
|
You can also use it to require json files and initialize variables with it:
|
||||||
For Example:
|
For Example:
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// dnsconfig.js
|
// dnsconfig.js
|
||||||
var domains = require('./domain-ip-map.json')
|
var domains = require('./domain-ip-map.json')
|
||||||
@ -78,8 +77,9 @@ for (var domain in domains) {
|
|||||||
"myotherdomain.org": "5.5.5.5"
|
"myotherdomain.org": "5.5.5.5"
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
|
||||||
# Future
|
# Future
|
||||||
|
|
||||||
|
@ -22,8 +22,7 @@ The value can be:
|
|||||||
* If no unit is specified, the default is seconds.
|
* If no unit is specified, the default is seconds.
|
||||||
* We highly recommend using units instead of the number of seconds. Would your coworkers understand your intention better if you wrote `14400` or `'4h'`?
|
* We highly recommend using units instead of the number of seconds. Would your coworkers understand your intention better if you wrote `14400` or `'4h'`?
|
||||||
|
|
||||||
{% include startExample.html %}
|
{% capture example %}
|
||||||
|
|
||||||
```js
|
```js
|
||||||
D('example.com', REGISTRAR, DnsProvider('R53'),
|
D('example.com', REGISTRAR, DnsProvider('R53'),
|
||||||
DefaultTTL(2000),
|
DefaultTTL(2000),
|
||||||
@ -33,5 +32,6 @@ D('example.com', REGISTRAR, DnsProvider('R53'),
|
|||||||
A('demo2', '3.4.5.12', TTL('5w')), // 5 weeks
|
A('demo2', '3.4.5.12', TTL('5w')), // 5 weeks
|
||||||
);
|
);
|
||||||
```
|
```
|
||||||
|
{% endcapture %}
|
||||||
|
|
||||||
{% include endExample.html %}
|
{% include example.html content=example %}
|
||||||
|
@ -1,2 +0,0 @@
|
|||||||
|
|
||||||
</div>
|
|
@ -2,3 +2,5 @@
|
|||||||
<span class='expand-arrow'><i class="fa fa-caret-right" aria-hidden="true"></i></span>
|
<span class='expand-arrow'><i class="fa fa-caret-right" aria-hidden="true"></i></span>
|
||||||
<span class='collapse-arrow'><i class="fa fa-caret-down" aria-hidden="true"></i></span></span>
|
<span class='collapse-arrow'><i class="fa fa-caret-down" aria-hidden="true"></i></span></span>
|
||||||
<div class='collapse'>
|
<div class='collapse'>
|
||||||
|
{{ include.content | markdownify }}
|
||||||
|
</div>
|
Reference in New Issue
Block a user