我正在寻找一种通过修补程序(特别是在SecurityContext.Capabilities属性上)从窗格中的列表中删除特定值的方法。最初,我遇到了需要修补程序索引的json补丁删除限制,但是在进一步挖掘之后,我发现用于战略补丁类型的$ deleteFromPrimitiveList指令。该指令没有在官方文档中的任何位置进行文档记录,仅在论坛和源代码本身中有两处亮点。这就是我最终对我有用的东西:
patch.yaml:
spec:
template:
spec:
containers:
- name: test
securityContext:
capabilities:
$deleteFromPrimitiveList/add: ["SYS_RAWIO"]
补丁命令:
kubectl patch deployment test --patch="$(cat patch.json)"
我的问题是,我应该使用它吗,这是否得到正式支持?如果是这样,是否需要最低的群集版本? 是否有任何地方没有记录的原因? 谢谢
答案 0 :(得分:1)
它似乎已得到正式支持,但没有得到充分记录。
我能找到的最好的文档是a markdown file in the community repo,其中涵盖了此和其他战略性合并补丁程序指令。
该文档专门要求向后兼容:
对战略合并补丁程序的更改必须向后兼容,以使在先前版本中有效的补丁程序请求继续有效。也就是说,旧客户端发送给新服务器的旧补丁格式必须继续正常运行。