有一个controller-runtime注册Reconcile队列的技巧,使用reflect替换框架内部controller的队列,这样就能在另外的业务协程去添加入队任务,从而触发Reconcile。 这在检查业务漏掉删除事件的场景非常有用。
// 注册队列
reflect.ValueOf(instance).Elem().FieldByName("MakeQueue").Set(reflect.ValueOf(
func() workqueue.RateLimitingInterface {
return r.mainQueue
}))