blob: c7aa2319b1d6ea43240a25ff09a98c2158ec0d38 [file] [log] [blame]
giolekva8aa73e82022-07-09 11:34:39 +04001package installer
giolekva050609f2021-12-29 15:51:40 +04002
giolekva8aa73e82022-07-09 11:34:39 +04003import (
4 "embed"
5 "log"
6 "text/template"
7)
giolekva050609f2021-12-29 15:51:40 +04008
9type App struct {
10 Name string
11 Templates []*template.Template
12}
13
giolekva8aa73e82022-07-09 11:34:39 +040014//go:embed values-tmpl
15var valuesTmpls embed.FS
16
17func CreateAllApps() []App {
18 tmpls, err := template.ParseFS(valuesTmpls, "values-tmpl/*.yaml")
19 if err != nil {
20 log.Fatal(err)
21 }
giolekvaef76a3e2022-01-10 12:22:28 +040022 return []App{
23 CreateAppIngressPrivate(tmpls),
24 CreateAppCoreAuth(tmpls),
25 CreateAppVaultwarden(tmpls),
26 CreateAppMatrix(tmpls),
27 CreateAppPihole(tmpls),
28 CreateAppMaddy(tmpls),
29 CreateAppQBittorrent(tmpls),
30 CreateAppJellyfin(tmpls),
31 }
32}
33
giolekva050609f2021-12-29 15:51:40 +040034func CreateAppIngressPrivate(tmpls *template.Template) App {
35 return App{
36 "ingress-private",
37 []*template.Template{
38 tmpls.Lookup("vpn-mesh-config.yaml"),
39 tmpls.Lookup("ingress-private.yaml"),
40 tmpls.Lookup("certificate-issuer.yaml"),
41 },
42 }
43}
44
45func CreateAppCoreAuth(tmpls *template.Template) App {
46 return App{
47 "core-auth",
48 []*template.Template{
49 tmpls.Lookup("core-auth-storage.yaml"),
50 tmpls.Lookup("core-auth.yaml"),
51 },
52 }
53}
54
55func CreateAppVaultwarden(tmpls *template.Template) App {
56 return App{
57 "vaultwarden",
58 []*template.Template{
59 tmpls.Lookup("vaultwarden.yaml"),
60 },
61 }
62}
63
64func CreateAppMatrix(tmpls *template.Template) App {
65 return App{
66 "matrix",
67 []*template.Template{
68 tmpls.Lookup("matrix-storage.yaml"),
69 tmpls.Lookup("matrix.yaml"),
70 },
71 }
72}
73
74func CreateAppPihole(tmpls *template.Template) App {
75 return App{
76 "pihole",
77 []*template.Template{
78 tmpls.Lookup("pihole.yaml"),
79 },
80 }
81}
82
83func CreateAppMaddy(tmpls *template.Template) App {
84 return App{
85 "maddy",
86 []*template.Template{
87 tmpls.Lookup("maddy.yaml"),
88 },
89 }
90}
giolekvaef76a3e2022-01-10 12:22:28 +040091
92func CreateAppQBittorrent(tmpls *template.Template) App {
93 return App{
94 "qbittorrent",
95 []*template.Template{
96 tmpls.Lookup("qbittorrent.yaml"),
97 },
98 }
99}
100
101func CreateAppJellyfin(tmpls *template.Template) App {
102 return App{
103 "jellyfin",
104 []*template.Template{
105 tmpls.Lookup("jellyfin.yaml"),
106 },
107 }
108}