向Kubernetes GO Operator添加自定义Webhooks

问题描述

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

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

预期的回调API的示例:

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

我希望在调用此API时在操作员内部运行一个过程。

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

解决方法

operator-sdk不会启动服务器,通常会列出监视k8s资源并进行协调,除非您显式添加验证/变异webhook(https://github.com/operator-framework/operator-sdk/blob/7e029625dde8f0d4cb88ac914af4deb7f5f85c4a/website/content/en/docs/building-operators/golang/webhooks.md

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

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...