- log.V(1).Info("Add watcher for secondary resource Collectd Daemonset")
- err = c.Watch(
- &source.Kind{Type: &appsv1.DaemonSet{}},
- &handler.EnqueueRequestsFromMapFunc{
- ToRequests: handler.ToRequestsFunc(func(a handler.MapObject) []reconcile.Request {
- labelSelector, err := collectdutils.GetWatchLabels()
- labels := strings.Split(labelSelector, "=")
- if err != nil {
- log.Error(err, "Failed to get watch labels, continuing with default label")
- }
- rcp := r.(*ReconcileCollectdPlugin)
- // Select the Daemonset with labelSelector (Defautl is app=collectd)
- if a.Meta.GetLabels()[labels[0]] == labels[1] {
- var requests []reconcile.Request
- cpList, err := collectdutils.GetCollectdPluginList(rcp.client, a.Meta.GetNamespace())
- if err != nil {
- return nil
- }
- for _, cp := range cpList.Items {
- requests = append(requests, reconcile.Request{
- NamespacedName: client.ObjectKey{Namespace: cp.Namespace, Name: cp.Name}})
- }
- return requests
- }
- return nil
- }),
- })
- if err != nil {
- return err
- }
-