@@ -3,16 +3,20 @@ package eventhandlers
3
3
import (
4
4
"context"
5
5
"github.com/go-logr/logr"
6
+ corev1 "k8s.io/api/core/v1"
6
7
networking "k8s.io/api/networking/v1beta1"
7
8
"k8s.io/apimachinery/pkg/api/equality"
9
+ "k8s.io/apimachinery/pkg/types"
8
10
"k8s.io/client-go/tools/record"
9
11
"k8s.io/client-go/util/workqueue"
10
12
"sigs.k8s.io/aws-load-balancer-controller/pkg/ingress"
13
+ "sigs.k8s.io/aws-load-balancer-controller/pkg/k8s"
11
14
"sigs.k8s.io/controller-runtime/pkg/event"
12
15
"sigs.k8s.io/controller-runtime/pkg/handler"
13
16
)
14
17
15
- func NewEnqueueRequestsForIngressEvent (groupLoader ingress.GroupLoader , eventRecorder record.EventRecorder , logger logr.Logger ) * enqueueRequestsForIngressEvent {
18
+ func NewEnqueueRequestsForIngressEvent (groupLoader ingress.GroupLoader , eventRecorder record.EventRecorder ,
19
+ logger logr.Logger ) * enqueueRequestsForIngressEvent {
16
20
return & enqueueRequestsForIngressEvent {
17
21
groupLoader : groupLoader ,
18
22
eventRecorder : eventRecorder ,
@@ -43,7 +47,6 @@ func (h *enqueueRequestsForIngressEvent) Update(e event.UpdateEvent, queue workq
43
47
if equality .Semantic .DeepEqual (ingOld .Annotations , ingNew .Annotations ) &&
44
48
equality .Semantic .DeepEqual (ingOld .Spec , ingNew .Spec ) &&
45
49
equality .Semantic .DeepEqual (ingOld .DeletionTimestamp .IsZero (), ingNew .DeletionTimestamp .IsZero ()) {
46
- h .logger .V (1 ).Info ("ignoring unchanged Ingress Update event" , "event" , e )
47
50
return
48
51
}
49
52
@@ -62,22 +65,29 @@ func (h *enqueueRequestsForIngressEvent) Generic(e event.GenericEvent, queue wor
62
65
}
63
66
64
67
func (h * enqueueRequestsForIngressEvent ) enqueueIfBelongsToGroup (queue workqueue.RateLimitingInterface , ingList ... * networking.Ingress ) {
65
- groupIDs := make (map [ingress.GroupID ]struct {})
68
+ sourceINGKeyByGroupID := make (map [ingress.GroupID ]types.NamespacedName )
69
+
66
70
for _ , ing := range ingList {
67
71
groupID , err := h .groupLoader .FindGroupID (context .Background (), ing )
68
72
if err != nil {
69
- // TODO: define eventType, reason enums.
70
- h .eventRecorder .Eventf (ing , "Warning" , "malformed Ingress" , "failed to find group for Ingress due to %w" , err )
73
+ h .eventRecorder .Eventf (ing , corev1 .EventTypeWarning , k8s .IngressEventReasonFailedToLoadGroupID , "failed to load groupID for Ingress due to %w" , err )
71
74
continue
72
75
}
76
+
77
+ ingKey := k8s .NamespacedName (ing )
73
78
if groupID == nil {
74
- h .logger .V (1 ).Info ("ignoring Ingress " , "Ingress " , ing )
79
+ h .logger .V (1 ).Info ("ignoring ingress " , "ingress " , ingKey )
75
80
continue
76
81
}
77
- groupIDs [* groupID ] = struct {}{}
82
+
83
+ sourceINGKeyByGroupID [* groupID ] = ingKey
78
84
}
79
85
80
- for groupID := range groupIDs {
86
+ for groupID , sourceINGKey := range sourceINGKeyByGroupID {
87
+ h .logger .V (1 ).Info ("enqueue ingressGroup for ingress event" ,
88
+ "ingress" , sourceINGKey ,
89
+ "ingressGroup" , groupID ,
90
+ )
81
91
queue .Add (ingress .EncodeGroupIDToReconcileRequest (groupID ))
82
92
}
83
93
}
0 commit comments