Discovery can get stuck on a stale endpoint list until a restart. If the Watch call itself fails with 410 Gone or ResourceExpired, the Kubernetes provider never re-lists. watchOnce wraps the error, so the 410 check misses it, and the provider keeps retrying the watch with the same expired resource version under backoff.
With the watch cache the expiry usually comes as an event inside the stream, and that path works. client-go's reflector still handles the error on the Watch call too (isExpiredError), so the case is real. The 410 handling came with a09adab.
Fixed in #177.
Discovery can get stuck on a stale endpoint list until a restart. If the Watch call itself fails with 410 Gone or ResourceExpired, the Kubernetes provider never re-lists.
watchOncewraps the error, so the 410 check misses it, and the provider keeps retrying the watch with the same expired resource version under backoff.With the watch cache the expiry usually comes as an event inside the stream, and that path works. client-go's reflector still handles the error on the Watch call too (
isExpiredError), so the case is real. The 410 handling came with a09adab.Fixed in #177.