我有一个控制器,它在“foo”命名空间中协调 MyKind 自定义资源。在协调循环中,它在“bar”命名空间中创建部署 MyDeployment。我想知道如何在“bar”命名空间中创建的 MyDeployment 上设置监视,该命名空间不同于自定义资源所在的命名空间(“foo”)。
我尝试使用以下设置我的管理器,但它似乎不起作用,因为我试图观察的部署位于不同的命名空间中,因此控制器无法接收部署上的 CRUD 操作的任何事件。
return controllerruntime.NewControllerManagedBy(mgr).
For(&v1alpha1.MyKind{}).
Owns(&appsv1.Deployment{}).
Complete(r)
}
是否有任何自定义手表可以配置我的控制器,以便在不同的命名空间中接收部署事件。
注意:我尝试了 handler.EnqueueRequestsFromMapFunc,IIUC 它还协调了同一命名空间中的 Kinds。