@@ -8,13 +8,16 @@ import (
8
8
"context"
9
9
"os"
10
10
11
+ "k8s.io/apimachinery/pkg/api/equality"
11
12
"k8s.io/apimachinery/pkg/api/errors"
12
13
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
13
14
ctrl "sigs.k8s.io/controller-runtime"
14
15
"sigs.k8s.io/controller-runtime/pkg/client"
15
16
"sigs.k8s.io/controller-runtime/pkg/controller"
17
+ "sigs.k8s.io/controller-runtime/pkg/event"
16
18
"sigs.k8s.io/controller-runtime/pkg/handler"
17
19
"sigs.k8s.io/controller-runtime/pkg/log"
20
+ "sigs.k8s.io/controller-runtime/pkg/predicate"
18
21
"sigs.k8s.io/controller-runtime/pkg/source"
19
22
20
23
config "github.com/gitpod-io/gitpod/ws-manager/api/config"
@@ -76,5 +79,14 @@ func (r *SubscriberReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Ma
76
79
}
77
80
}()
78
81
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 )
80
92
}
0 commit comments