goproxy: add goproxy to AppManager and use it in CI via flake.nix

Change-Id: I489d202c34219434653cfe3afbb19937dadd204e
diff --git a/core/installer/values-tmpl/goproxy.cue b/core/installer/values-tmpl/goproxy.cue
new file mode 100644
index 0000000..e7baaef
--- /dev/null
+++ b/core/installer/values-tmpl/goproxy.cue
@@ -0,0 +1,87 @@
+input: {
+	network:   #Network @name(Network)
+	subdomain: string   @name(Subdomain)
+}
+
+_domain: "\(input.subdomain).\(input.network.domain)"
+
+name:        "goproxy"
+namespace:   "app-goproxy"
+readme:      "goproxy application will be installed on \(input.network.name) network and be accessible to any user on https://\(_domain)"
+description: "Golang module proxy."
+icon: """
+			<svg width='50px' height='50px' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 39.68503937 35.28811582'>
+			  <defs>
+			    <style>
+			      .cls-1 {
+			        fill: currentColor;
+			      }
+			
+			      .cls-2 {
+			        fill: none;
+			        stroke: #3a3a3a;
+			        stroke-miterlimit: 10;
+			        stroke-width: .98133445px;
+			      }
+			    </style>
+			  </defs>
+			  <rect class='cls-2' x='-9.97439025' y='-12.17285203' width='59.63381987' height='59.63381987'/>
+			  <path class='cls-1' d='m14.69492647,20.58774252c0,.81187845-.65815748,1.47003733-1.47003733,1.47003733s-1.47003733-.65815888-1.47003733-1.47003733.65815748-1.47003733,1.47003733-1.47003733,1.47003733.65815888,1.47003733,1.47003733Zm11.76029864,1.47003733c.81187845,0,1.47003733-.65815888,1.47003733-1.47003733s-.65815888-1.47003733-1.47003733-1.47003733-1.47003733.65815888-1.47003733,1.47003733.65815888,1.47003733,1.47003733,1.47003733Zm11.93302847-1.67400512c-.28823261.13266248-.60148138.20220416-.91877333.20396779-.67326615-.00164868-1.30777436-.31516942-1.71810725-.84894566l-.47592391-.60455162v9.53870259c0,3.65345583-2.96171215,6.61516798-6.61516798,6.61516798H11.01983314c-3.65345653,0-6.61516798-2.96171215-6.61516798-6.61516798v-9.53870539l-.46489908.60087854c-.4112799.53507163-1.04691527.84983729-1.72178173.85262154-.31731614-.00153652-.63061468-.07108941-.91877333-.20396779-.93389637-.40992073-1.45678447-1.41441689-1.25688194-2.4145362L3.05958106,1.79882791C3.28415382.60189453,4.43651156-.18635988,5.63344528.03821253c.0427079.00801312.08516977.01728658.12732951.02780882h.02940072l9.74634766,2.88127322h8.60706789L33.89728908.08072171h.02940142c1.1815748-.29489426,2.3784896.42390294,2.67338421,1.6054781.01052294.04215975.01979535.08462091.02780882.12732881l3.01725128,16.17041062c.19308035.99533591-.3287598,1.99171485-1.25688124,2.39983549ZM14.18960113,4.08289846L5.38591511,1.49563243c-.05549777-.01236298-.1121963-.01852589-.16905396-.01837519-.35274343.00096593-.655062.25238438-.72031866.5990399L1.47929086,18.24670707c-.07691341.39858747.18385385.78405561.58244062.86096867.27107851.05230907.54860733-.05169782.7185424-.26927842L14.18960113,4.08289846Zm19.61581061,13.1513214l-9.92275197-12.81688797h-8.08520531l-9.92275197,12.81688797v11.43872797c0,2.84157738,2.30355327,5.14513065,5.14513065,5.14513065h8.08520531v-3.3700599l-2.72508204-2.72508204c-.28720218-.28720359-.28720218-.7528485,0-1.04005208s.7528499-.28720359,1.04005208,0l2.42004862,2.42004862,2.42004862-2.42004862c.28720359-.28720359.7528485-.28720359,1.04005208,0s.28720359.7528485,0,1.04005208l-2.72508204,2.72508204v3.3700599h8.08520531c2.84157738,0,5.14513065-2.30355327,5.14513065-5.14513065v-11.43872797Zm4.39541128,1.00697619l-3.01725128-16.17041062c-.07464473-.39901786-.45862401-.66197355-.85764328-.58732812-.01062388.00198795-.02120289.00420932-.03172863.00666341l-8.80368673,2.59277845,11.41300243,14.75182508c.25293745.31750505.71537192.36984776,1.03287697.11691312.21288131-.1695895.31462267-.44293353.26443052-.71044131Z'/>
+			</svg>"""
+
+_webPort: 8080
+_webServicePort: 80
+
+out: {
+	ingress: {
+		goproxy: {
+			auth:      enabled: false
+			network:   input.network
+			subdomain: input.subdomain
+			service: {
+				name: "goproxy"
+				port: _webServicePort
+			}
+		}
+	}
+
+	images: {
+		goproxy: {
+			registry: "ghcr.io"
+                        repository: "goproxy"
+			name:       "goproxy"
+			tag:        "0.26.1"
+			pullPolicy: "IfNotPresent"
+		}
+	}
+
+	charts: {
+		goproxy: {
+			kind:    "GitRepository"
+			address: "https://code.v1.dodo.cloud/helm-charts"
+			branch:  "main"
+			path:    "charts/goproxy"
+		}
+	}
+
+	volume: data: size: "50Gi"
+
+	helm: {
+		goproxy: {
+			chart: charts.goproxy
+			info:  "Installing goproxy server"
+			values: {
+				image: {
+					repository: images.goproxy.fullName
+					tag:        images.goproxy.tag
+					pullPolicy: images.goproxy.pullPolicy
+				}
+				port: _webPort
+                                servicePort: _webServicePort
+                                persistentVolumeClaimName: "data"
+			}
+		}
+	}
+}
+
+url: "https://\(_domain)"