Browse Source

Move acme settings to config, not env vars

master
Chris Smith 5 years ago
parent
commit
e52a87e7f9
2 changed files with 28 additions and 9 deletions
  1. 14
    8
      dotege.go
  2. 14
    1
      model/model.go

+ 14
- 8
dotege.go View File

@@ -6,7 +6,6 @@ import (
6 6
 	"github.com/docker/docker/client"
7 7
 	"github.com/xenolf/lego/certcrypto"
8 8
 	"github.com/xenolf/lego/lego"
9
-	"github.com/xenolf/lego/platform/config/env"
10 9
 	"go.uber.org/zap"
11 10
 	"go.uber.org/zap/zapcore"
12 11
 	"os"
@@ -54,22 +53,29 @@ func createConfig() *model.Config {
54 53
 			Hostnames:   "com.chameth.vhost",
55 54
 			RequireAuth: "com.chameth.auth",
56 55
 		},
56
+		Acme: model.AcmeConfig{
57
+			DnsProvider:   "httpreq",
58
+			Email:         "dotege.test@chameth.com",
59
+			Endpoint:      lego.LEDirectoryStaging,
60
+			KeyType:       certcrypto.EC256,
61
+			CacheLocation: "/config/certs.json",
62
+		},
57 63
 		DefaultCertActions:     model.COMBINE | model.FLATTEN,
58 64
 		DefaultCertDestination: "/data/certs/",
59 65
 	}
60 66
 }
61 67
 
62
-func createTemplateGenerator(logger *zap.SugaredLogger, config *model.Config) *TemplateGenerator {
68
+func createTemplateGenerator(logger *zap.SugaredLogger, templates []model.TemplateConfig) *TemplateGenerator {
63 69
 	templateGenerator := NewTemplateGenerator(logger)
64
-	for _, template := range config.Templates {
70
+	for _, template := range templates {
65 71
 		templateGenerator.AddTemplate(template)
66 72
 	}
67 73
 	return templateGenerator
68 74
 }
69 75
 
70
-func createCertificateManager(logger *zap.SugaredLogger) *CertificateManager {
71
-	certificateManager := NewCertificateManager(logger, lego.LEDirectoryStaging, certcrypto.EC256, env.GetOrDefaultString("DOTEGE_DNS_PROVIDER", ""), "/config/certs.json")
72
-	err := certificateManager.Init(env.GetOrDefaultString("DOTEGE_ACME_EMAIL", ""))
76
+func createCertificateManager(logger *zap.SugaredLogger, config model.AcmeConfig) *CertificateManager {
77
+	certificateManager := NewCertificateManager(logger, config.Endpoint, config.KeyType, config.DnsProvider, config.CacheLocation)
78
+	err := certificateManager.Init(config.Email)
73 79
 	if err != nil {
74 80
 		panic(err)
75 81
 	}
@@ -89,8 +95,8 @@ func main() {
89 95
 		panic(err)
90 96
 	}
91 97
 
92
-	templateGenerator := createTemplateGenerator(logger, config)
93
-	certificateManager := createCertificateManager(logger)
98
+	templateGenerator := createTemplateGenerator(logger, config.Templates)
99
+	certificateManager := createCertificateManager(logger, config.Acme)
94 100
 
95 101
 	jitterTimer := time.NewTimer(time.Minute)
96 102
 	redeployTimer := time.NewTicker(time.Hour * 24)

+ 14
- 1
model/model.go View File

@@ -1,6 +1,9 @@
1 1
 package model
2 2
 
3
-import "time"
3
+import (
4
+	"github.com/xenolf/lego/certcrypto"
5
+	"time"
6
+)
4 7
 
5 8
 // CertActions define what will be done with a certificate
6 9
 type CertActions uint8
@@ -28,6 +31,15 @@ type LabelConfig struct {
28 31
 	RequireAuth string
29 32
 }
30 33
 
34
+// AcmeConfig describes the configuration to use for getting certs using ACME.
35
+type AcmeConfig struct {
36
+	Email         string
37
+	DnsProvider   string
38
+	Endpoint      string
39
+	KeyType       certcrypto.KeyType
40
+	CacheLocation string
41
+}
42
+
31 43
 // Hostname describes a DNS name used for proxying, retrieving certificates, etc.
32 44
 type Hostname struct {
33 45
 	Name            string
@@ -45,6 +57,7 @@ type Config struct {
45 57
 	Labels                 LabelConfig
46 58
 	DefaultCertActions     CertActions
47 59
 	DefaultCertDestination string
60
+	Acme                   AcmeConfig
48 61
 }
49 62
 
50 63
 // TemplateConfig configures a single template for the generator.

Loading…
Cancel
Save