installer: add soft-serve
diff --git a/core/installer/app.go b/core/installer/app.go
index f3d465b..c139071 100644
--- a/core/installer/app.go
+++ b/core/installer/app.go
@@ -119,6 +119,7 @@
CreateAppMaddy(valuesTmpls, tmpls),
CreateAppQBittorrent(valuesTmpls, tmpls),
CreateAppJellyfin(valuesTmpls, tmpls),
+ CreateAppSoftServe(valuesTmpls, tmpls),
CreateAppRpuppy(valuesTmpls, tmpls),
}
}
@@ -331,6 +332,26 @@
}
}
+func CreateAppSoftServe(fs embed.FS, tmpls *template.Template) StoreApp {
+ schema, err := fs.ReadFile("values-tmpl/soft-serve.jsonschema")
+ if err != nil {
+ panic(err)
+ }
+ return StoreApp{
+ App{
+ "soft-serve",
+ []string{"app-soft-serve"},
+ []*template.Template{
+ tmpls.Lookup("soft-serve.yaml"),
+ },
+ string(schema),
+ tmpls.Lookup("soft-serve.md"),
+ },
+ `<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" viewBox="0 0 48 48"><g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="4"><path stroke-linejoin="round" d="M15.34 22.5L21 37l3 6l3-6l5.66-14.5"/><path d="M19 32h10"/><path stroke-linejoin="round" d="M24 3c-6 0-8 6-8 6s-6 2-6 7s5 7 5 7s3.5-2 9-2s9 2 9 2s5-2 5-7s-6-7-6-7s-2-6-8-6Z"/></g></svg>`,
+ "A tasty, self-hostable Git server for the command line. 🍦",
+ }
+}
+
func CreateAppHeadscale(fs embed.FS, tmpls *template.Template) App {
schema, err := fs.ReadFile("values-tmpl/headscale.jsonschema")
if err != nil {
diff --git a/core/installer/values-tmpl/soft-serve.jsonschema b/core/installer/values-tmpl/soft-serve.jsonschema
new file mode 100644
index 0000000..8142797
--- /dev/null
+++ b/core/installer/values-tmpl/soft-serve.jsonschema
@@ -0,0 +1,10 @@
+{
+ "type": "object",
+ "properties": {
+ "Network": { "type": "string", "default": "Public", "role": "network" },
+ "Subdomain": { "type": "string", "default": "softserve" },
+ "AdminKey": { "type": "string" },
+ "SourcePort": { "type": "string", "default": "0" }
+ },
+ "additionalProperties": false
+}
diff --git a/core/installer/values-tmpl/soft-serve.md b/core/installer/values-tmpl/soft-serve.md
new file mode 100644
index 0000000..28e43a8
--- /dev/null
+++ b/core/installer/values-tmpl/soft-serve.md
@@ -0,0 +1 @@
+Soft-Serve with TCP ingress
diff --git a/core/installer/values-tmpl/soft-serve.yaml b/core/installer/values-tmpl/soft-serve.yaml
new file mode 100644
index 0000000..d2d4cb3
--- /dev/null
+++ b/core/installer/values-tmpl/soft-serve.yaml
@@ -0,0 +1,39 @@
+apiVersion: helm.toolkit.fluxcd.io/v2beta1
+kind: HelmRelease
+metadata:
+ name: soft-serve
+ namespace: {{ .Release.Namespace }}
+spec:
+ chart:
+ spec:
+ chart: charts/soft-serve
+ sourceRef:
+ kind: GitRepository
+ name: pcloud
+ namespace: {{ .Global.Id }}
+ interval: 1m0s
+ values:
+ reservedIP: ""
+ addressPool: {{ .Global.Id }}
+ adminKey: {{ .Values.AdminKey }}
+ {{- if .Values.Network }}
+ ingress:
+ enabled: true # TODO(giolekva): make it configurable
+ ingressClassName: {{ .Values.Network.IngressClass }}
+ certificateIssuer: {{ .Values.Network.CertificateIssuer }}
+ domain: {{ .Values.Subdomain }}.{{ .Values.Network.Domain }}
+ {{- if .Values.SourcePort }}
+ sourcePort: {{ .Values.SourcePort }}
+ {{- end }}
+ {{- end }}
+# reservedIP: ""
+# addressPool: qwe
+# adminKey: "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOa7FUrmXzdY3no8qNGUk7OPaRcIUi8G7MVbLlff9eB/ lekva@gl-mbp-m1-max.local"
+# ingress:
+# enabled: true
+# ingressClassName: pcloud-ingress-public
+# certificateIssuer: qwe-public
+# domain: gt.qwe.lekva.me
+# # ingressClassName: qwe-ingress-private
+# # certificateIssuer: ""
+# # domain: gt.p.qwe.lekva.me