kubernetes - 添加标签无法通过动态资源和客户端运行
问题描述
我正在使用 client-go 通过解析 yaml 文件来创建资源,单击 code。
但是通过非结构化接口为资源设置标签不起作用,该怎么做?
func (u *Unstructured) SetLabels(labels map[string]string) {
if labels == nil {
RemoveNestedField(u.Object, "metadata", "labels")
return
}
u.setNestedMap(labels, "metadata", "labels")
}
我的代码是这样的:
func ApplyUnstructured(ctx context.Context, dynamicClient dynamic.Interface, restMapper meta.RESTMapper, unstructuredObj unstructured.Unstructured, serverSide bool) (*unstructured.Unstructured, error) {
if len(unstructuredObj.GetName()) == 0 {
metadata, _ := meta.Accessor(unstructuredObj)
generateName := metadata.GetGenerateName()
if len(generateName) > 0 {
return nil, fmt.Errorf("from %s: cannot use generate name with >apply", generateName)
}
}
....
// !!!! set labels not work !!!!!!!
unstructuredObj.SetLabels(map[string]string {
"jobid":"test",
} )
解决方案
推荐阅读
- vue.js - vuex:状态字段“foo”被“foo”处的同名模块覆盖
- c# - 将对象插入容器中,其中构造对象的类在类型参数的数量上有所不同
- android - 单击后退按钮时无法完成活动
- android - kotlin DSL 从其他文件中检索密钥
- angular - 离开页面前的警告 - 但如果路线匹配则不会
- django - Can't add comment form in Django web application
- java - 模拟未注入
- compare - sshcode 和 VS Code 远程开发扩展有什么区别
- excel - 根据某列上的单元格值将多行添加到另一个工作表
- mysql - 如何使用 CASE 函数将 HIGHLIGHTED NULL 删除为 0