@@ -59,9 +59,37 @@ func (r *ConsumerReconciler) SetupWithManager(mgr ctrl.Manager) error {
5959 },
6060 ),
6161 ).
62+ Watches (& corev1.Secret {},
63+ handler .EnqueueRequestsFromMapFunc (r .listConsumersForSecret ),
64+ ).
6265 Complete (r )
6366}
6467
68+ func (r * ConsumerReconciler ) listConsumersForSecret (ctx context.Context , obj client.Object ) []reconcile.Request {
69+ secret , ok := obj .(* corev1.Secret )
70+ if ! ok {
71+ r .Log .Error (nil , "failed to convert to Secret" , "object" , obj )
72+ return nil
73+ }
74+ consumerList := & v1alpha1.ConsumerList {}
75+ if err := r .List (ctx , consumerList , client.MatchingFields {
76+ indexer .SecretIndexRef : indexer .GenIndexKey (secret .GetNamespace (), secret .GetName ()),
77+ }); err != nil {
78+ r .Log .Error (err , "failed to list consumers" )
79+ return nil
80+ }
81+ requests := make ([]reconcile.Request , 0 , len (consumerList .Items ))
82+ for _ , consumer := range consumerList .Items {
83+ requests = append (requests , reconcile.Request {
84+ NamespacedName : client.ObjectKey {
85+ Name : consumer .Name ,
86+ Namespace : consumer .Namespace ,
87+ },
88+ })
89+ }
90+ return requests
91+ }
92+
6593func (r * ConsumerReconciler ) listConsumersForGateway (ctx context.Context , obj client.Object ) []reconcile.Request {
6694 gateway , ok := obj .(* gatewayv1.Gateway )
6795 if ! ok {
@@ -70,7 +98,7 @@ func (r *ConsumerReconciler) listConsumersForGateway(ctx context.Context, obj cl
7098 }
7199 consumerList := & v1alpha1.ConsumerList {}
72100 if err := r .List (ctx , consumerList , client.MatchingFields {
73- indexer .ConsumerGatewayRef : indexer .GenIndexKey (gateway .Name , gateway .GetNamespace ()),
101+ indexer .ConsumerGatewayRef : indexer .GenIndexKey (gateway .GetNamespace () , gateway .GetName ()),
74102 }); err != nil {
75103 r .Log .Error (err , "failed to list consumers" )
76104 return nil
0 commit comments