fix(k8s): 可视化编辑器 YAML 解析失败(managedFields 清理)

- 先解析原始 YAML 再对象级剥离,避免 cleanYAML 破坏结构
- managedFields 从 METADATA_LINE_KEYS 移除,改整块删除含数组项
- YamlViewer 同步使用 parseEditableManifest
This commit is contained in:
Logan.Li committed 2026-06-26 14:53:20 +08:00
1 parent 21d40b186a
commit 5fad2db0c6
101 files changed
+195 -146

No files matched your search

@@ -13,7 +13,7 @@ import { yaml } from '@codemirror/lang-yaml';
import { oneDark } from '@codemirror/theme-one-dark';
import { cleanYAML } from './k8s-yaml-utils';
import { createEmptyManifest } from './resource-create-templates';
import { parseManifest, dumpManifest, prepareManifestForSave } from './k8s-manifest-utils';
import { parseManifest, parseEditableManifest, dumpManifest, prepareManifestForSave } from './k8s-manifest-utils';
interface ResourceVisualEditorProps {
clusterCode: string;
@@ -46,10 +46,10 @@ export function ResourceVisualEditor({ clusterCode, namespace, resource, name, o
return;
}
const text = await kubernetesApi.getResourceYaml(clusterCode, namespace, resource, name);
const cleaned = cleanYAML(text);
setRawYaml(text);
setEditYaml(cleaned);
const parsed = await parseManifest(cleaned);
// 先解析原始 YAML,再用对象级剥离;cleanYAML 会破坏 managedFields 导致解析失败 // Logan.Li
const { manifest: parsed, yaml: editableYaml } = await parseEditableManifest(text);
setEditYaml(editableYaml);
setManifest(parsed);
if (!parsed) {
setMode('yaml');