Добавление пользовательских веб-перехватчиков в 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 в Операторе? Я в порядке, если он должен прослушивать другой порт, чем встроенный контроллер.
1 ответ
Operator -sdk не запускает сервер, обычно он просматривает ресурсы k8s и согласовывает их, если только вы не добавите явно проверяющий / изменяющий веб-перехватчик (https://github.com/operator-framework/operator-sdk/blob/7e029625dde8f0d4cb88ac914af4deb7f5f85c4a/website/content/en/docs/building-operators/golang/webhooks.md)
Даже если это возможно, я предлагаю не делать этого, просто создайте новый http-сервер на новом порту.