From a1aceec9ec63a5807ca5b47d4e1e7a8939877bd1 Mon Sep 17 00:00:00 2001 From: Nawaz Dhandala Date: Tue, 24 Mar 2026 20:36:33 +0000 Subject: [PATCH] feat: remove 'Provider' field from Kubernetes cluster views and settings --- .../src/Pages/Kubernetes/Clusters.tsx | 7 - .../src/Pages/Kubernetes/View/Index.tsx | 247 ++++++++++-------- .../src/Pages/Kubernetes/View/Settings.tsx | 7 - 3 files changed, 145 insertions(+), 116 deletions(-) diff --git a/App/FeatureSet/Dashboard/src/Pages/Kubernetes/Clusters.tsx b/App/FeatureSet/Dashboard/src/Pages/Kubernetes/Clusters.tsx index a7cdb69015..1bfac3a062 100644 --- a/App/FeatureSet/Dashboard/src/Pages/Kubernetes/Clusters.tsx +++ b/App/FeatureSet/Dashboard/src/Pages/Kubernetes/Clusters.tsx @@ -152,13 +152,6 @@ const KubernetesClusters: FunctionComponent< title: "Pods", type: FieldType.Number, }, - { - field: { - provider: true, - }, - title: "Provider", - type: FieldType.Text, - }, ]} onViewPage={(item: KubernetesCluster): Promise => { return Promise.resolve( diff --git a/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Index.tsx b/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Index.tsx index e9423de677..42e94c2cb6 100644 --- a/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Index.tsx +++ b/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Index.tsx @@ -136,7 +136,6 @@ const KubernetesClusterOverview: FunctionComponent< select: { name: true, clusterIdentifier: true, - provider: true, otelCollectorStatus: true, lastSeenAt: true, }, @@ -772,97 +771,157 @@ const KubernetesClusterOverview: FunctionComponent< )} {/* Top Resource Consumers */} - {(topCpuPods.length > 0 || topMemoryPods.length > 0) && ( +
-
- {/* Top CPU */} -
-

- Top CPU Usage -

-
- {topCpuPods.map((pod: KubernetesResource, index: number) => { - return ( -
{ - Navigation.navigate( - RouteUtil.populateRouteParams( - RouteMap[ - PageMap.KUBERNETES_CLUSTER_VIEW_POD_DETAIL - ] as Route, - { - modelId: modelId, - subModelId: new ObjectID(pod.name), - }, - ), - ); - }} - className="cursor-pointer hover:bg-gray-50 rounded -mx-1 px-1 transition-colors" - > - + No CPU usage data available. +

+ ) : ( +
+ {topCpuPods.map((pod: KubernetesResource, index: number) => { + const pct: number = Math.min(pod.cpuUtilization ?? 0, 100); + return ( +
{ + Navigation.navigate( + RouteUtil.populateRouteParams( + RouteMap[ + PageMap.KUBERNETES_CLUSTER_VIEW_POD_DETAIL + ] as Route, + { + modelId: modelId, + subModelId: new ObjectID(pod.name), + }, + ), + ); + }} + className="flex items-center gap-4 px-5 py-3.5 cursor-pointer hover:bg-gray-50 transition-colors" + > + + {index + 1} + +
+
+ + {pod.name} + + {pod.namespace && ( + + {pod.namespace} + )} - secondaryLabel={pod.namespace} - /> +
+
+
+
80 + ? "bg-red-500" + : pct > 60 + ? "bg-amber-500" + : "bg-emerald-500" + }`} + style={{ + width: `${Math.max(pct, 1)}%`, + }} + /> +
+ + {KubernetesResourceUtils.formatCpuValue( + pod.cpuUtilization, + )} + +
- ); - })} -
+
+ ); + })}
- {/* Top Memory */} -
-

- Top Memory Usage -

-
- {topMemoryPods.map((pod: KubernetesResource, index: number) => { - const maxMemory: number = - topMemoryPods[0]?.memoryUsageBytes ?? 1; - const memPercent: number = - maxMemory > 0 - ? ((pod.memoryUsageBytes ?? 0) / maxMemory) * 100 - : 0; - return ( -
{ - Navigation.navigate( - RouteUtil.populateRouteParams( - RouteMap[ - PageMap.KUBERNETES_CLUSTER_VIEW_POD_DETAIL - ] as Route, - { - modelId: modelId, - subModelId: new ObjectID(pod.name), - }, - ), - ); - }} - className="cursor-pointer hover:bg-gray-50 rounded -mx-1 px-1 transition-colors" - > - -
- ); - })} -
-
-
+ )} - )} + + {topMemoryPods.length === 0 ? ( +

+ No memory usage data available. +

+ ) : ( +
+ {topMemoryPods.map((pod: KubernetesResource, index: number) => { + const maxMemory: number = + topMemoryPods[0]?.memoryUsageBytes ?? 1; + const memPercent: number = + maxMemory > 0 + ? ((pod.memoryUsageBytes ?? 0) / maxMemory) * 100 + : 0; + return ( +
{ + Navigation.navigate( + RouteUtil.populateRouteParams( + RouteMap[ + PageMap.KUBERNETES_CLUSTER_VIEW_POD_DETAIL + ] as Route, + { + modelId: modelId, + subModelId: new ObjectID(pod.name), + }, + ), + ); + }} + className="flex items-center gap-4 px-5 py-3.5 cursor-pointer hover:bg-gray-50 transition-colors" + > + + {index + 1} + +
+
+ + {pod.name} + + {pod.namespace && ( + + {pod.namespace} + + )} +
+
+
+
85 + ? "bg-red-500" + : memPercent > 70 + ? "bg-amber-500" + : "bg-blue-500" + }`} + style={{ + width: `${Math.max(memPercent, 1)}%`, + }} + /> +
+ + {KubernetesResourceUtils.formatMemoryValue( + pod.memoryUsageBytes, + )} + +
+
+
+ ); + })} +
+ )} + +
{/* Recent Warning Events */} {recentWarnings.length > 0 && ( @@ -957,15 +1016,6 @@ const KubernetesClusterOverview: FunctionComponent< description: "This should match the clusterName value in your kubernetes-agent Helm chart.", }, - { - field: { - provider: true, - }, - title: "Provider", - fieldType: FormFieldSchemaType.Text, - required: false, - placeholder: "EKS, GKE, AKS, etc.", - }, ]} modelDetailProps={{ showDetailsInNumberOfColumns: 2, @@ -994,13 +1044,6 @@ const KubernetesClusterOverview: FunctionComponent< title: "Description", fieldType: FieldType.Text, }, - { - field: { - provider: true, - }, - title: "Provider", - fieldType: FieldType.Text, - }, { field: { lastSeenAt: true, diff --git a/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Settings.tsx b/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Settings.tsx index 700df5de1a..12d4fcb9f1 100644 --- a/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Settings.tsx +++ b/App/FeatureSet/Dashboard/src/Pages/Kubernetes/View/Settings.tsx @@ -47,13 +47,6 @@ const KubernetesClusterSettings: FunctionComponent< title: "Cluster Identifier", fieldType: FieldType.Text, }, - { - field: { - provider: true, - }, - title: "Provider", - fieldType: FieldType.Text, - }, ], }} />