johannes-engler-mw commented on PR #2834:
URL: 
https://github.com/apache/apisix-ingress-controller/pull/2834#issuecomment-5505382734

   Both done, pushed.
   
   **Guard** (`efb5269b`): `ParseRouteParentRefs` now reports whether any 
parentRef was left
   unresolved, and the five reconcilers skip the delete in that case. Only the 
`controllerName`
   mismatch reaches `Provider.Delete`; Gateway/GatewayClass `NotFound` leaves 
the data plane alone.
   
   **syncNotify** (`7580d05d`): `Client.DeleteConfig` returns the `StoreDelta` 
it already computed
   and `apisixProvider.Delete` gates `syncNotify` on `len(delta.Deleted) > 0`. 
Single production
   caller, so no other call sites moved.
   
   One thing worth recording from writing the e2e: **the GatewayClass case is 
narrower than we both
   assumed.** `gatewayclass_controller.go:89` holds 
`apisix.apache.org/gc-protection` for as long as
   any Gateway references the class, requeueing every 5s with a 
`DeletionBlocked` event. So a prune
   or an accidental `kubectl delete` only marks it `Terminating` — it stays 
readable and the lookup
   still resolves. Reaching the empty list needs CRD removal, a restore, or the 
finalizer being
   dropped. `Gateway` `NotFound` has no such protection, and neither does an 
informer cache miss,
   so the guard still earns its place — the outage window is just smaller than 
"any GitOps prune".
   
   Tests: unit coverage for both branches of the walk and for the reconciler 
decision, plus an e2e
   that drops the finalizer to produce the real state (class gone, Gateway 
alive). Verified on kind:
   passes with the guard, 404 two seconds into the assertion window without it.
   
   No `For()` predicate here, per your point that it cannot cover the map-func 
enqueues.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to