Skip to content

Commit 3bfaa37

Browse files
committed
NEW PROVIDER: OpenWrt
1 parent 1343b23 commit 3bfaa37

File tree

12 files changed

+710
-2
lines changed

12 files changed

+710
-2
lines changed

.github/workflows/pr_integration_tests.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
Write-Host "Integration test providers: $Providers"
6666
echo "integration_test_providers=$(ConvertTo-Json -InputObject $Providers -Compress)" >> $env:GITHUB_OUTPUT
6767
env:
68-
PROVIDERS: "['ALIDNS', 'AXFRDDNS', 'AXFRDDNS_DNSSEC', 'AZURE_DNS','BIND','BUNNY_DNS','CLOUDFLAREAPI','CLOUDNS','CNR','DIGITALOCEAN','FORTIGATE','GANDI_V5','GCLOUD','GIDINET','HEDNS','HETZNER_V2','HUAWEICLOUD','INWX','JOKER','MIKROTIK','MYTHICBEASTS', 'NAMEDOTCOM','NS1','POWERDNS','ROUTE53','SAKURACLOUD','TRANSIP','UNIFI']"
68+
PROVIDERS: "['ALIDNS', 'AXFRDDNS', 'AXFRDDNS_DNSSEC', 'AZURE_DNS','BIND','BUNNY_DNS','CLOUDFLAREAPI','CLOUDNS','CNR','DIGITALOCEAN','FORTIGATE','GANDI_V5','GCLOUD','GIDINET','HEDNS','HETZNER_V2','HUAWEICLOUD','INWX','JOKER','MIKROTIK','MYTHICBEASTS', 'NAMEDOTCOM','NS1','OPENWRT','POWERDNS','ROUTE53','SAKURACLOUD','TRANSIP','UNIFI']"
6969
ENV_CONTEXT: ${{ toJson(env) }}
7070
VARS_CONTEXT: ${{ toJson(vars) }}
7171
SECRETS_CONTEXT: ${{ toJson(secrets) }}
@@ -109,6 +109,7 @@ jobs:
109109
MYTHICBEASTS_DOMAIN: ${{ vars.MYTHICBEASTS_DOMAIN }}
110110
NAMEDOTCOM_DOMAIN: ${{ vars.NAMEDOTCOM_DOMAIN }}
111111
NS1_DOMAIN: ${{ vars.NS1_DOMAIN }}
112+
OPENWRT_DOMAIN: ${{ vars.OPENWRT_DOMAIN }}
112113
POWERDNS_DOMAIN: ${{ vars.POWERDNS_DOMAIN }}
113114
ROUTE53_DOMAIN: ${{ vars.ROUTE53_DOMAIN }}
114115
SAKURACLOUD_DOMAIN: ${{ vars.SAKURACLOUD_DOMAIN }}
@@ -199,6 +200,10 @@ jobs:
199200
#
200201
NS1_TOKEN: ${{ secrets.NS1_TOKEN }}
201202
#
203+
OPENWRT_USERNAME: ${{ secrets.OPENWRT_USERNAME }}
204+
OPENWRT_PASSWORD: ${{ secrets.OPENWRT_PASSWORD }}
205+
OPENWRT_HOST: ${{ secrets.OPENWRT_HOST }}
206+
#
202207
POWERDNS_APIKEY: ${{ secrets.POWERDNS_APIKEY }}
203208
POWERDNS_APIURL: ${{ secrets.POWERDNS_APIURL }}
204209
POWERDNS_SERVERNAME: ${{ secrets.POWERDNS_SERVERNAME }}

