diff --git a/core/installer/app_configs/app_base.cue b/core/installer/app_configs/app_base.cue
index 711dbe7..1a60440 100644
--- a/core/installer/app_configs/app_base.cue
+++ b/core/installer/app_configs/app_base.cue
@@ -69,10 +69,81 @@
 	name:       string
 	size:       string
 	accessMode: "ReadWriteOnce" | "ReadOnlyMany" | "ReadWriteMany" | "ReadWriteOncePod" | *"ReadWriteOnce"
+	...
 }
 
-#Volume: {
-	#VolumeInput
+#Volume: #WithOut & #VolumeInput & {
+	cluster?:   #Cluster
+	name:       string
+	size:       string
+	accessMode: string
+
+	_cluster: cluster
+	_name: name
+	_size: size
+	_accessMode: accessMode
+
+	charts: {
+		volume: {
+			kind:    "GitRepository"
+			address: "https://code.v1.dodo.cloud/helm-charts"
+			branch:  "main"
+			path:    "charts/volumes"
+		}
+	}
+
+	helm: {
+		"\(name)-volume": {
+			chart: charts.volume
+			if _cluster != _|_ {
+				cluster: _cluster
+			}
+			info:  "Creating disk for \(name)"
+			annotations: {
+				"dodo.cloud/resource-type":        "volume"
+				"dodo.cloud/resource.volume.name": name
+				"dodo.cloud/resource.volume.size": size
+			}
+			values: {
+				name: _name
+				size: _size
+				accessMode: _accessMode
+			}
+		}
+	}
+}
+
+#WithOut: {
+	cluster?: #Cluster
+	_cluster: cluster
+	volume: {...}
+	volume: {
+		for k, v in volume {
+			"\(k)": #Volume & v & {
+				name: k
+				if _cluster != _|_ {
+					cluster: _cluster
+				}
+			}
+		}
+		...
+	}
+	charts: {
+		for k, v in volume {
+			for x, y in v.charts {
+				"\(x)": y
+			}
+		}
+	}
+	helmR: {
+		for k, v in volume {
+			for x, y in v.helmR {
+				"\(x)": y
+			}
+		}
+		...
+	}
+	...
 }
 
 #Chart: #GitRepositoryRef | #HelmRepositoryRef
@@ -912,12 +983,6 @@
 	cluster?: #Cluster
 	_cluster: cluster
 	charts: {
-		volume: {
-			kind:    "GitRepository"
-			address: "https://code.v1.dodo.cloud/helm-charts"
-			branch:  "main"
-			path:    "charts/volumes"
-		}
 		secret: {
 			kind:    "GitRepository"
 			address: "https://code.v1.dodo.cloud/helm-charts"
@@ -926,34 +991,6 @@
 		}
 		...
 	}
-	volume: {...}
-	volume: {
-		for k, v in volume {
-			"\(k)": #Volume & v & {
-				name: k
-				if _cluster != _|_ {
-					cluster: _cluster
-				}
-			}
-		}
-	}
-	helm: {
-		for k, v in volume {
-			"\(k)-volume": {
-				chart: charts.volume
-				info:  "Creating disk for \(k)"
-				annotations: {
-					"dodo.cloud/resource-type":        "volume"
-					"dodo.cloud/resource.volume.name": v.name
-					"dodo.cloud/resource.volume.size": v.size
-				}
-				values: v
-				if v.cluster != _|_ {
-					cluster: v.cluster
-				}
-			}
-		}
-	}
 }
 
 #WithOut: {
diff --git a/core/installer/status/instance.go b/core/installer/status/instance.go
index ad05e5a..c88e5e5 100644
--- a/core/installer/status/instance.go
+++ b/core/installer/status/instance.go
@@ -64,6 +64,13 @@
 		}
 		status = mergeStatus(status, hs)
 	}
+	for _, i := range out.Volume {
+		if s, err := m.monitor(namespace, DodoResource{"volume", i.Name}, i, ret); err != nil {
+			return StatusNoStatus, err
+		} else {
+			s = mergeStatus(status, s)
+		}
+	}
 	for _, i := range out.PostgreSQL {
 		if s, err := m.monitor(namespace, DodoResource{"postgresql", i.Name}, i, ret); err != nil {
 			return StatusNoStatus, err
@@ -105,6 +112,7 @@
 
 type ResourceOut struct {
 	Name       string                     `json:"name"`
+	Volume     map[string]ResourceOut     `json:"volume"`
 	PostgreSQL map[string]ResourceOut     `json:"postgresql"`
 	MongoDB    map[string]ResourceOut     `json:"mongodb"`
 	Ingress    map[string]resourceIngress `json:"ingress"`
