通过 API 或 SDK 应用配置 yaml 文件

Apply configuration yaml file via API or SDK

我在 kubernetes 集群中启动了一个 pod,它可以通过 go-sdk 调用 kubernetes api(如本例中:https://github.com/kubernetes/client-go/tree/master/examples/in-cluster-client-configuration)。我想在这个 pod 中监听一些外部事件(例如 GitHub web-hooks),从存储库中获取 yaml 配置文件并将它们应用到这个集群。

是否可以通过 kubernetes API(或通过 golang SDK 更好)调用 kubectl apply -f <config-file>

直接作为 yaml:不,我不知道。但是如果你增加 kubectl 的详细程度(--v=100 或类似的),你会看到 kubectl 对你的 yaml 文件所做的第一件事就是将它转换为 json,并且然后POST那个的内容到API。所以回答你这个问题的精神是"yes."

您可能会对这个 box/kube-applier 项目感兴趣。虽然它似乎不支持 webhook,但我相信他们会欢迎 PR 教它这样做。使用他们现有的项目还意味着您可以从他们已经解决的所有错误以及他们漂亮的 prometheus 指标集成中受益。