@@ -17,32 +17,40 @@ limitations under the License.
17
17
package controllers
18
18
19
19
import (
20
+ "strings"
21
+
22
+ "github.com/go-logr/logr"
20
23
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21
- clusterv1 "sigs. k8s.io/cluster-api/api/v1alpha3 "
24
+ " k8s.io/apimachinery/pkg/runtime "
22
25
clusterutil "sigs.k8s.io/cluster-api/util"
23
26
"sigs.k8s.io/controller-runtime/pkg/event"
24
27
"sigs.k8s.io/controller-runtime/pkg/predicate"
25
28
)
26
29
27
- // TODO: Move to Cluster API
28
- var pausePredicates = predicate.Funcs {
29
- UpdateFunc : func (e event.UpdateEvent ) bool {
30
- return ! isPaused (nil , e .MetaNew )
31
- },
32
- CreateFunc : func (e event.CreateEvent ) bool {
33
- return ! isPaused (nil , e .Meta )
34
- },
35
- DeleteFunc : func (e event.DeleteEvent ) bool {
36
- return ! isPaused (nil , e .Meta )
37
- },
30
+ func pausedPredicates (logger logr.Logger ) predicate.Funcs {
31
+ return predicate.Funcs {
32
+ UpdateFunc : func (e event.UpdateEvent ) bool {
33
+ return processIfUnpaused (logger .WithValues ("predicate" , "updateEvent" ), e .ObjectNew , e .MetaNew )
34
+ },
35
+ CreateFunc : func (e event.CreateEvent ) bool {
36
+ return processIfUnpaused (logger .WithValues ("predicate" , "createEvent" ), e .Object , e .Meta )
37
+ },
38
+ DeleteFunc : func (e event.DeleteEvent ) bool {
39
+ return processIfUnpaused (logger .WithValues ("predicate" , "deleteEvent" ), e .Object , e .Meta )
40
+ },
41
+ GenericFunc : func (e event.GenericEvent ) bool {
42
+ return processIfUnpaused (logger .WithValues ("predicate" , "genericEvent" ), e .Object , e .Meta )
43
+ },
44
+ }
38
45
}
39
46
40
- // TODO: Fix up Cluster API's clusterutil.IsPaused function
41
- func isPaused ( cluster * clusterv1. Cluster , v metav1. Object ) bool {
42
- if cluster == nil {
43
- cluster = & clusterv1. Cluster {
44
- Spec : clusterv1. ClusterSpec {},
45
- }
47
+ func processIfUnpaused ( logger logr. Logger , obj runtime. Object , meta metav1. Object ) bool {
48
+ kind := strings . ToLower ( obj . GetObjectKind (). GroupVersionKind (). Kind )
49
+ log := logger . WithValues ( "namespace" , meta . GetNamespace (), kind , meta . GetName ())
50
+ if clusterutil . HasPausedAnnotation ( meta ) {
51
+ log . V ( 4 ). Info ( "Resource is paused, will not attempt to map resource" )
52
+ return false
46
53
}
47
- return clusterutil .IsPaused (cluster , v )
54
+ log .V (4 ).Info ("Resource is not paused, will attempt to map resource" )
55
+ return true
48
56
}
0 commit comments