Skip to content
This repository was archived by the owner on Feb 2, 2021. It is now read-only.

Commit dbbed0e

Browse files
committed
Initial commit for DO provisioner
Signed-off-by: Alex Ellis <alexellis2@gmail.com>
1 parent cfcf384 commit dbbed0e

File tree

8 files changed

+62
-37
lines changed

8 files changed

+62
-37
lines changed

init.yaml

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ secrets:
9090
registry: docker.io/ofctest/
9191

9292
### Your root DNS domain name, this can be a sub-domain i.e. staging.o6s.io / prod.o6s.io
93-
root_domain: "stag.o6s.io"
93+
root_domain: "myfaas.club"
9494

9595
## Populate from GitHub App
9696
github:
@@ -126,23 +126,26 @@ enable_oauth: false
126126
## TLS
127127
### When enabled cert-manager will be used to provision wildcard TLS certificates for
128128
### your OpenFaaS Cloud.
129-
tls: false
129+
tls: true
130130
tls_config:
131131

132132
email: "email@domain"
133133

134-
issuer_type: "prod"
135-
# issuer_type: "staging"
134+
# issuer_type: "prod"
135+
issuer_type: "staging"
136136

137137
## Select DNS web service between Amazon Route 53 (route53) and Google Cloud DNS (clouddns)
138138
# by uncommenting the required option
139139

140140
### Google Cloud DNS
141-
dns_service: clouddns
142-
project_id: "my-openfaas-cloud"
141+
# dns_service: clouddns
142+
# project_id: "my-openfaas-cloud"
143143

144144
### AWS Route53
145145
# dns_service: route53
146146
# region: us-east-1
147147
# access_key_id: ASYAKIUJE8AYRQQ7DU3M
148148

149+
### DigitalOcean
150+
dns_service: digitalocean
151+
digitalocean_access_token: ""

