Kubectl补丁$ deleteFromPrimitiveList指令

时间:2020-10-27 20:22:30

标签: kubernetes patch kubectl

我正在寻找一种通过修补程序(特别是在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)"

我的问题是,我应该使用它吗,这是否得到正式支持?如果是这样,是否需要最低的群集版本? 是否有任何地方没有记录的原因? 谢谢

1 个答案:

答案 0 :(得分:1)

它似乎已得到正式支持,但没有得到充分记录。

我能找到的最好的文档是a markdown file in the community repo,其中涵盖了此和其他战略性合并补丁程序指令。

该文档专门要求向后兼容:

对战略合并补丁程序的更改必须向后兼容,以使在先前版本中有效的补丁程序请求继续有效。也就是说,旧客户端发送给新服务器的旧补丁格式必须继续正常运行。