mirror of
https://github.com/vxcontrol/rancher-letsencrypt.git
synced 2026-07-19 17:13:37 -04:00
@@ -87,6 +87,8 @@ func (c *Context) InitContext() {
|
||||
DoAccessToken: os.Getenv("DO_ACCESS_TOKEN"),
|
||||
AwsAccessKey: os.Getenv("AWS_ACCESS_KEY"),
|
||||
AwsSecretKey: os.Getenv("AWS_SECRET_KEY"),
|
||||
DNSimpleEmail: os.Getenv("DNSIMPLE_EMAIL"),
|
||||
DNSimpleKey: os.Getenv("DNSIMPLE_KEY"),
|
||||
AwsRegionName: "us-east-1",
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,10 @@ type ProviderOpts struct {
|
||||
AwsAccessKey string
|
||||
AwsSecretKey string
|
||||
AwsRegionName string
|
||||
|
||||
// DNSimple credentials
|
||||
DNSimpleEmail string
|
||||
DNSimpleKey string
|
||||
}
|
||||
|
||||
type DnsProvider string
|
||||
@@ -30,12 +34,14 @@ const (
|
||||
CLOUDFLARE = DnsProvider("CloudFlare")
|
||||
DIGITALOCEAN = DnsProvider("DigitalOcean")
|
||||
ROUTE53 = DnsProvider("Route53")
|
||||
DNSIMPLE = DnsProvider("DNSimple")
|
||||
)
|
||||
|
||||
var dnsProviderFactory = map[DnsProvider]interface{}{
|
||||
CLOUDFLARE: makeCloudflareProvider,
|
||||
DIGITALOCEAN: makeDigitalOceanProvider,
|
||||
ROUTE53: makeRoute53Provider,
|
||||
DNSIMPLE: makeDNSimpleProvider,
|
||||
}
|
||||
|
||||
func getProvider(opts ProviderOpts) (lego.ChallengeProvider, error) {
|
||||
@@ -96,3 +102,19 @@ func makeRoute53Provider(opts ProviderOpts) (lego.ChallengeProvider, error) {
|
||||
}
|
||||
return provider, nil
|
||||
}
|
||||
|
||||
// returns a preconfigured DNSimple lego.ChallengeProvider
|
||||
func makeDNSimpleProvider(opts ProviderOpts) (lego.ChallengeProvider, error) {
|
||||
if len(opts.DNSimpleEmail) == 0 {
|
||||
return nil, fmt.Errorf("DNSimple Email not set")
|
||||
}
|
||||
if len(opts.DNSimpleKey) == 0 {
|
||||
return nil, fmt.Errorf("DNSimple API key is not set")
|
||||
}
|
||||
|
||||
provider, err := lego.NewDNSProviderDNSimple(opts.DNSimpleEmail, opts.DNSimpleKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return provider, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user