feat: per-workload resources, storage GiB metrics, optional service disks

- Expose DB/Redis/RabbitMQ usage plus sidecars in getResourceUsage
- Storage API: GiB fields, Redis/Rabbit PVC usage, fix du/exec container names
- PATCH /resources accepts workload; persist entity fields only for app
- App detail: workload cards, disk bars, DB expand, scale target select

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
keyhan
2026-05-14 16:28:01 +03:30
parent 0c0a6cd5be
commit b24d1505b6
5 changed files with 734 additions and 291 deletions
+24
View File
@@ -185,9 +185,33 @@ export interface PodMetric {
name: string;
cpu: string;
memory: string;
/** When metrics-server returns multiple containers (e.g. Fluent Bit sidecar) */
containers?: { name: string; cpu: string; memory: string }[];
}
export interface WorkloadResourceUsage {
key: 'app' | 'database' | 'redis' | 'rabbitmq';
title: string;
deploymentName: string;
configured: {
cpuRequest: string;
cpuLimit: string;
memoryRequest: string;
memoryLimit: string;
replicas: number;
readyReplicas: number;
availableReplicas: number;
};
pods: PodInfo[];
metrics: PodMetric[];
sidecars?: { name: string; cpuRequest?: string; cpuLimit?: string; memoryRequest?: string; memoryLimit?: string }[];
}
export interface ResourceUsage {
/** Per-deployment breakdown (app, DB, optional Redis/RabbitMQ) */
workloads?: WorkloadResourceUsage[];
/** Note when Elasticsearch logging sidecar is enabled */
loggingNote?: string;
configured: {
cpuRequest: string;
cpuLimit: string;