将自定义 Webhooks 添加到 Kubernetes GO Operator

Adding custom Webhooks to Kubernetes GO Operator

我正在围绕 kubernetes Go Operator 做一个 POC,以在应用程序中执行一些异步操作,我希望从 python 应用程序获得回调到 Operator,然后可以继续更新资源元数据,例如对资源状态字段进行更改。

我知道 Kubernetes Go Operator SDK 使用的控制器在特定端口上使用 API 服务器 运行ning。但它可以用作自定义 API 服务器,我可以在其中设置 webhook 的工作路径吗?

预期回调示例 API:

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

我希望在调用此 API 时 运行 运算符内部的过程。

我搜索了文档,但找不到相关内容。我可以在 Operator 中 运行 一个单独的 API 服务器吗?如果它必须监听与内置控制器不同的端口,我很好。

operator-sdk 不启动服务器,通常它 list-watch k8s 资源和协调,除非您显式添加 validating/mutating webhook (https://github.com/operator-framework/operator-sdk/blob/7e029625dde8f0d4cb88ac914af4deb7f5f85c4a/website/content/en/docs/building-operators/golang/webhooks.md)

即使有可能,我建议不要这样做,只需在新端口上创建一个新的 http 服务器即可。