in pkg/controller/doriscluster_controller.go [261:304]
func (r *DorisClusterReconciler) watchPodBuilder(builder *ctrl.Builder) *ctrl.Builder {
mapFn := handler.EnqueueRequestsFromMapFunc(
func(ctx context.Context, a client.Object) []reconcile.Request {
labels := a.GetLabels()
dorisName := labels[dorisv1.DorisClusterLabelKey]
if dorisName != "" {
return []reconcile.Request{
{NamespacedName: types.NamespacedName{
Name: dorisName,
Namespace: a.GetNamespace(),
}},
}
}
return nil
})
p := predicate.Funcs{
CreateFunc: func(e event.CreateEvent) bool {
if _, ok := e.Object.GetLabels()[dorisv1.DorisClusterLabelKey]; !ok {
return false
}
return true
},
UpdateFunc: func(u event.UpdateEvent) bool {
if _, ok := u.ObjectOld.GetLabels()[dorisv1.DorisClusterLabelKey]; !ok {
return false
}
return u.ObjectOld != u.ObjectNew
},
DeleteFunc: func(d event.DeleteEvent) bool {
if _, ok := d.Object.GetLabels()[dorisv1.DorisClusterLabelKey]; !ok {
return false
}
return true
},
}
return builder.Watches(&corev1.Pod{},
mapFn, controller_builder.WithPredicates(p))
}