Kustomize中的补丁与补丁Json6902之间有什么区别

问题描述

根据我阅读的文档,有3种修补方法:patch,patchStrategicMerge,patchJson6902。

patchStrategicMerge和patchJson6902之间的区别很明显。 “ patchesStrategicMerge”需要使用kubernetes资源的重复结构来标识要打补丁的基础资源,然后在规范的修改部分中指出要更改(或删除)的内容。

'patchesJson6902'定义了一个'target'属性,该属性用于指定kubernetes资源,而'path'属性则指定该资源中的哪个属性被修改,添加或删除。

但是,我不清楚“ patches”和“ patchesJson6902”之间的区别。它们在性质上似乎非常相似。两者都指定了“目标”属性和用于描述要修改内容的操作对象。

我注意到的唯一区别是,补丁程序不需要patchsJson6902的group属性;原因不明。

那么为什么两者之间有区别?如何确定要使用哪个?

解决方法

对此的解释是here

总而言之,patchJson6902是一个较旧的关键字,只能通过target匹配一个资源(没有通配符),并且仅接受Gvk,名称空间和名称。

patches指令较新,并且可以接受更多元素(注释选择器和标签选择器)。另外,名称空间和名称可以是正则表达式。 patches的目标可以匹配多个资源,所有资源都将被修补。

此外,使用patches时,它将尝试将补丁文件解析为Json6902补丁,如果不起作用,它将退回尝试作为战略合并尝试补丁。

总体而言,似乎patches对于新项目应该相当普遍。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...