@@ -97,6 +97,7 @@ func (r *IstioExtensionReconciler) Reconcile(ctx context.Context, _ []controller
9797 }
9898
9999 modifiedGateways := make ([]string , 0 , len (gateways ))
100+ var reconcileErr error
100101
101102 for _ , gateway := range gateways {
102103 gatewayKey := k8stypes.NamespacedName {Name : gateway .GetName (), Namespace : gateway .GetNamespace ()}
@@ -124,19 +125,21 @@ func (r *IstioExtensionReconciler) Reconcile(ctx context.Context, _ []controller
124125 desiredEnvoyFilterUnstructured , err := controller .Destruct (desiredEnvoyFilter )
125126 if err != nil {
126127 logger .Error (err , "failed to destruct envoyfilter object" , "gateway" , gatewayKey .String (), "envoyfilter" , desiredEnvoyFilter )
128+ reconcileErr = errors .Join (reconcileErr , fmt .Errorf ("failed to destruct envoyfilter %s/%s: %w" , gateway .GetNamespace (), desiredEnvoyFilter .GetName (), err ))
127129 continue
128130 }
129131 if _ , err = resource .Create (ctx , desiredEnvoyFilterUnstructured , metav1.CreateOptions {}); err != nil {
130132 logger .Error (err , "failed to create envoyfilter object" , "gateway" , gatewayKey .String (), "envoyfilter" , desiredEnvoyFilterUnstructured .Object )
131- // TODO: handle error
133+ reconcileErr = errors . Join ( reconcileErr , fmt . Errorf ( "failed to create envoyfilter %s/%s: %w" , gateway . GetNamespace (), desiredEnvoyFilter . GetName (), err ))
132134 }
133135 continue
134136 }
135137
136138 // Clean up old WasmPlugin for this specific gateway - temporary to be removed
137139 wasmPluginName := wasm .ExtensionName (gateway .GetName ())
138140 if err := r .client .Resource (kuadrantistio .WasmPluginsResource ).Namespace (gateway .GetNamespace ()).Delete (ctx , wasmPluginName , metav1.DeleteOptions {}); err != nil && ! apierrors .IsNotFound (err ) {
139- logger .Error (err , "failed to delete old wasmplugin" , "gateway" , gatewayKey .String (), "wasmplugin" , wasmPluginName )
141+ logger .Error (err , "failed to delete wasmplugin" , "gateway" , gatewayKey .String (), "wasmplugin" , wasmPluginName )
142+ reconcileErr = errors .Join (reconcileErr , fmt .Errorf ("failed to delete wasmplugin %s/%s: %w" , gateway .GetNamespace (), wasmPluginName , err ))
140143 }
141144
142145 existingEnvoyFilter := existingEnvoyFilterObj .(* controller.RuntimeObject ).Object .(* istioclientgonetworkingv1alpha3.EnvoyFilter )
@@ -145,7 +148,7 @@ func (r *IstioExtensionReconciler) Reconcile(ctx context.Context, _ []controller
145148 if utils .IsObjectTaggedToDelete (desiredEnvoyFilter ) && ! utils .IsObjectTaggedToDelete (existingEnvoyFilter ) {
146149 if err := resource .Delete (ctx , existingEnvoyFilter .GetName (), metav1.DeleteOptions {}); err != nil {
147150 logger .Error (err , "failed to delete envoyfilter object" , "gateway" , gatewayKey .String (), "envoyfilter" , fmt .Sprintf ("%s/%s" , existingEnvoyFilter .GetNamespace (), existingEnvoyFilter .GetName ()))
148- // TODO: handle error
151+ reconcileErr = errors . Join ( reconcileErr , fmt . Errorf ( "failed to delete envoyfilter %s/%s: %w" , existingEnvoyFilter . GetNamespace (), existingEnvoyFilter . GetName (), err ))
149152 }
150153 continue
151154 }
@@ -167,13 +170,13 @@ func (r *IstioExtensionReconciler) Reconcile(ctx context.Context, _ []controller
167170 }
168171 if _ , err = resource .Update (ctx , existingEnvoyFilterUnstructured , metav1.UpdateOptions {}); err != nil {
169172 logger .Error (err , "failed to update envoyfilter object" , "gateway" , gatewayKey .String (), "envoyfilter" , existingEnvoyFilterUnstructured .Object )
170- // TODO: handle error
173+ reconcileErr = errors . Join ( reconcileErr , fmt . Errorf ( "failed to update envoyfilter %s/%s: %w" , existingEnvoyFilter . GetNamespace (), existingEnvoyFilter . GetName (), err ))
171174 }
172175 }
173176
174177 state .Store (StateIstioExtensionsModified , modifiedGateways )
175178
176- return nil
179+ return reconcileErr
177180}
178181
179182func (r * IstioExtensionReconciler ) reconcileUpstreamClusters (ctx context.Context , topology * machinery.Topology , gateways []* machinery.Gateway ) {
0 commit comments