配置变更审核

YAML 对比分清数据变化与文件改动

按结构比较 YAML 1.2 多文档流,或检查原始文本。

YAML 对比

修改前

修改后

两侧输入均在当前浏览器中处理,内容不会上传。

例如 ["/0/metadata/time"]。/0 为第一份文档,/0/ 指向它的空键。~ 用 ~0,/ 用 ~1。排除子树会影响结构计数和报告,数组索引不移动。原文模式不应用过滤。

YAML 1.2 核心模式及显式时间戳、二进制标签。忽略映射键序,文档与数组按索引配对。整数和浮点数不同;时间戳比较原始写法,不比较同一时刻。

每侧最多 200,000 字符、800,000 UTF-8 字节;100 份文档、50,000 个展开节点、100 层深度、5,000 条锚点与别名引用记录。最多 5,000 项变更,两侧路径累计 100 万字符,报告 400 万字符。工作线程限时 5 秒;文本比较限 500 毫秒、2,000 编辑距离、50,000 个标记。

输入配置或运行比较。

变更

上线前的配置审查常把副本数变化、YAML 键顺序调整和注释修改混在一起。YAML 对比先按路径检查数据与类型,再让你单独查看文件写法,避免把纯排版变化当成部署差异。

进行 YAML 比较时,一份文件可能包含多个文档。本页逐份按位置配对,不会只取第一份;检查 YAML 差异时也保留序列索引,方便追踪插入元素后影响了哪些位置。

为什么使用 YAML 对比

两种视图分别回答数据与文件问题

完整配对每份文档

YAML 对比逐份处理整个文档流。映射只是换了键的书写顺序不会产生数据变化,少一份文档或数值类型变化仍会单独报告。文档重排会改变配对关系。

两列文档卡按位置横向配对,变化的叶节点与没有对应项的末尾文档被突出显示。

单独审核文件写法

维护者修改了注释,配置值可能没有改变。原文视图保留这些修改以及空格和换行,适合核对提交内容;它不继承结构视图的路径排除设置。

同一组源文件分别进入结构树与文本行视图,文本中重排行和修改的注释被标出。

先确定审核对象

配对位置、排除范围与报告新鲜度同样重要

01

先对齐文档位置

两侧第一份文档配第一份,第二份配第二份,路径依次以 /0、/1 开头。在中间插入文档会使后续位置移动,不会根据 Kubernetes 对象名称自动重新配对。

02

准确填写排除路径

输入 JSON 字符串数组,如 ["/0/metadata/time"]。每条路径排除该节点及后代;斜杠写作 ~1,波浪号写作 ~0,含换行的键可使用 JSON 转义。/0/ 是空字符串键,/0 则是整份第一文档。

03

导出需要的视图

结构模式导出排除后的带类型 JSON 变更;文本模式导出未过滤的行块,也包含未变原文。编辑后立即禁用过期导出;自动比较等待 350 毫秒,手动模式支持 Ctrl/Cmd+Enter。替换预览应用后可撤销一次。

让每项变化有明确位置

键名、索引和标量类型各自保留含义

多文档流不遗漏

显式空文档也参与配对。整份文档的增加或删除有独立标记;数组按索引比较,插入元素可能引出多个后续位置变化,不会猜测为移动。

精确保留数字差别

整数在标记长度预算内保留全部数字,有限浮点数按精确系数与指数比较。1.0 等于 1e0,但不等于整数 1;浮点负零区别于正零,NaN 在本工具中与 NaN 相等。

容器内部也能排除

比较前会从两侧结构中排除指定子树,即使它属于新增容器或被标量替换的容器也适用。保留数组原始索引,计数只反映剩余变化。

可核对的带类型报告

标量以字符串及显式类型记录,大整数和非有限浮点数不会变成普通 JSON 数字或空值。容器携带键或原索引;页面、剪贴板与下载采用同一当前报告,它不能作为补丁执行。

先核对语义与范围

相同结论仅适用于此处声明的比较方式

声明支持的语法子集
采用 YAML 1.2 核心模式及显式时间戳、二进制标签。拒绝显式 1.1 指令、非字符串或复杂键、重复键、未知标签、set/omap/pairs 及不支持的标量写法。YES 和 NO 保持字符串,不保证接受所有有效 YAML。
别名有界,合并需开启
别名引用同文档内最近的同名前置锚点;前向、跨文档和循环引用均报错。合并展开默认关闭,开启后较早来源优先,显式键覆盖来源,仅浅层合并。带引号或显式字符串标签的 << 仍是普通键。
时间戳看写法,二进制看字节
显式时间戳保留原文小数位与早期年份进行词法比较,不检查日历有效性,也不按时区归一为同一时刻。二进制要求带填充的规范 Base64,可含 YAML 空白,按解码字节比较。
排除路径不等于脱敏
路径只影响结构计数和报告。编辑器原文、替换预览及文本模式报告仍完整可见,不会按密码键名猜测秘密内容。文本报告也包含未变块,分享前须选对报告。
比较不替代合并与部署
不提供对象身份配对、数组移动检测、三方合并、Helm 渲染、URL 导入或服务器历史。先在外部渲染模板;原文保留注释、顺序和物理换行,结构比较则忽略这些表现形式。
预算内生成完整结果
每侧限 200,000 字符、800,000 UTF-8 字节;100 份文档、50,000 节点、100 层深度、5,000 条锚点与别名合计记录。最多 5,000 项变更,两侧路径累计 100 万字符,数值标记 1,000 字符,报告 400 万字符。过滤限 100 条路径、20,000 字符。线程限 5 秒;文本另限 500 毫秒、2,000 编辑距离、50,000 标记。失败禁用导出,不返回部分成功结果。 展开标量处理量(原文与解码字符串长度累计)及生成的 YAML 文本各限 200 万字符。

YAML 对比常见问题

配置审核中容易遇到的疑问

键重新排序也算差异吗?

YAML 对比的结构模式忽略映射键序,只检查键和带类型值。原始文本模式会显示重排、注释及空格变化,两种结果回答的问题不同。

能直接选择两个 YAML 文件吗?

可以,两侧分别选择本地 .yaml 或 .yml 文件。文件须为有效 UTF-8,并符合每侧大小限制;应用替换前会显示预览,之后可以撤销。

锚点与别名会怎样参与比较?

结构模式把别名展开成值,修改锚点会影响引用它的位置。前向、跨文档及循环引用会报错;原文模式则直接显示锚点名称和别名写法变化。

使用 tab 缩进为什么报错?

YAML 的缩进不能使用 tab。修正缩进后可再做结构比较;文本模式无需有效 YAML,仍能显示制表符和原始内容差异。

配置内容会上传或保存吗?

内容在浏览器内处理,不上传或保存到服务器。排除路径只隐藏结构子树,并不移除编辑器原文或文本报告中的内容。

还有未覆盖的配置审核场景?

开始 YAML 对比

用 YAML 对比确认类型和值的变化,再检查原始文本,选择需要保留或分享的报告。

原文报告不应用路径过滤。