Kubebuilder V3 文档解释说它讨论了“如何将多个事件批处理到单个协调调用中”。但是,我在本文档中找不到有关事件管理的任何信息。
您能否提供有关如何发送事件的信息/代码示例Kubebuilder-v3/operator-sdk
?
Kubebuilder V3 文档解释说它讨论了“如何将多个事件批处理到单个协调调用中”。但是,我在本文档中找不到有关事件管理的任何信息。
您能否提供有关如何发送事件的信息/代码示例Kubebuilder-v3/operator-sdk
?
官方文档中的这一部分应该回答您的问题:
Controller的这个业务逻辑是在
Reconcile
函数中实现的。此函数采用 ContainerSet 的命名空间和名称,允许将多个事件一起批处理到单个 Reconcile 调用中。 此处显示的函数使用 ContainerSet.Spec 中指定的副本和映像创建或更新部署。请注意,它会为 Deployment 设置 OwnerReference,以便在删除 ContainerSet 后在 Deployment 上启用垃圾收集。
- 使用 NamespacedName 读取 ContainerSet
- 如果有错误或已被删除,请返回
- 从 ContainerSetSpec 创建新的所需 DeploymentSpec
- 阅读 Deployment 并将 Deployment.Spec 与 ContainerSet.Spec 进行比较
- 如果观察到的 Deployment.Spec 与所需的规范不匹配 - 未找到部署:创建新的部署 - 找到了部署并需要更改:更新部署
在那里您还可以找到带有代码的示例。
似乎此页面可能有助于理解如何发送事件:https ://book-v1.book.kubebuilder.io/beyond_basics/creating_events.html使用标准客户端-go EventRecorder
但是,对于 Kubebuilder v3,它不是最新的。
感谢@coderanger 在 k8s 堆栈频道上对这个主题的帮助!