Я пытаюсь пропатчить узел куба с помощью библиотеки Python kubernetes-client .
В частности, я пытаюсь оцепить узел. Используя 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"
Некоторые исследования привели меня к этой ошибке. Это относится к непосредственному использованию API kubernetes, но проблема, похоже, та же. К сожалению, решение - передача массива - не помогает.
К сожалению, документация здесь не помогает. Требуемый тип для body
показан как UNKNOWN_BASE_TYPE
, что не является полезным. Я посмотрел на код , но там нет ни малейшего понятия о том, как мне следует форматировать тело - я в растерянности.