spring-cloud / spring-cloud-deployer-kubernetes

The Spring Cloud Deployer implementation for Kubernetes
Apache License 2.0
157 stars 97 forks source link

Fabric8 version misalignment #511

Closed TYsewyn closed 1 year ago

TYsewyn commented 1 year ago

This project adds version 5.12.2 of the Fabric8 K8s client while it also pulls in version 5.10.2 for the other Fabric8 libraries via spring-cloud-deployer-parent:2.8.0-RC1 -> spring-cloud-dataflow-build:2.10.0-RC1 -> spring-cloud-dataflow-build-dependencies:2.10.0-RC1 -> spring-cloud-dependencies:2021.0.3 -> spring-cloud-kubernetes-dependencies:2.1.3 -> kubernetes-client-bom:5.10.2.

Added this dependency to a Spring Boot application with version 3.0.0.RC1.

See following stacktrace:

jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'io.fabric8.kubernetes.api.model.Handler io.fabric8.kubernetes.api.model.Lifecycle.getPostStart()'
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1095) ~[spring-webmvc-6.0.0-RC2.jar:6.0.0-RC2]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:973) ~[spring-webmvc-6.0.0-RC2.jar:6.0.0-RC2]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1003) ~[spring-webmvc-6.0.0-RC2.jar:6.0.0-RC2]
        at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:906) ~[spring-webmvc-6.0.0-RC2.jar:6.0.0-RC2]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:709) ~[tomcat-embed-core-10.0.27.jar:5.0.0]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:880) ~[spring-webmvc-6.0.0-RC2.jar:6.0.0-RC2]
        at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:792) ~[tomcat-embed-core-10.0.27.jar:5.0.0]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:223) ~[tomcat-embed-core-10.0.27.jar:10.0.27]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) ~[tomcat-embed-core-10.0.27.jar:10.0.27]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) ~[tomcat-embed-websocket-10.0.27.jar:10.0.27]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) ~[tomcat-embed-core-10.0.27.jar:10.0.27]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) ~[tomcat-embed-core-10.0.27.jar:10.0.27]
        at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88) ~[spring-boot-actuator-3.0.0-RC1.jar:3.0.0-RC1]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.0.0-RC2.jar:6.0.0-RC2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:185) ~[tomcat-embed-core-10.0.27.jar:10.0.27]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:158) ~[tomcat-embed-core-10.0.27.jar:10.0.27]
        at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231) ~[spring-security-web-6.0.0-RC1.jar:6.0.0-RC1]
        at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:394) ~[spring-security-web-6.0.0-RC1.jar:6.0.0-RC1]
        at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:292) ~[spring-security-web-6.0.0-RC1.jar:6.0.0-RC1]
...
Caused by: java.lang.NoSuchMethodError: 'io.fabric8.kubernetes.api.model.Handler io.fabric8.kubernetes.api.model.Lifecycle.getPostStart()'
        at org.springframework.cloud.deployer.spi.kubernetes.AbstractKubernetesDeployer.createPodSpec(AbstractKubernetesDeployer.java:235) ~[spring-cloud-deployer-kubernetes-2.8.0-RC1.jar:2.8.0-RC1]
        at org.springframework.cloud.deployer.spi.kubernetes.KubernetesTaskLauncher.launch(KubernetesTaskLauncher.java:247) ~[spring-cloud-deployer-kubernetes-2.8.0-RC1.jar:2.8.0-RC1]
        at org.springframework.cloud.deployer.spi.kubernetes.KubernetesTaskLauncher.launch(KubernetesTaskLauncher.java:123) ~[spring-cloud-deployer-kubernetes-2.8.0-RC1.jar:2.8.0-RC1]
        at 
...
onobc commented 1 year ago

Thanks for the report @TYsewyn . We will get this adjusted to use the proper single version.

As for the 2.10.0-RC1 artifacts.. you will notice there is no dataflow server or skipper available. The RC1 is not intended for consumption yet and we only put the deployers out there as spring-cloud-task needed an RC version of deployer (for the spring-cloud release train to proceed w/ RC). The estimated date for the actual RC is 11/14.

Sorry for the confusion. In the meantime, we will get the Fabric dependencies adjusted.

Thanks.

onobc commented 1 year ago

NOTES:

onobc commented 1 year ago

Closed via https://github.com/spring-cloud/spring-cloud-deployer-kubernetes/commit/e6f4b23705722e48f789a0ae8adb7bd790f860db