Skip to content

Commit b7293e3

Browse files
authored
Merge pull request #41 from edeckers/add-auroradns
Add support for AuroraDNS
2 parents b4ef8ae + e373445 commit b7293e3

File tree

21 files changed

+1361
-1
lines changed

21 files changed

+1361
-1
lines changed

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ RUN tar -zxvf /tmp/rancher-letsencrypt.tar.gz -C /usr/bin \
1010
&& chmod +x /usr/bin/rancher-letsencrypt
1111

1212
ENTRYPOINT ["/usr/bin/rancher-letsencrypt"]
13-
EXPOSE 80
13+
EXPOSE 80

Godeps/Godeps.json

Lines changed: 36 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ A [Rancher](http://rancher.com/rancher/) service that obtains free SSL/TLS certi
1616
#### Requirements
1717
* Rancher Server >= v1.2.0
1818
* If using a DNS-based challenge, existing account with one of the supported DNS providers:
19+
* `Aurora DNS`
1920
* `AWS Route 53`
2021
* `Azure DNS`
2122
* `CloudFlare`

context.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ func (c *Context) InitContext() {
7979
AzureSubscriptionId: getEnvOption("AZURE_SUBSCRIPTION_ID", false),
8080
AzureTenantId: getEnvOption("AZURE_TENANT_ID", false),
8181
AzureResourceGroup: getEnvOption("AZURE_RESOURCE_GROUP", false),
82+
AuroraUserId: getEnvOption("AURORA_USER_ID", false),
83+
AuroraKey: getEnvOption("AURORA_KEY", false),
84+
AuroraEndpoint: getEnvOption("AURORA_ENDPOINT", false),
8285
CloudflareEmail: getEnvOption("CLOUDFLARE_EMAIL", false),
8386
CloudflareKey: getEnvOption("CLOUDFLARE_KEY", false),
8487
DoAccessToken: getEnvOption("DO_ACCESS_TOKEN", false),

letsencrypt/providers.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66

77
lego "github.com/xenolf/lego/acme"
8+
"github.com/xenolf/lego/providers/dns/auroradns"
89
"github.com/xenolf/lego/providers/dns/azure"
910
"github.com/xenolf/lego/providers/dns/cloudflare"
1011
"github.com/xenolf/lego/providers/dns/digitalocean"
@@ -22,6 +23,11 @@ import (
2223
type ProviderOpts struct {
2324
Provider Provider
2425

26+
// Aurora credentials
27+
AuroraUserId string
28+
AuroraKey string
29+
AuroraEndpoint string
30+
2531
// AWS Route 53 credentials
2632
AwsAccessKey string
2733
AwsSecretKey string
@@ -67,6 +73,7 @@ type ProviderOpts struct {
6773
type Provider string
6874

6975
const (
76+
AURORA = Provider("Aurora")
7077
AZURE = Provider("Azure")
7178
CLOUDFLARE = Provider("CloudFlare")
7279
DIGITALOCEAN = Provider("DigitalOcean")
@@ -86,6 +93,7 @@ type ProviderFactory struct {
8693
}
8794

8895
var providerFactory = map[Provider]ProviderFactory{
96+
AURORA: ProviderFactory{makeAuroraProvider, lego.DNS01},
8997
AZURE: ProviderFactory{makeAzureProvider, lego.DNS01},
9098
CLOUDFLARE: ProviderFactory{makeCloudflareProvider, lego.DNS01},
9199
DIGITALOCEAN: ProviderFactory{makeDigitalOceanProvider, lego.DNS01},
@@ -111,6 +119,31 @@ func getProvider(opts ProviderOpts) (lego.ChallengeProvider, lego.Challenge, err
111119
return nil, irrelevant, fmt.Errorf("Unsupported provider: %s", opts.Provider)
112120
}
113121

122+
// returns a preconfigured Aurora lego.ChallengeProvider
123+
func makeAuroraProvider(opts ProviderOpts) (lego.ChallengeProvider, error) {
124+
if len(opts.AuroraUserId) == 0 {
125+
return nil, fmt.Errorf("Aurora User Id is not set")
126+
}
127+
128+
if len(opts.AuroraKey) == 0 {
129+
return nil, fmt.Errorf("Aurora Key is not set")
130+
}
131+
132+
endpoint := opts.AuroraEndpoint
133+
if len(endpoint) == 0 {
134+
endpoint = "https://api.auroradns.eu"
135+
}
136+
137+
provider, err := auroradns.NewDNSProviderCredentials(endpoint, opts.AuroraUserId,
138+
opts.AuroraKey)
139+
140+
if err != nil {
141+
return nil, err
142+
}
143+
144+
return provider, nil
145+
}
146+
114147
// returns a preconfigured CloudFlare lego.ChallengeProvider
115148
func makeCloudflareProvider(opts ProviderOpts) (lego.ChallengeProvider, error) {
116149
if len(opts.CloudflareEmail) == 0 {

vendor/github.com/edeckers/auroradnsclient/.gitignore

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/edeckers/auroradnsclient/.travis.yml

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)