kubernetes - 如何为某个资源 Kubernetes Go Operator 生成事件
问题描述
我正在用 Go 编写一个 Kubernetes Operator,我想以与 Pod 相同的方式生成事件,即在协调的每个点我想编写一个可以使用kubectl describe myresource
.
我找到了可以让我这样做的包,但我不明白如何使用它:https ://github.com/kubernetes/client-go/blob/master/tools/record/event.go
示例骨架代码:
type MyResourceReconciler struct {
client.Client
Log logr.Logger
Scheme *runtime.Scheme
}
var logger logr.Logger
func (r *MyResourceReconciler) SetupWithManager(mgr ctrl.Manager) error {
return ctrl.NewControllerManagedBy(mgr).
Named("MyResource-controller").
For(&v1.MyResource{}).
Complete(r)
}
func (r *MyResourceReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) {
logger = r.Log.V(0).WithValues("MyResource", req.NamespacedName)
logger.Info("reconcile called")
// TODO: Record event for req.NamespacedName
return reconcile.Result{}, nil
}
解决方案
Kubebuilder v1 书中有一个很好的例子,说明如何使用来自. Events
client-go
推荐阅读
- python - 如何使用 glob 和 matplotlib 从多个文件中分别绘图并保存到图形?
- javascript - 过滤时,for each 不适用于对象数组
- typescript - 打字稿:检查联合类型是否不相交
- mysql - MySQL选择只计算每年的新ID
- python - 对于这个例子,如何在 pandas 中创建一个数据透视表?
- java - 使用 POST 从 Java 发送文件
- qt - 将 QML 与 qt 小部件类型的 ui 表单一起使用?
- firebase - Flutter:监听firebase快照时如何返回bool值?
- sql - SQL 上次日期时间值
- postgresql - 在 PostgreSQL 的递归查询函数中使用 PERFORM