gpt4 book ai didi

go - 创建补丁以添加 kubernetes 注释

转载 作者:IT王子 更新时间:2023-10-29 02:28:20 24 4
gpt4 key购买 nike

我想写一个mutating webhook向所有未明确提供的入口对象添加默认入口类。

根据examples我发现我需要为 webhook 返回提供一个正确的 json 补丁。

我首先使用 kubectl 尝试我的补丁:

$ kubectl patch ingress mying --type='json' -p='[{"op": "add", "path": "/metadata/annotations/key", "value":"value"}]'
The "" is invalid

当不存在注释元素时,看起来这不起作用。

$ kubectl patch ingress mying --type='json' -p='[{"op": "add", "path": "/metadata/annotations", "value":{"key":"value"}}]'
ingress.extensions/kafka-monitoring-topics-ui patched

创建完整的注释元素工作正常,但在我的例子中,我需要一个包含斜杠的 kubernetes.io/ingress.class 键。

kubectl patch ingress mying --type='json' -p='[{"op": "add", "path": "/metadata/annotations", "value":{"kubernetes.io/ingress.class":"value"}}]'
ingress.extensions/kafka-monitoring-topics-ui patched

这在创建注释对象时工作正常。但是,如果已经存在一些注释,而我只是想添加一个,那么添加一个似乎是不可能的。

只需使用 [{"op": "add", "path": "/metadata/annotations", "value":{"kubernetes.io/ingress.class":"value"}}] 删除所有现有注释,而 '[{"op": "add", "path": "/metadata/annotations/kubernetes.io/ingress.class", "value": "value"}] 由于包含斜杠而不起作用。

长话短说:使用适当的补丁简单地添加入口类的正确方法是什么?

PS:是的,我知道 kubectl annotate,但不幸的是,这对我的 webhook 没有帮助。

最佳答案

对我来说更容易的是annotate而不是patch:

kubectl annotate ingress mying kubernetes.io/ingress.class=value

如果您想在应用更改之前对其进行测试,请添加 --dry-run -o yaml 标志。

关于go - 创建补丁以添加 kubernetes 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573724/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com