Обновление Kubernetes ConfigMap - PullRequest
       2

Обновление Kubernetes ConfigMap

0 голосов
/ 05 сентября 2018

Я работаю над сценарием Python для программного обновления конфигурационных карт.

Пример сценария показан ниже.

import requests

headers = {"Content-Type": "application/json-patch+json"}
configData = {
"apiVersion": "v1",
"kind": "ConfigMap",
"data": {
    "test2.load": "testimtest"
},
"metadata": {
    "name": "nginx2"
}
}

r = requests.patch("http://localhost:8080/api/v1/namespaces/default/configmaps/nginx2", json=configData)

Интересной стороной этой проблемы является то, что у меня нет проблем с методами POST и GET, но когда я хочу обновить конфигурационные таблицы kubernetes с помощью метода PATCH HTTP, я получаю

 "reason":"UnsupportedMediaType" //STATUS_CODE 415

Как я могу справиться с этой проблемой.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Я предлагаю вам использовать клиентскую библиотеку Kubernetes вместо того, чтобы делать необработанные HTTP-вызовы самостоятельно. Тогда вам не нужно разбираться в низкоуровневых соединениях, так как библиотека будет абстрагироваться от вас.

Я использую Pykube , который предоставляет хороший питонский API, хотя, похоже, сейчас он заброшен.

Вы также можете использовать официальный client-python , который активно поддерживается. Библиотека немного более громоздкая, так как она основана на автоматически сгенерированном клиенте OpenAPI, но она охватывает множество вариантов использования, таких как потоковые результаты.

0 голосов
/ 08 сентября 2018

Вам нужно немного почитать, чтобы выяснить, действительно ли этот HTTP-глагол поддерживается, может, у вас проблема с разрешениями?

Несмотря ни на что, я предлагаю вам использовать многословную опцию kubectl для выяснения подобных вещей.

Например, скажем, я хочу удалить модуль, я бы:

kubectl -v=9 delete pod myapp

Вывод (я немного почистил) должен содержать информацию, которую вы ищете:

I1315 14:42:19.153664 30452 round_trippers.go:417]
   curl -k -v -XDELETE -H "Accept: application/json, */*"
   -H "User-Agent: kubectl/v1.8.5 (linux/amd64) kubernetes/cce11c6"
   https://<ip>:<port>/api/v1/namespaces/default/pods/myapp
...

так что теперь, если у меня есть все детали, необходимые для создания методов в python или чего-либо еще, надеюсь, что это имеет смысл и / или поможет, попробуйте это с помощью команды patch.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...