in pkg/controllers/gateway_controller.go [186:229]
func (r *gatewayReconciler) reconcileUpsert(ctx context.Context, gw *gwv1.Gateway) error {
if err := r.finalizerManager.AddFinalizers(ctx, gw, gatewayFinalizer); err != nil {
r.eventRecorder.Event(gw, corev1.EventTypeWarning,
k8s.GatewayEventReasonFailedAddFinalizer, fmt.Sprintf("failed add finalizer: %s", err))
return err
}
err := UpdateGWListenerStatus(ctx, r.client, gw)
if err != nil {
err2 := r.updateGatewayAcceptStatus(ctx, gw, false)
if err2 != nil {
return errors.Wrap(err2, err.Error())
}
}
err = r.updateGatewayAcceptStatus(ctx, gw, true)
if err != nil {
return err
}
snInfo, err := r.cloud.Lattice().FindServiceNetwork(ctx, gw.Name)
if err != nil {
if services.IsNotFoundError(err) {
if err = r.updateGatewayProgrammedStatus(ctx, gw, gwv1.GatewayReasonPending, "VPC Lattice Service Network not found"); err != nil {
return lattice_runtime.NewRetryError()
}
return nil
}
if errors.Is(err, services.ErrNameConflict) {
if err = r.updateGatewayProgrammedStatus(ctx, gw, gwv1.GatewayReasonInvalid, "Found multiple VPC Lattice Service Networks matching Gateway name. Either ensure only one Service Network has a matching name, or use the Service Network's id as the Gateway name."); err != nil {
return lattice_runtime.NewRetryError()
}
return nil
}
return err
}
err = r.updateGatewayProgrammedStatus(ctx, gw, gwv1.GatewayReasonProgrammed, fmt.Sprintf("aws-service-network-arn: %s", *snInfo.SvcNetwork.Arn))
if err != nil {
return err
}
return nil
}