Kustomize 中的 patches 与 patchesJson6902 有什么区别
What is the difference between patches vs patchesJson6902 in Kustomize
根据我阅读的文档,有 3 种修补方法:
- 补丁
- 补丁策略合并
- patchesJson6902.
patchesStrategicMerge
和patchesJson6902
的区别很明显。 patchesStrategicMerge
需要 kubernetes 资源的重复结构来标识正在修补的基础资源,然后是规范的修改部分以表示更改(或删除)的内容。
patchesJson6902
定义了一个 'target' 属性,用于指定 kubernetes 资源,'path' 属性指定资源中的哪个属性被修改、添加或删除。
但是,我不清楚patches
和patchesJson6902
之间的区别。它们在本质上似乎非常相似。两者都指定了一个 'target' 属性和描述修改内容的操作对象。
我注意到的唯一区别是 patches
不需要 'group' 属性,而 patchesJson6902
需要;原因不明。
那么为什么两者有区别呢?我如何确定使用哪一个?
对此的解释是here。
总而言之,patchJson6902
是一个较旧的关键字,它只能通过 target
(无通配符)匹配一个资源,并且只接受 Group-version-kind (GVK)、名称空间和名称.
patches
指令更新并接受更多元素(注释选择器和标签选择器也是如此)。此外,命名空间和名称可以是正则表达式。 patches
的目标可以匹配多个资源,所有资源都将被修补。
此外,对于 patches
,它会尝试将补丁文件解析为 Json6902 补丁,如果这不起作用,它将返回尝试将补丁作为战略合并。因此,在许多情况下 patches
也可以避免使用 patchesStrategicMerge
的需要。
总的来说,似乎 patches
应该对新项目非常普遍。
这些关键词的上游文档:
根据我阅读的文档,有 3 种修补方法:
- 补丁
- 补丁策略合并
- patchesJson6902.
patchesStrategicMerge
和patchesJson6902
的区别很明显。 patchesStrategicMerge
需要 kubernetes 资源的重复结构来标识正在修补的基础资源,然后是规范的修改部分以表示更改(或删除)的内容。
patchesJson6902
定义了一个 'target' 属性,用于指定 kubernetes 资源,'path' 属性指定资源中的哪个属性被修改、添加或删除。
但是,我不清楚patches
和patchesJson6902
之间的区别。它们在本质上似乎非常相似。两者都指定了一个 'target' 属性和描述修改内容的操作对象。
我注意到的唯一区别是 patches
不需要 'group' 属性,而 patchesJson6902
需要;原因不明。
那么为什么两者有区别呢?我如何确定使用哪一个?
对此的解释是here。
总而言之,patchJson6902
是一个较旧的关键字,它只能通过 target
(无通配符)匹配一个资源,并且只接受 Group-version-kind (GVK)、名称空间和名称.
patches
指令更新并接受更多元素(注释选择器和标签选择器也是如此)。此外,命名空间和名称可以是正则表达式。 patches
的目标可以匹配多个资源,所有资源都将被修补。
此外,对于 patches
,它会尝试将补丁文件解析为 Json6902 补丁,如果这不起作用,它将返回尝试将补丁作为战略合并。因此,在许多情况下 patches
也可以避免使用 patchesStrategicMerge
的需要。
总的来说,似乎 patches
应该对新项目非常普遍。
这些关键词的上游文档: