From cd3607131170622ba3be70579f4e17d6ee417d46 Mon Sep 17 00:00:00 2001 From: Nawaz Dhandala Date: Tue, 24 Mar 2026 22:29:13 +0000 Subject: [PATCH] feat: implement cleanK8sObject function to remove noisy internal fields from Kubernetes objects --- .../Kubernetes/KubernetesYamlTab.tsx | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/App/FeatureSet/Dashboard/src/Components/Kubernetes/KubernetesYamlTab.tsx b/App/FeatureSet/Dashboard/src/Components/Kubernetes/KubernetesYamlTab.tsx index 5fe7bfb9ed..a725fdd018 100644 --- a/App/FeatureSet/Dashboard/src/Components/Kubernetes/KubernetesYamlTab.tsx +++ b/App/FeatureSet/Dashboard/src/Components/Kubernetes/KubernetesYamlTab.tsx @@ -108,6 +108,39 @@ function toYaml(obj: unknown, indent: number = 0): string { return String(obj); } +/** + * Remove noisy internal Kubernetes fields that are not useful for users. + * - managedFields: internal API server field ownership tracking + * - resourceVersion: internal etcd revision + * - uid: internal object UUID + * - generation: internal object version counter + * - selfLink: deprecated API field + */ +function cleanK8sObject( + obj: Record, +): Record { + const cleaned: Record = { ...obj }; + + // Clean metadata sub-fields + if ( + cleaned["metadata"] && + typeof cleaned["metadata"] === "object" && + !Array.isArray(cleaned["metadata"]) + ) { + const metadata: Record = { + ...(cleaned["metadata"] as Record), + }; + delete metadata["managedFields"]; + delete metadata["uid"]; + delete metadata["resourceVersion"]; + delete metadata["generation"]; + delete metadata["selfLink"]; + cleaned["metadata"] = metadata; + } + + return cleaned; +} + const KubernetesYamlTab: FunctionComponent = ( props: ComponentProps, ): ReactElement => { @@ -129,7 +162,9 @@ const KubernetesYamlTab: FunctionComponent = ( }); if (result && Object.keys(result).length > 0) { - const yaml: string = toYaml(result); + // Remove noisy internal Kubernetes fields before rendering + const cleaned: Record = cleanK8sObject(result); + const yaml: string = toYaml(cleaned); setYamlContent(yaml); } else { setYamlContent("");