DodoApp: Merge dev enabled/disabled images and charts

Change-Id: Idf5b10640e32848fa31ce726dd8e0cf7bed033be
diff --git a/apps/app-runner/Makefile b/apps/app-runner/Makefile
index f6a0b86..eeffb68 100644
--- a/apps/app-runner/Makefile
+++ b/apps/app-runner/Makefile
@@ -136,17 +136,17 @@
 # Deno
 
 push_deno_2_2_0_arm64: clean build_arm64
-	$(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner_deno-2.2.0-arm64 -f Dockerfile.deno.2.2.0 $(docker_flags) .
-	$(podman) push $(repo_name)/app-runner_deno-2.2.0-arm64
+	$(podman) build --platform linux/arm64 --tag=$(repo_name)/app-runner:deno-2.2.0-arm64 -f Dockerfile.deno.2.2.0 $(docker_flags) .
+	$(podman) push $(repo_name)/app-runner:deno-2.2.0-arm64
 
 push_deno_2_2_0_amd64: clean build_amd64
-	$(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner_deno-2.2.0-amd64 -f Dockerfile.deno.2.2.0 $(docker_flags) .
-	$(podman) push $(repo_name)/app-runner_deno-2.2.0-amd64
+	$(podman) build --platform linux/amd64 --tag=$(repo_name)/app-runner:deno-2.2.0-amd64 -f Dockerfile.deno.2.2.0 $(docker_flags) .
+	$(podman) push $(repo_name)/app-runner:deno-2.2.0-amd64
 
 push_deno_2_2_0: push_deno_2_2_0_arm64 push_deno_2_2_0_amd64
-	$(podman) manifest create $(repo_name)/app-runner_deno-2.2.0 $(repo_name)/app-runner_deno-2.2.0-arm64 $(repo_name)/app-runner_deno-2.2.0-amd64
-	$(podman) manifest push $(repo_name)/app-runner_deno-2.2.0 $(manifest_dest_deno_2_2_0)
-	$(podman) manifest rm $(repo_name)/app-runner_deno-2.2.0
+	$(podman) manifest create $(repo_name)/app-runner:deno-2.2.0 $(repo_name)/app-runner:deno-2.2.0-arm64 $(repo_name)/app-runner:deno-2.2.0-amd64
+	$(podman) manifest push $(repo_name)/app-runner:deno-2.2.0 $(manifest_dest_deno_2_2_0)
+	$(podman) manifest rm $(repo_name)/app-runner:deno-2.2.0
 
 
 # all
diff --git a/core/installer/app_configs/dodo_app.cue b/core/installer/app_configs/dodo_app.cue
index 3fb4a1b..5003d57 100644
--- a/core/installer/app_configs/dodo_app.cue
+++ b/core/installer/app_configs/dodo_app.cue
@@ -462,6 +462,43 @@
 
 service: [...#App]
 
+_serviceDevEnabled: {
+	images: {}
+	charts: {}
+}
+
+_serviceDevDisabled: {
+	svcType: string
+	images: {
+		app: {
+			repository: "giolekva"
+			name:       "app-runner"
+			tag:        strings.Replace(svcType, ":", "-", -1)
+			pullPolicy: "Always"
+		}
+		"tailscale-proxy": {
+			repository: "tailscale"
+			name:       "tailscale"
+			tag:        "v1.82.0"
+			pullPolicy: "IfNotPresent"
+		}
+	}
+	charts: {
+		"access-secrets": {
+			kind:    "GitRepository"
+			address: "https://code.v1.dodo.cloud/helm-charts"
+			branch:  "main"
+			path:    "charts/access-secrets"
+		}
+		app: {
+			kind:    "GitRepository"
+			address: "https://code.v1.dodo.cloud/helm-charts"
+			branch:  "main"
+			path:    "charts/app-runner"
+		}
+	}
+}
+
 #ServiceDevDisabled: #WithOut & {
 	cluster?: #Cluster
 	_cc:      #Cluster | null | *null
@@ -507,35 +544,9 @@
 		}],
 	])
 
-	images: {
-		app: {
-			repository: "giolekva"
-			name:       "app-runner"
-			tag:        strings.Replace(svc.type, ":", "-", -1)
-			pullPolicy: "Always"
-		}
-		"tailscale-proxy": {
-			repository: "tailscale"
-			name:       "tailscale"
-			tag:        "v1.82.0"
-			pullPolicy: "IfNotPresent"
-		}
-	}
-
-	charts: {
-		"access-secrets": {
-			kind:    "GitRepository"
-			address: "https://code.v1.dodo.cloud/helm-charts"
-			branch:  "main"
-			path:    "charts/access-secrets"
-		}
-		app: {
-			kind:    "GitRepository"
-			address: "https://code.v1.dodo.cloud/helm-charts"
-			branch:  "main"
-			path:    "charts/app-runner"
-		}
-	}
+	_sdd: _serviceDevDisabled & {svcType: svc.type}
+	images: _sdd.images
+	charts: _sdd.charts
 
 	ingress: {
 		if svc.ingress != _|_ {
@@ -717,6 +728,13 @@
 }
 
 #Service: #ServiceDevEnabled | #ServiceDevDisabled
+#Service: {
+	svc: type: string
+	_sdd: _serviceDevDisabled & {svcType: svc.type}
+	charts: _serviceDevEnabled.charts & _sdd.charts
+	images: _serviceDevEnabled.images & _sdd.images
+	...
+}
 
 #WithOut: {
 	cluster?: #Cluster