Добавление пользовательских веб-перехватчиков в Kubernetes GO Operator

Я делаю POC вокруг оператора kubernetes Go для выполнения некоторых асинхронных действий в приложении, и я ожидаю получить обратный вызов из приложения python в Operator, который затем может продолжить обновление метаданных ресурса, например, внести изменения в поля статуса ресурса.

Я знаю, что контроллер, используемый Kubernetes Go Operator SDK, использует сервер API, работающий на определенном порту. Но можно ли его использовать в качестве настраиваемого сервера API, где я могу настроить пути для работы веб-перехватчика?

Пример ожидаемого API обратного вызова:

curl -XPOST http://cyber-operator.svc/application/updateClusterState

Я ожидаю запуска процедуры внутри оператора при вызове этого API.

Я искал документацию и не нашел ничего подходящего. Могу ли я запустить в Операторе отдельный сервер API? Я в порядке, если он должен слушать другой порт, чем встроенный контроллер.


person Aditya Aggarwal    schedule 24.08.2020    source источник


Ответы (1)


operator-sdk не запускает сервер, обычно он просматривает ресурсы k8s и согласовывает их, если только вы не добавите явно проверяющий / изменяющий веб-перехватчик (https://github.com/operator-framework/operator-sdk/blob/7e029625dde8f0d4cb88ac914af4deb7f5f85c4a/website/content/en/docs/building-operators/golang/webhooks.md)

Даже если это возможно, я предлагаю не делать этого, просто создайте новый http-сервер на новом порту.

person jxiewei    schedule 25.08.2020