spring-cloud-kubernetes
spring-cloud-kubernetes copied to clipboard
Spring Cloud Kubernetes - Use Informers instead of Watchers
Is your feature request related to a problem? Please describe.
On Spring Boot 3.2.2 with Spring Cloud 2023.0.0 the following warning appears in the logs when Kubernetes leader election is in use:
io.fabric8.kubernetes.client.WatcherException: too old resource version: 18679401 (18803484) at io.fabric8.kubernetes.client.dsl.internal.AbstractWatchManager.onStatus(AbstractWatchManager.java:273) ~[kubernetes-client-5.10.2.jar!/:na] at io.fabric8.kubernetes.client.dsl.internal.AbstractWatchManager.onMessage(AbstractWatchManager.java:257) ~[kubernetes-client-5.10.2.jar!/:na] at io.fabric8.kubernetes.client.dsl.internal.WatcherWebSocketListener.onMessage(WatcherWebSocketListener.java:93) ~[kubernetes-client-5.10.2.jar!/:na] at okhttp3.internal.ws.RealWebSocket.onReadMessage(RealWebSocket.kt:333) ~[okhttp-4.9.3.jar!/:na] at okhttp3.internal.ws.WebSocketReader.readMessageFrame(WebSocketReader.kt:245) ~[okhttp-4.9.3.jar!/:na] at okhttp3.internal.ws.WebSocketReader.processNextFrame(WebSocketReader.kt:106) ~[okhttp-4.9.3.jar!/:na] at okhttp3.internal.ws.RealWebSocket.loopReader(RealWebSocket.kt:293) ~[okhttp-4.9.3.jar!/:na] at okhttp3.internal.ws.RealWebSocket$connect$1.onResponse(RealWebSocket.kt:195) ~[okhttp-4.9.3.jar!/:na] at okhttp3.internal.connection.RealCall$AsyncCall.run(RealCall.kt:519) ~[okhttp-4.9.3.jar!/:na] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) ~[na:na] at java.base/java.lang.Thread.run(Thread.java:840) ~[na:na] Caused by: io.fabric8.kubernetes.client.KubernetesClientException: too old resource version: 18679401 (18803484) ... 12 common frames omitted
Describe the solution you'd like According to this, Spring Cloud should migrate from using raw Watchers to Informers.
Additional context See this for further details.