-
Notifications
You must be signed in to change notification settings - Fork 514
DOCS: Explain Bunny CNAME/ALIAS behavior. #4368
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -1,19 +1,22 @@ | ||||||||
| # Configuration | ||||||||
|
|
||||||||
| To use this provider, add an entry to `creds.json` with `TYPE` set to `BUNNY_DNS` along with | ||||||||
| your [Bunny API Key](https://dash.bunny.net/account/settings). | ||||||||
| To use this provider, add an entry to `creds.json` with `TYPE` set to | ||||||||
| `BUNNY_DNS` along with your | ||||||||
| [Bunny API Key](https://dash.bunny.net/account/settings). | ||||||||
|
|
||||||||
| Example: | ||||||||
|
|
||||||||
| {% code title="creds.json" %} | ||||||||
|
|
||||||||
| ```json | ||||||||
| { | ||||||||
| "bunny_dns": { | ||||||||
| "TYPE": "BUNNY_DNS", | ||||||||
| "api_key": "your-bunny-api-key" | ||||||||
| } | ||||||||
| "bunny_dns": { | ||||||||
| "TYPE": "BUNNY_DNS", | ||||||||
| "api_key": "your-bunny-api-key" | ||||||||
| } | ||||||||
| } | ||||||||
| ``` | ||||||||
|
|
||||||||
| {% endcode %} | ||||||||
|
|
||||||||
| You can also use environment variables: | ||||||||
|
|
@@ -23,70 +26,99 @@ export BUNNY_DNS_API_KEY=XXXXXXXXX | |||||||
| ``` | ||||||||
|
|
||||||||
| {% code title="creds.json" %} | ||||||||
|
|
||||||||
| ```json | ||||||||
| { | ||||||||
| "bunny_dns": { | ||||||||
| "TYPE": "BUNNY_DNS", | ||||||||
| "api_key": "$BUNNY_DNS_API_KEY" | ||||||||
| } | ||||||||
| "bunny_dns": { | ||||||||
| "TYPE": "BUNNY_DNS", | ||||||||
| "api_key": "$BUNNY_DNS_API_KEY" | ||||||||
| } | ||||||||
| } | ||||||||
| ``` | ||||||||
|
|
||||||||
| {% endcode %} | ||||||||
|
|
||||||||
| ## Metadata | ||||||||
|
|
||||||||
| This provider does not recognize any special metadata fields unique to Bunny DNS. | ||||||||
| This provider does not recognize any special metadata fields unique to Bunny | ||||||||
| DNS. | ||||||||
|
|
||||||||
| ## Limitations | ||||||||
|
|
||||||||
| ### Records | ||||||||
|
|
||||||||
| #### CNAME / ALIAS | ||||||||
|
|
||||||||
| Bunny supports adding CNAME records for the root domain (`@`), but within | ||||||||
| DNSControl the `ALIAS` record should be used. | ||||||||
|
|
||||||||
| ```javascript | ||||||||
| D('example.com', REG_NONE, DnsProvider(DSP_BUNNY_DNS), | ||||||||
| ALIAS('@', 'example2.com'), | ||||||||
| ); | ||||||||
| ``` | ||||||||
|
|
||||||||
| ## Usage | ||||||||
|
|
||||||||
| An example configuration: | ||||||||
|
|
||||||||
| {% code title="dnsconfig.js" %} | ||||||||
|
|
||||||||
| ```javascript | ||||||||
| var REG_NONE = NewRegistrar("none"); | ||||||||
| var DSP_BUNNY_DNS = NewDnsProvider("bunny_dns"); | ||||||||
| var REG_NONE = NewRegistrar('none'); | ||||||||
| var DSP_BUNNY_DNS = NewDnsProvider('bunny_dns'); | ||||||||
|
|
||||||||
| D("example.com", REG_NONE, DnsProvider(DSP_BUNNY_DNS), | ||||||||
| A("test", "1.2.3.4"), | ||||||||
| ); | ||||||||
| D('example.com', REG_NONE, DnsProvider(DSP_BUNNY_DNS), A('test', '1.2.3.4')); | ||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. JavaScript code should use double quotes (") for strings, not single quotes ('). See https://docs.dnscontrol.org/developer-info/styleguide-doc
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok, y'all have a
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah, that's certainly a contradiction! We use prettier for pkg/js/helpers.js and nothing else. We should update the style guide (or maybe change pkg/js/helpers.js to be the same as the docs?). CC @cafferata for his opinion.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Or use a .prettierignore file to ignore the docs. Or ideally just use Prettier for the docs (you can have a separate .prettierrc in the docs dir with different settings) and eliminate all the bikeshedding... To be clear, the huge problem right now is that because you have that .prettierrc file, Zed and VS Code and any other editor set up to respect them will reformat everything in a file when you make edits.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (thank you for your patience. I was traveling.) Ah, that's an interesting point about Zed and VS Code. I thought it wasn't a big issue because bin/generate-all.sh is specific to which file gets run. I like your proposed solution of using .prettierignore. Would you add that to this PR? |
||||||||
| ``` | ||||||||
|
|
||||||||
| {% endcode %} | ||||||||
|
|
||||||||
| # Activation | ||||||||
|
|
||||||||
| DNSControl depends on the [Bunny API](https://docs.bunny.net/reference/bunnynet-api-overview) to manage your DNS | ||||||||
| records. You will need to generate an [API key](https://dash.bunny.net/account/settings) to use this provider. | ||||||||
| DNSControl depends on the | ||||||||
| [Bunny API](https://docs.bunny.net/reference/bunnynet-api-overview) to manage | ||||||||
| your DNS records. You will need to generate an | ||||||||
| [API key](https://dash.bunny.net/account/settings) to use this provider. | ||||||||
|
|
||||||||
| ## New domains | ||||||||
|
|
||||||||
| If a domain does not exist in your Bunny account, DNSControl will automatically add it with the `push` command. | ||||||||
| If a domain does not exist in your Bunny account, DNSControl will automatically | ||||||||
| add it with the `push` command. | ||||||||
|
|
||||||||
| ## Custom record types | ||||||||
|
|
||||||||
| DNSControl supports only the custom record types listed below for Bunny DNS. Other Bunny-specific types | ||||||||
| (such as Script or Flatten) are not supported and will be ignored by DNSControl and left as-is. | ||||||||
| DNSControl supports only the custom record types listed below for Bunny DNS. | ||||||||
| Other Bunny-specific types (such as Script or Flatten) are not supported and | ||||||||
| will be ignored by DNSControl and left as-is. | ||||||||
|
|
||||||||
| ### Redirect | ||||||||
|
|
||||||||
| You can configure Bunny's Redirect type with `BUNNY_DNS_RDR`: | ||||||||
|
|
||||||||
| {% code title="dnsconfig.js" %} | ||||||||
|
|
||||||||
| ```javascript | ||||||||
| BUNNY_DNS_RDR("@", "https://foo.bar"), | ||||||||
| ``` | ||||||||
|
|
||||||||
| {% endcode %} | ||||||||
|
|
||||||||
| ### Pull Zone (PZ) | ||||||||
|
|
||||||||
| You can configure Bunny's Pull Zone type with `BUNNY_DNS_PZ`. The target is the Pull Zone ID: | ||||||||
| You can configure Bunny's Pull Zone type with `BUNNY_DNS_PZ`. The target is the | ||||||||
| Pull Zone ID: | ||||||||
|
Comment on lines
+108
to
+109
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
CC @cafferata Is it ok that these lines are being broken? I believe you recently unbroke lines. |
||||||||
|
|
||||||||
| {% code title="dnsconfig.js" %} | ||||||||
|
|
||||||||
| ```javascript | ||||||||
| BUNNY_DNS_PZ("@", 12345), | ||||||||
| ``` | ||||||||
|
|
||||||||
| {% endcode %} | ||||||||
|
|
||||||||
| ## Caveats | ||||||||
|
|
||||||||
| - Bunny DNS does not support dual-hosting or configuring custom TTLs for NS records on the zone apex. | ||||||||
| - While custom nameservers are properly recognized by this provider, it is currently not possible to configure them. | ||||||||
| - Bunny DNS does not support dual-hosting or configuring custom TTLs for NS | ||||||||
| records on the zone apex. | ||||||||
| - While custom nameservers are properly recognized by this provider, it is | ||||||||
| currently not possible to configure them. | ||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this needs a little more explanation. Something like:
Bunny supports adding CNAME records for the root domain (
@). Use theALIASrecord type and DNSControl will generate a CNAME as appropriate.