@@ -294,59 +294,60 @@ func (h *eventHandlerImpl) waitForStatusUpdates(ctx context.Context) {
294294 return
295295 }
296296
297+ // TODO(sberman): once we support multiple Gateways, we'll have to get
298+ // the correct Graph for the Deployment contained in the update message
297299 gr := h .cfg .processor .GetLatestGraph ()
298300 if gr == nil {
299301 continue
300302 }
301303
302- deploymentName := item .Deployment
303- gw := gr .Gateways [deploymentName ]
304-
305304 var nginxReloadRes graph.NginxReloadResult
306- switch {
307- case item .Error != nil :
308- h .cfg .logger .Error (item .Error , "Failed to update NGINX configuration" )
309- nginxReloadRes .Error = item .Error
310- case gw != nil :
311- h .cfg .logger .Info ("NGINX configuration was successfully updated" )
312- }
313- gr .LatestReloadResult [deploymentName ] = nginxReloadRes
314-
315- switch item .UpdateType {
316- case status .UpdateAll :
317- h .updateStatuses (ctx , gr , gw )
318- case status .UpdateGateway :
319- gwAddresses , err := getGatewayAddresses (
320- ctx ,
321- h .cfg .k8sClient ,
322- item .GatewayService ,
323- gw ,
324- h .cfg .gatewayClassName ,
325- )
326- if err != nil {
327- msg := "error getting Gateway Service IP address"
328- h .cfg .logger .Error (err , msg )
329- h .cfg .eventRecorder .Eventf (
305+ for _ , gw := range gr .Gateways {
306+ switch {
307+ case item .Error != nil :
308+ h .cfg .logger .Error (item .Error , "Failed to update NGINX configuration" )
309+ nginxReloadRes .Error = item .Error
310+ case gw != nil :
311+ h .cfg .logger .Info ("NGINX configuration was successfully updated" )
312+ }
313+ gw .LatestReloadResult = nginxReloadRes
314+
315+ switch item .UpdateType {
316+ case status .UpdateAll :
317+ h .updateStatuses (ctx , gr , gw )
318+ case status .UpdateGateway :
319+ gwAddresses , err := getGatewayAddresses (
320+ ctx ,
321+ h .cfg .k8sClient ,
330322 item .GatewayService ,
331- v1 .EventTypeWarning ,
332- "GetServiceIPFailed" ,
333- msg + ": %s" ,
334- err .Error (),
323+ gw ,
324+ h .cfg .gatewayClassName ,
335325 )
336- continue
326+ if err != nil {
327+ msg := "error getting Gateway Service IP address"
328+ h .cfg .logger .Error (err , msg )
329+ h .cfg .eventRecorder .Eventf (
330+ item .GatewayService ,
331+ v1 .EventTypeWarning ,
332+ "GetServiceIPFailed" ,
333+ msg + ": %s" ,
334+ err .Error (),
335+ )
336+ continue
337+ }
338+
339+ transitionTime := metav1 .Now ()
340+
341+ gatewayStatuses := status .PrepareGatewayRequests (
342+ gw ,
343+ transitionTime ,
344+ gwAddresses ,
345+ gw .LatestReloadResult ,
346+ )
347+ h .cfg .statusUpdater .UpdateGroup (ctx , groupGateways , gatewayStatuses ... )
348+ default :
349+ panic (fmt .Sprintf ("unknown event type %T" , item .UpdateType ))
337350 }
338-
339- transitionTime := metav1 .Now ()
340-
341- gatewayStatuses := status .PrepareGatewayRequests (
342- gw ,
343- transitionTime ,
344- gwAddresses ,
345- gr .LatestReloadResult [deploymentName ],
346- )
347- h .cfg .statusUpdater .UpdateGroup (ctx , groupGateways , gatewayStatuses ... )
348- default :
349- panic (fmt .Sprintf ("unknown event type %T" , item .UpdateType ))
350351 }
351352 }
352353}
@@ -377,7 +378,7 @@ func (h *eventHandlerImpl) updateStatuses(ctx context.Context, gr *graph.Graph,
377378 gr .L4Routes ,
378379 gr .Routes ,
379380 transitionTime ,
380- gr . LatestReloadResult [ gw .DeploymentName ] ,
381+ gw .LatestReloadResult ,
381382 h .cfg .gatewayCtlrName ,
382383 )
383384
@@ -408,7 +409,7 @@ func (h *eventHandlerImpl) updateStatuses(ctx context.Context, gr *graph.Graph,
408409 gw ,
409410 transitionTime ,
410411 gwAddresses ,
411- gr . LatestReloadResult [ gw .DeploymentName ] ,
412+ gw .LatestReloadResult ,
412413 )
413414 h .cfg .statusUpdater .UpdateGroup (ctx , groupGateways , gwReqs ... )
414415}
0 commit comments