尝试修补我的自定义资源以将额外元素添加到数组中。
使用 kubectl 可以正常工作:
kubectl patch my-resource default --type=json -p '[ { "op":"add", "path": "/spec/data/-", "value": "3342, 43243.343, 434343" } ]' -v 9
但无法使用 Python 使其工作:
body = '[ { "op":"add", "path":"/spec/data/-", "value": "3342, 43243.343, 434343" } ]'
api_response = api_instance.patch_namespaced_custom_object(group, version, namespace, plural, name, json.loads(body) )
得到回应
"status":"Failure","message":"json: cannot unmarshal array into Go value of type map[string]interface {}","code":500
奇怪的是,当我放下 [ ] 并通过 {}
api_response = api_instance.patch_namespaced_custom_object(group, version, namespace, plural, name, json.loads('{ "spec": { "data": [ "3342, 43243.343, 434343" ] } } ') )
它有效,但效果不是我想要的——它完全覆盖了“数据”数组,而我想追加。
我错过了什么?