热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

创建补丁以添加kubernetes批注

如何解决《创建补丁以添加kubernetes批注》经验,为你挑选了1个好方法。

我想编写一个变异的webhook,将默认的入口类添加到所有未显式提供的入口对象。

根据示例,我发现我需要为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,但是不幸的是,这对我的网络挂钩没有帮助。



1> 小智..:

更换正斜杠(/中)kubernetes.io/ingress.class~1

您的命令应如下所示:

$ kubectl patch ingress mying --type='json' -p='[{"op": "add", "path": "/metadata/annotations/kubernetes.io~1ingress.class", "value":"nginx"}]'

参考:RFC 6901 https://tools.ietf.org/html/rfc6901#section-3


推荐阅读
author-avatar
牛妈是007
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有