Skip to content

Commit a4315da

Browse files
committed
Filter subscriber reconciler events
1 parent 35a40f2 commit a4315da

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

components/ws-manager-mk2/controllers/subscriber_controller.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,16 @@ import (
88
"context"
99
"os"
1010

11+
"k8s.io/apimachinery/pkg/api/equality"
1112
"k8s.io/apimachinery/pkg/api/errors"
1213
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
1314
ctrl "sigs.k8s.io/controller-runtime"
1415
"sigs.k8s.io/controller-runtime/pkg/client"
1516
"sigs.k8s.io/controller-runtime/pkg/controller"
17+
"sigs.k8s.io/controller-runtime/pkg/event"
1618
"sigs.k8s.io/controller-runtime/pkg/handler"
1719
"sigs.k8s.io/controller-runtime/pkg/log"
20+
"sigs.k8s.io/controller-runtime/pkg/predicate"
1821
"sigs.k8s.io/controller-runtime/pkg/source"
1922

2023
config "github.com/gitpod-io/gitpod/ws-manager/api/config"
@@ -76,5 +79,14 @@ func (r *SubscriberReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Ma
7679
}
7780
}()
7881

79-
return c.Watch(source.Kind(mgr.GetCache(), &workspacev1.Workspace{}), &handler.EnqueueRequestForObject{})
82+
filterByStatus := predicate.Funcs{
83+
UpdateFunc: func(e event.UpdateEvent) bool {
84+
old := e.ObjectOld.(*workspacev1.Workspace)
85+
new := e.ObjectNew.(*workspacev1.Workspace)
86+
87+
return !equality.Semantic.DeepDerivative(old.Status, new.Status)
88+
},
89+
}
90+
91+
return c.Watch(source.Kind(mgr.GetCache(), &workspacev1.Workspace{}), &handler.EnqueueRequestForObject{}, filterByStatus)
8092
}

0 commit comments

Comments
 (0)