@@ -93,6 +93,7 @@ type groupReconciler struct {
9393stackMarshaller deploy.StackMarshaller
9494stackDeployer deploy.StackDeployer
9595backendSGProvider networkingpkg.BackendSGProvider
96+ secretsManager k8s.SecretsManager
9697
9798groupLoader ingress.GroupLoader
9899groupFinalizerManager ingress.FinalizerManager
@@ -160,7 +161,7 @@ func (r *groupReconciler) reconcile(ctx context.Context, req ctrl.Request) error
160161}
161162
162163func (r * groupReconciler ) buildAndDeployModel (ctx context.Context , ingGroup ingress.Group ) (core.Stack , * elbv2model.LoadBalancer , error ) {
163- stack , lb , err := r .modelBuilder .Build (ctx , ingGroup )
164+ stack , lb , secrets , err := r .modelBuilder .Build (ctx , ingGroup )
164165if err != nil {
165166r .recordIngressGroupEvent (ctx , ingGroup , corev1 .EventTypeWarning , k8s .IngressEventReasonFailedBuildModel , fmt .Sprintf ("Failed build model due to %v" , err ))
166167return nil , nil , err
@@ -177,6 +178,7 @@ func (r *groupReconciler) buildAndDeployModel(ctx context.Context, ingGroup ingr
177178return nil , nil , err
178179}
179180r .logger .Info ("successfully deployed model" , "ingressGroup" , ingGroup .ID )
181+ r .secretsManager .MonitorSecrets (ingGroup .ID .String (), secrets )
180182return stack , lb , err
181183}
182184
@@ -229,7 +231,7 @@ func (r *groupReconciler) SetupWithManager(ctx context.Context, mgr ctrl.Manager
229231if err := r .setupIndexes (ctx , mgr .GetFieldIndexer (), ingressClassResourceAvailable ); err != nil {
230232return err
231233}
232- if err := r .setupWatches (ctx , c , ingressClassResourceAvailable ); err != nil {
234+ if err := r .setupWatches (ctx , c , ingressClassResourceAvailable , clientSet ); err != nil {
233235return err
234236}
235237return nil
@@ -276,9 +278,10 @@ func (r *groupReconciler) setupIndexes(ctx context.Context, fieldIndexer client.
276278return nil
277279}
278280
279- func (r * groupReconciler ) setupWatches (_ context.Context , c controller.Controller , ingressClassResourceAvailable bool ) error {
281+ func (r * groupReconciler ) setupWatches (_ context.Context , c controller.Controller , ingressClassResourceAvailable bool , clientSet * kubernetes. Clientset ) error {
280282ingEventChan := make (chan event.GenericEvent )
281283svcEventChan := make (chan event.GenericEvent )
284+ secretEventsChan := make (chan event.GenericEvent )
282285ingEventHandler := eventhandlers .NewEnqueueRequestsForIngressEvent (r .groupLoader , r .eventRecorder ,
283286r .logger .WithName ("eventHandlers" ).WithName ("ingress" ))
284287svcEventHandler := eventhandlers .NewEnqueueRequestsForServiceEvent (ingEventChan , r .k8sClient , r .eventRecorder ,
@@ -297,10 +300,9 @@ func (r *groupReconciler) setupWatches(_ context.Context, c controller.Controlle
297300if err := c .Watch (& source.Kind {Type : & corev1.Service {}}, svcEventHandler ); err != nil {
298301return err
299302}
300- if err := c .Watch (& source.Kind { Type : & corev1. Secret {} }, secretEventHandler ); err != nil {
303+ if err := c .Watch (& source.Channel { Source : secretEventsChan }, secretEventHandler ); err != nil {
301304return err
302305}
303-
304306if ingressClassResourceAvailable {
305307ingClassEventChan := make (chan event.GenericEvent )
306308ingClassParamsEventHandler := eventhandlers .NewEnqueueRequestsForIngressClassParamsEvent (ingClassEventChan , r .k8sClient , r .eventRecorder ,
@@ -317,6 +319,7 @@ func (r *groupReconciler) setupWatches(_ context.Context, c controller.Controlle
317319return err
318320}
319321}
322+ r .secretsManager = k8s .NewSecretsManager (clientSet , secretEventsChan , ctrl .Log .WithName ("secrets-manager" ))
320323return nil
321324}
322325
0 commit comments