.goreleaser.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ changelog:
3737
regexp: "(?i)^.*(major|new provider|feature)[(\\w)]*:+.*$"
3838
order: 1
3939
- title: 'Provider-specific changes:'
40-
regexp: "(?i)((adguardhome|akamaiedgedns|alidns|autodns|axfrddns|azure_dns|azure_private_dns|bind|bunny_dns|cloudflare|cloudflareapi|cloudns|cnr|cscglobal|desec|digitalocean|dnscale|dnsimple|dnsmadeeasy|dnsoverhttps|domainnameshop|dynadot|easyname|exoscale|fortigate|gandi_v5|gcloud|gcore|gidinet|hedns|hetzner|hetzner_v2|hostingde|huaweicloud|infomaniak|internetbs|inwx|joker|linode|loopia|luadns|mikrotik|mythicbeasts|namecheap|namedotcom|netcup|netlify|ns1|opensrs|oracle|ovh|packetframe|porkbun|powerdns|realtimeregister|route53|rwth|sakuracloud|softlayer|transip|unifi|vercel|vultr).*:)+.*"
40+
regexp: "(?i)((adguardhome|akamaiedgedns|alidns|autodns|axfrddns|azure_dns|azure_private_dns|bind|bunny_dns|cloudflare|cloudflareapi|cloudns|cnr|cscglobal|desec|digitalocean|dnscale|dnsimple|dnsmadeeasy|dnsoverhttps|domainnameshop|dynadot|easyname|exoscale|fortigate|gandi_v5|gcloud|gcore|gidinet|hedns|hetzner|hetzner_v2|hostingde|huaweicloud|infomaniak|internetbs|inwx|joker|linode|loopia|luadns|mikrotik|mythicbeasts|namecheap|namedotcom|netcup|netlify|ns1|opensrs|openwrt|oracle|ovh|packetframe|porkbun|powerdns|realtimeregister|route53|rwth|sakuracloud|softlayer|transip|unifi|vercel|vultr).*:)+.*"
4141
order: 2
4242
- title: 'Documentation:'
4343
regexp: "(?i)^.*(docs)[(\\w)]*:+.*$"

OWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ providers/netcup @kordianbruck
4646
providers/netlify @SphericalKat
4747
providers/ns1 @costasd
4848
# providers/opensrs NEEDS VOLUNTEER
49+
providers/openwrt @huskyistaken
4950
providers/oracle @kallsyms
5051
providers/ovh @masterzen
5152
providers/packetframe @hamptonmoore

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Currently supported DNS providers:
5959
- Netcup
6060
- Netlify
6161
- NS1
62+
- OpenWrt
6263
- Oracle Cloud
6364
- OVH
6465
- Packetframe

documentation/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@
169169
* [Netcup](provider/netcup.md)
170170
* [Netlify](provider/netlify.md)
171171
* [NS1](provider/ns1.md)
172+
* [OpenWrt](provider/openwrt.md)
172173
* [OpenSRS](provider/opensrs.md)
173174
* [Oracle Cloud](provider/oracle.md)
174175
* [OVH](provider/ovh.md)

documentation/provider/index.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ Jump to a table:
7373
| [`NETLIFY`](netlify.md) ||||
7474
| [`NS1`](ns1.md) ||||
7575
| [`OPENSRS`](opensrs.md) ||||
76+
| [`OPENWRT`](openwrt.md) ||||
7677
| [`ORACLE`](oracle.md) ||||
7778
| [`OVH`](ovh.md) ||||
7879
| [`PACKETFRAME`](packetframe.md) ||||
@@ -140,6 +141,7 @@ Jump to a table:
140141
| [`NETLIFY`](netlify.md) |||||
141142
| [`NS1`](ns1.md) |||||
142143
| [`OPENSRS`](opensrs.md) |||||
144+
| [`OPENWRT`](openwrt.md) |||||
143145
| [`ORACLE`](oracle.md) |||||
144146
| [`OVH`](ovh.md) |||||
145147
| [`PACKETFRAME`](packetframe.md) |||||
@@ -202,6 +204,7 @@ Jump to a table:
202204
| [`NETCUP`](netcup.md) ||||||
203205
| [`NETLIFY`](netlify.md) ||||||
204206
| [`NS1`](ns1.md) ||||||
207+
| [`OPENWRT`](openwrt.md) ||||||
205208
| [`ORACLE`](oracle.md) ||||||
206209
| [`OVH`](ovh.md) ||||||
207210
| [`PACKETFRAME`](packetframe.md) ||||||
@@ -263,6 +266,7 @@ Jump to a table:
263266
| [`NETCUP`](netcup.md) |||||
264267
| [`NETLIFY`](netlify.md) |||||
265268
| [`NS1`](ns1.md) |||||
269+
| [`OPENWRT`](openwrt.md) |||||
266270
| [`ORACLE`](oracle.md) |||||
267271
| [`OVH`](ovh.md) |||||
268272
| [`PACKETFRAME`](packetframe.md) |||||
@@ -460,6 +464,7 @@ Providers in this category and their maintainers are:
460464
|[`NETLIFY`](netlify.md)|@SphericalKat|
461465
|[`NS1`](ns1.md)|@costasd|
462466
|[`OPENSRS`](opensrs.md)|@philhug|
467+
|[`OPENWRT`](openwrt.md)|@huskyistaken|
463468
|[`ORACLE`](oracle.md)|@kallsyms|
464469
|[`OVH`](ovh.md)|@masterzen|
465470
|[`PACKETFRAME`](packetframe.md)|@hamptonmoore|

