Python kubernetes-clientライブラリを使用して kube ノードにパッチを適用しようとしています。
具体的には、ノードを閉鎖しようとしています。kubectl を使用すると、正常に実行できます。
kubectl patch node mynode -json --patch={"op":"replace", "path":"/spec/unschedulable", "value":true}`
ただし、python kubernetes-client ライブラリを使用すると失敗します。
from kubernetes import client, config
config.load_kube_config()
body='{"op":"replace", "path":"/spec/unschedulable", "value":true}'
# also have tried body='[{"op":"replace", "path":"/spec/unschedulable", "value":true}]'
v1=client.CoreV1Api()
ret=v1.patch_node(name="mynode", body=body)
print (ret)
戻り値には次のメッセージが含まれます。
"json: cannot unmarshal object into Go value of type jsonpatch.Patch"
いくつかの調査により、このバグにたどり着きました。kubernetes api を直接使用することを指していますが、問題は同じようです。残念ながら、配列を渡すという解決策は役に立ちません。
残念ながら、ドキュメントは役に立ちません。の必要なタイプbody
は として表示されますがUNKNOWN_BASE_TYPE
、これは役に立ちません。私はコードを見てきましたが、本文をどのようにフォーマットするべきかについての手がかりはありません.私は途方に暮れています.