@@ -43,19 +43,48 @@ func (m *Manager) add(mgr manager.Manager, r reconcile.Reconciler) error {
43
43
return object .GetName () == m .webhookName
44
44
}
45
45
46
+ isCASecret := func (object client.Object ) bool {
47
+ return object .GetName () == m .caSecretKey ().Name
48
+ }
49
+
50
+ isServiceSecret := func (object client.Object ) bool {
51
+ webhookConf , err := m .readyWebhookConfiguration ()
52
+ if err != nil {
53
+ m .log .Info (fmt .Sprintf ("failed checking if it's a generated secret: failed getting webhook configuration: %v" , err ))
54
+ return false
55
+ }
56
+
57
+ services , err := m .getServicesFromConfiguration (webhookConf )
58
+ if err != nil {
59
+ m .log .Info (fmt .Sprintf ("failed checking if it's a generated secret: failed getting webhook configuration services: %v" , err ))
60
+ return false
61
+ }
62
+
63
+ for service , _ := range services {
64
+ if object .GetName () == service .Name {
65
+ return true
66
+ }
67
+ }
68
+ return false
69
+ }
70
+
71
+ isGeneratedSecret := func (object client.Object ) bool {
72
+ return isCASecret (object ) || isServiceSecret (object )
73
+ }
74
+
46
75
// Watch only events for selected m.webhookName
47
76
onEventForThisWebhook := predicate.Funcs {
48
77
CreateFunc : func (createEvent event.CreateEvent ) bool {
49
- return isWebhookConfig (createEvent .Object ) || isAnnotatedResource (createEvent .Object )
78
+ return isWebhookConfig (createEvent .Object ) || ( isAnnotatedResource (createEvent .Object ) && isGeneratedSecret ( createEvent . Object ) )
50
79
},
51
80
DeleteFunc : func (deleteEvent event.DeleteEvent ) bool {
52
- return isAnnotatedResource (deleteEvent .Object )
81
+ return isAnnotatedResource (deleteEvent .Object ) && isGeneratedSecret ( deleteEvent . Object )
53
82
},
54
83
UpdateFunc : func (updateEvent event.UpdateEvent ) bool {
55
- return isWebhookConfig (updateEvent .ObjectOld ) || isAnnotatedResource (updateEvent .ObjectOld )
84
+ return isWebhookConfig (updateEvent .ObjectOld ) || ( isAnnotatedResource (updateEvent .ObjectOld ) && isGeneratedSecret ( updateEvent . ObjectOld ) )
56
85
},
57
86
GenericFunc : func (genericEvent event.GenericEvent ) bool {
58
- return isWebhookConfig (genericEvent .Object ) || isAnnotatedResource (genericEvent .Object )
87
+ return isWebhookConfig (genericEvent .Object ) || ( isAnnotatedResource (genericEvent .Object ) && isGeneratedSecret ( genericEvent . Object ) )
59
88
},
60
89
}
61
90
0 commit comments