Skip to content

Commit 11844f2

Browse files
authored
Merge pull request #5 from draganm/rewrite
Rewrite
2 parents 3c6cf54 + 79a6284 commit 11844f2

18 files changed

+824
-257
lines changed

.github/workflows/go.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
steps:
88
- uses: actions/setup-go@v2
99
with:
10-
go-version: 1.16
10+
go-version: "1.20"
1111
id: go
1212
- uses: actions/checkout@v2
1313
- name: Build

.manifestor/manifestor.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
render('deployment.yaml',{"name": "mfstr"}, "deployment.yaml")
2+
render(
3+
'ingress.yaml',
4+
{
5+
"hostnames": ["www.netice9.com","netice9.com"],
6+
'serviceName': "foo",
7+
'name': "bar",
8+
},
9+
"ingress.yaml",
10+
)

.manifestor/templates/deployment.yaml

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
annotations:
5+
labels:
6+
name: ${name}
7+
name: ${name}
8+
spec:
9+
replicas: 1
10+
revisionHistoryLimit: 3
11+
selector:
12+
matchLabels:
13+
app: ${name}
14+
strategy:
15+
rollingUpdate:
16+
maxSurge: 25%
17+
maxUnavailable: 25%
18+
type: RollingUpdate
19+
template:
20+
metadata:
21+
labels:
22+
app: ${name}
23+
spec:
24+
containers:
25+
- image: registry.digitalocean.com/netice9/${name}:226b90e
26+
imagePullPolicy: IfNotPresent
27+
name: nin-home
28+
ports:
29+
- containerPort: 5001
30+
name: http
31+
protocol: TCP
32+
resources:
33+
limits:
34+
cpu: 300m
35+
memory: 300Mi
36+
requests:
37+
cpu: 300m
38+
memory: 300Mi
39+
restartPolicy: Always

.manifestor/templates/ingress.yaml

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: Ingress
3+
metadata:
4+
annotations:
5+
external-dns.alpha.kubernetes.io/hostname: "${hostnames.join(',')}"
6+
nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
7+
cert-manager.io/cluster-issuer: letsencrypt-prod
8+
name: ${name}
9+
spec:
10+
ingressClassName: nginx
11+
rules:
12+
_forEach: ${hostnames}
13+
_template:
14+
host: ${eachValue}
15+
http:
16+
paths:
17+
- backend:
18+
service:
19+
name: ${eachValue}
20+
port:
21+
name: http
22+
path: /
23+
pathType: ImplementationSpecific
24+
tls:
25+
- hosts: ${hostnames}
26+
secretName: nin-home-netice9-com-tls

.vscode/settings.json

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"cSpell.words": [
3+
"envsubst",
4+
"goja",
5+
"Manifestor"
6+
]
7+
}

Dockerfile

-13
This file was deleted.

encoder_provider.go

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
"os"
6+
"path/filepath"
7+
8+
"gopkg.in/yaml.v3"
9+
)
10+
11+
func manifestorProvider(outDir string) func(name string) (*yaml.Encoder, func() error, error) {
12+
13+
if outDir == "" {
14+
return func(name string) (*yaml.Encoder, func() error, error) {
15+
return yaml.NewEncoder(os.Stdout), func() error { return nil }, nil
16+
}
17+
}
18+
19+
return func(name string) (*yaml.Encoder, func() error, error) {
20+
outPath := filepath.Join(outDir, name)
21+
dir := filepath.Dir(outPath)
22+
if dir != "" {
23+
_, err := os.Stat(dir)
24+
if os.IsNotExist(err) {
25+
err = os.MkdirAll(dir, 0777)
26+
if err != nil {
27+
return nil, nil, fmt.Errorf("could not mkdir %s: %w", dir, err)
28+
}
29+
_, err = os.Stat(dir)
30+
}
31+
32+
if err != nil {
33+
return nil, nil, fmt.Errorf("could not stat %s: %w", dir, err)
34+
}
35+
}
36+
37+
f, err := os.OpenFile(outPath, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0777)
38+
39+
if err != nil {
40+
return nil, nil, fmt.Errorf("could not open output file: %w", err)
41+
}
42+
return yaml.NewEncoder(f), f.Close, nil
43+
44+
}
45+
}

go.mod

+37-10
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,46 @@
11
module github.com/draganm/manifestor
22

3-
go 1.17
3+
go 1.20
44

55
require (
6-
github.com/dop251/goja v0.0.0-20220124171016-cfb079cdc7b4
7-
github.com/drone/envsubst v1.0.2
8-
github.com/urfave/cli/v2 v2.3.0
9-
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b
6+
github.com/dop251/goja v0.0.0-20230919151941-fc55792775de
7+
github.com/drone/envsubst v1.0.3
8+
github.com/go-git/go-git/v5 v5.9.0
9+
github.com/stretchr/testify v1.8.4
10+
github.com/urfave/cli/v2 v2.25.7
11+
gopkg.in/yaml.v3 v3.0.1
1012
)
1113

1214
require (
13-
github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d // indirect
14-
github.com/dlclark/regexp2 v1.4.1-0.20201116162257-a2a8dda75c91 // indirect
15+
dario.cat/mergo v1.0.0 // indirect
16+
github.com/Microsoft/go-winio v0.6.1 // indirect
17+
github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 // indirect
18+
github.com/acomagu/bufpipe v1.0.4 // indirect
19+
github.com/cloudflare/circl v1.3.3 // indirect
20+
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
21+
github.com/cyphar/filepath-securejoin v0.2.4 // indirect
22+
github.com/davecgh/go-spew v1.1.1 // indirect
23+
github.com/dlclark/regexp2 v1.7.0 // indirect
24+
github.com/emirpasic/gods v1.18.1 // indirect
25+
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
26+
github.com/go-git/go-billy/v5 v5.5.0 // indirect
1527
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
16-
github.com/russross/blackfriday/v2 v2.0.1 // indirect
17-
github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
18-
golang.org/x/text v0.3.6 // indirect
28+
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
29+
github.com/google/pprof v0.0.0-20230207041349-798e818bf904 // indirect
30+
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
31+
github.com/kevinburke/ssh_config v1.2.0 // indirect
32+
github.com/pjbgf/sha1cd v0.3.0 // indirect
33+
github.com/pmezard/go-difflib v1.0.0 // indirect
34+
github.com/russross/blackfriday/v2 v2.1.0 // indirect
35+
github.com/sergi/go-diff v1.1.0 // indirect
36+
github.com/skeema/knownhosts v1.2.0 // indirect
37+
github.com/xanzy/ssh-agent v0.3.3 // indirect
38+
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
39+
golang.org/x/crypto v0.13.0 // indirect
40+
golang.org/x/mod v0.12.0 // indirect
41+
golang.org/x/net v0.15.0 // indirect
42+
golang.org/x/sys v0.12.0 // indirect
43+
golang.org/x/text v0.13.0 // indirect
44+
golang.org/x/tools v0.13.0 // indirect
45+
gopkg.in/warnings.v0 v0.1.2 // indirect
1946
)

0 commit comments

Comments
 (0)