documentation/provider/openwrt.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
This is the provider for [OpenWrt](https://openwrt.org/).
2+
3+
## Important notes
4+
5+
This provider only supports the following record types.
6+
7+
* [A](../language-reference/domain-modifiers/A.md)
8+
* [AAAA](../language-reference/domain-modifiers/AAAA.md)
9+
* [CNAME](../language-reference/domain-modifiers/CNAME.md)
10+
* [MX](../language-reference/domain-modifiers/MX.md)
11+
* [SRV](../language-reference/domain-modifiers/SRV.md)
12+
13+
## Configuration
14+
15+
To use this provider, add an entry to `creds.json` with `TYPE` set to `OPENWRT`.
16+
17+
Required fields include:
18+
19+
* `username` and `password`: Authentication information
20+
* `host`: The hostname/address of OpenWrt instance
21+
22+
Example:
23+
24+
{% code title="creds.json" %}
25+
```json
26+
{
27+
"openwrt": {
28+
"TYPE": "OPENWRT",
29+
"username": "root",
30+
"password": "your-password",
31+
"host": "http://192.168.1.1"
32+
}
33+
}
34+
```
35+
{% endcode %}
36+
37+
## Usage
38+
39+
An example configuration:
40+
41+
{% code title="dnsconfig.js" %}
42+
```javascript
43+
var REG_NONE = NewRegistrar("none");
44+
var DSP_OPENWRT = NewDnsProvider("openwrt");
45+
46+
D("example.com", REG_NONE, DnsProvider(DSP_OPENWRT),
47+
A("foo", "1.2.3.4"),
48+
AAAA("another", "2003::1"),
49+
CNAME("myalias", "www.example.com."),
50+
MX("@", 5, "mail"),
51+
SRV("_sip._tcp", 10, 60, 5060, "pbx.example.com."),
52+
);
53+
```
54+
{% endcode %}

integrationTest/profiles.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,13 @@
290290
"api_token": "$NS1_TOKEN",
291291
"domain": "$NS1_DOMAIN"
292292
},
293+
"OPENWRT": {
294+
"TYPE": "OPENWRT",
295+
"domain": "$OPENWRT_DOMAIN",
296+
"host": "$OPENWRT_HOST",
297+
"username": "$OPENWRT_USERNAME",
298+
"password": "$OPENWRT_PASSWORD"
299+
},
293300
"ORACLE": {
294301
"TYPE": "ORACLE",
295302
"compartment": "$ORACLE_COMPARTMENT",

pkg/providers/_all/all.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ import (
5050
_ "github.com/StackExchange/dnscontrol/v4/providers/netcup"
5151
_ "github.com/StackExchange/dnscontrol/v4/providers/netlify"
5252
_ "github.com/StackExchange/dnscontrol/v4/providers/ns1"
53+
_ "github.com/StackExchange/dnscontrol/v4/providers/openwrt"
5354
_ "github.com/StackExchange/dnscontrol/v4/providers/opensrs"
5455
_ "github.com/StackExchange/dnscontrol/v4/providers/oracle"
5556
_ "github.com/StackExchange/dnscontrol/v4/providers/ovh"

0 commit comments

Comments
 (0)