main.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,6 @@ func main() {
134134

135135
func process(plan types.Plan) error {
136136

137-
fmt.Println(plan)
138137
if plan.Orchestration == OrchestrationK8s {
139138
fmt.Println("Orchestration: Kubernetes")
140139
} else if plan.Orchestration == OrchestrationSwarm {
@@ -443,9 +442,8 @@ func createNamespaces() error {
443442

444443
func createSecrets(plan types.Plan) error {
445444

446-
fmt.Println(plan.Secrets)
447-
448445
for _, secret := range plan.Secrets {
446+
fmt.Printf("Creating secret: %s\n", secret.Name)
449447

450448
var command execute.ExecTask
451449
if plan.Orchestration == OrchestrationK8s {

pkg/tls/tls.go

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,35 @@ import (
1010
"github.com/openfaas-incubator/ofc-bootstrap/pkg/types"
1111
)
1212

13-
type TlsTemplate struct {
14-
RootDomain string
15-
Email string
16-
DNSService string
17-
ProjectID string
18-
IssuerType string
19-
Region string
20-
AccessKeyID string
13+
// TLSTemplate TLS configuration
14+
type TLSTemplate struct {
15+
RootDomain string
16+
Email string
17+
DNSService string
18+
ProjectID string
19+
IssuerType string
20+
Region string
21+
AccessKeyID string
22+
DigitalOceanAccessToken string
2123
}
2224

2325
var tlsTemplatesPath = "templates/k8s/tls/"
2426

27+
// Apply executes the plan
2528
func Apply(plan types.Plan) error {
2629

2730
tlsTemplatesList, _ := listTLSTemplates()
28-
tlsTemplate := TlsTemplate{
29-
RootDomain: plan.RootDomain,
30-
Email: plan.TLSConfig.Email,
31-
DNSService: plan.TLSConfig.DNSService,
32-
ProjectID: plan.TLSConfig.ProjectID,
33-
IssuerType: plan.TLSConfig.IssuerType,
34-
Region: plan.TLSConfig.Region,
35-
AccessKeyID: plan.TLSConfig.AccessKeyID,
31+
tlsTemplate := TLSTemplate{
32+
RootDomain: plan.RootDomain,
33+
Email: plan.TLSConfig.Email,
34+
DNSService: plan.TLSConfig.DNSService,
35+
ProjectID: plan.TLSConfig.ProjectID,
36+
IssuerType: plan.TLSConfig.IssuerType,
37+
Region: plan.TLSConfig.Region,
38+
AccessKeyID: plan.TLSConfig.AccessKeyID,
39+
DigitalOceanAccessToken: plan.TLSConfig.DigitalOceanAccessToken,
3640
}
41+
3742
for _, template := range tlsTemplatesList {
3843
tempFilePath, tlsTemplateErr := generateTemplate(template, tlsTemplate)
3944
if tlsTemplateErr != nil {
@@ -66,7 +71,7 @@ func listTLSTemplates() ([]string, error) {
6671
return list, nil
6772
}
6873

69-
func generateTemplate(fileName string, tlsTemplate TlsTemplate) (string, error) {
74+
func generateTemplate(fileName string, tlsTemplate TLSTemplate) (string, error) {
7075

7176
data, err := ioutil.ReadFile(tlsTemplatesPath + fileName)
7277
if err != nil {

pkg/types/types.go

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,11 @@ type S3 struct {
7070
}
7171

7272
type TLSConfig struct {
73-
Email string `yaml:"email"`
74-
DNSService string `yaml:"dns_service"`
75-
ProjectID string `yaml:"project_id"`
76-
IssuerType string `yaml:"issuer_type"`
77-
Region string `yaml:"region"`
78-
AccessKeyID string `yaml:"access_key_id"`
73+
Email string `yaml:"email"`
74+
DNSService string `yaml:"dns_service"`
75+
ProjectID string `yaml:"project_id"`
76+
IssuerType string `yaml:"issuer_type"`
77+
Region string `yaml:"region"`
78+
AccessKeyID string `yaml:"access_key_id"`
79+
DigitalOceanAccessToken string `yaml:"digitalocean_access_token"`
7980
}

scripts/install-cert-manager.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
#!/bin/bash
22

3+
kubectl apply \
4+
-f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.6/deploy/manifests/00-crds.yaml
5+
36
helm install \
47
--name cert-manager \
58
--namespace kube-system \
6-
--version v0.4.0 \
7-
stable/cert-manager
9+
--version v0.6.0 \
10+
stable/cert-manager

scripts/reset.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
#!/bin/bash
22

33
helm delete --purge cert-manager nginxingress openfaas cloud-minio
4+
5+
kubectl delete certificates --all -n openfaas
46
kubectl delete ns openfaas openfaas-fn
7+
58
kubectl delete crd sealedsecrets.bitnami.com
9+
kubectl delete \
10+
-f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.6/deploy/manifests/00-crds.yaml
11+
612
kubectl delete deploy/sealed-secrets-controller -n kube-system
713
kubectl delete deploy/tiller-deploy -n kube-system
814
kubectl delete sa/tiller -n kube-system
915
kubectl delete clusterrolebinding/tiller -n kube-system
10-
kubectl delete certificates --all -n openfaas
16+
17+
kubectl delete secret/clouddns-service-account -n kube-system
1118

1219
rm -rf ./tmp

templates/k8s/tls/issuer-prod.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,8 @@ spec:
2525
secretAccessKeySecretRef:
2626
name: "{{.DNSService}}-credentials-secret"
2727
key: secret-access-key
28-
{{ end }}
28+
{{else if eq .DNSService "digitalocean" }}
29+
tokenSecretRef:
30+
name: digitalocean-dns
31+
key: "{{.DigitalOceanAccessToken}}"
32+
{{ end }}

templates/k8s/tls/issuer-staging.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,8 @@ spec:
2525
secretAccessKeySecretRef:
2626
name: "{{.DNSService}}-credentials-secret"
2727
key: secret-access-key
28-
{{ end }}
28+
{{else if eq .DNSService "digitalocean" }}
29+
tokenSecretRef:
30+
name: digitalocean-dns
31+
key: "{{.DigitalOceanAccessToken}}"
32+
{{ end }}

0 commit comments

Comments
 (0)