go - 使用 go 客户端修补 pvc
问题描述
我正在尝试使用此界面中的 go library 的 patch 选项更新 pvc 标签。
有没有关于如何使用它的例子?另外如果标签不存在,补丁也会添加标签吗?
我希望在下面的对象中更新/添加 my_label:
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-class: ""
creationTimestamp: "2021-01-25T18:53:02Z"
finalizers:
- kubernetes.io/pvc-protection
labels:
my_label: my_value
解决方案
可以通过以下方式完成:
persVolC := client.CoreV1().PersistentVolumeClaims("default")
data := `
[
{ "op": "add", "path": "/metadata/labels/mylabel", "value": "myvalue" }
]
`
updatedPvc, err := persVolC.Patch(ctx, "name-of-pvc", types.JSONPatchType, []byte(data), meta_v1.PatchOptions{})
if err != nil {
log.Fatal(err)
}
去游乐场的完整例子。
在这里您可以阅读有关 JSON 补丁标准的信息。
推荐阅读
- jmeter - Grafana 中的表格图使用从流入更改列到行标题的数据
- flutter - 嗨,我正在尝试保存本地个人资料图片
- javascript - window.location.href 重定向不适用于 url 中的 #
- node.js - 节点js脚本注入问题
- javascript - 如果 areEqualFunction 执行复杂/大量比较,使用 React.memo 会更快吗?
- kotlin - 如何配置一个 gradle 多模块项目?
- ruby-on-rails - 复合期望停止工作rspec
- javascript - 在 webpack 构建中提供单个静态图像
- visual-studio - 显示给定月份最后一天的值 - SSRS 报表生成器
- laravel - 如何让 cron 决定每天运行 laravel 计划的时间?