我正在寻找一种方法,通过补丁从pod上的列表中删除特定值,特别是在SecurityContext上。能力属性。起初,我遇到了json补丁删除限制,这需要一个索引,但经过进一步的挖掘,我发现在策略补丁类型中使用了$deleteFromPrimitiveList指令。问题是,该指令在官方文档中没有任何文档,在论坛和源代码中只有几次点击。这就是我最终得到的对我有用的东西:
patch.yaml:
spec:
template:
spec:
containers:
- name: test
securityContext:
capabilities:
$deleteFromPrimitiveList/add: ["SYS_RAWIO"]
补丁命令:
kubectl patch deployment test --patch="$(cat patch.json)"
我的问题是,我应该使用这个吗?这是官方支持的吗?如果是,是否存在所需的最低群集版本?它没有在任何地方被记录下来是有原因的吗?感谢
它似乎得到了官方的支持,但没有很好的文档。
我能找到的最好的文档是社区回购中的一个降价文件,其中涵盖了这个和其他战略性合并补丁指令。
该文档特别指出了向后兼容性:
对战略合并修补程序的更改必须向后兼容,以便在以前版本中有效的修补程序请求继续有效。也就是说,由旧客户端发送到具有的新服务器的旧补丁格式必须继续正常工作。