Closed pjgg closed 2 years ago
/cc @Sgitario, @aureamunoz, @cescoffier, @geoand, @iocanel
There is a pretty prominent warning message:
[WARNING] [io.quarkus.stork.deployment.SmallRyeStorkProcessor] The application is using the Stork Kubernetes Service Discovery provider but does not depend on the `quarkus-kubernetes-client` extension. It is highly recommended to use the `io.quarkus:quarkus-kubernetes-client` extension with the Kubernetes service discovery
So first of all you'll need to add:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-kubernetes-client</artifactId>
</dependency>
to the application's dependencies.
Now, even with that done, I get the following:
Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery is registered for linking at image build time by command line
at parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery.lambda$fetchNewServiceInstances$7(KubernetesServiceDiscovery.java:88)
This seems to me the be caused by some mismatch between Kubernetes Client versions and I'll leave it to @Sgitario @aureamunoz and @manusa to figure out what's going on.
about kube client + Stork Kubernetes Service Discovery: highly recommended
or mandatory
? @aureamunoz and @manusa
btw there is revert of kube client going on - https://github.com/quarkusio/quarkus/pull/27875 but still, we will move to 6.1 at some time
yes, it's a client version mismatch. With the storm happening around that subject at the moment, let's wait until we know which version will be used and adapt stork kubernetes discovery (@aureamunoz).
Caused by: org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.fabric8.kubernetes.client.dsl.FilterWatchListMultiDeletable. This error is reported at image build time because class io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery is registered for linking at image build time by command line
at parsing io.smallrye.stork.servicediscovery.kubernetes.KubernetesServiceDiscovery.lambda$fetchNewServiceInstances$7(KubernetesServiceDiscovery.java:88)
This error comes from Stork using k8s client 5.x version. The PR is in standby.
quarkus-kubernetes-client
is needed when compiling natively because is this extension who does all the job
@aureamunoz alright, in that case, shouldn't it be explicitly said that if you don't have quarkus-kuberentes-client
extension, it won't work in native? I didn't find it in the docs and recommendation does not state what will happen. I thought all the extensions are native ready (unless stated otherwise).
@michalvavrik this one is an exception as it is only required when using the kubernetes discovery (which is not an extension, but a plain jar).
Shouldn't be the dependency on kube client defined directly for Stork Kubernetes Service Discovery? Native mode experience should be on par with jvm mode experience (ideally).
Shouldn't be the dependency on kube client defined directly for Stork Kubernetes Service Discovery? Native mode experience should be on par with jvm mode experience (ideally).
This way Stork should depend on Quarkus and and this is not desirable
Yes, it would create a dependency cycle. We know this is now ideal.
Is this still a problem now that Stork 1.2
has been merged into main
?
I've just checked and it works for me locally. WDYT @pjgg ?
Yes, looks good to me. I could not reproduce against Stork 1.2.0
Thanks folks, I'll close this
Describe the bug
Quarkus Version: Upstream Extensions:
stork-service-discovery-consul
andstork-service-discovery-kubernetes
Stork version: 1.1.2 (same as Quarkus BOM)Given a Quarkus app that is using Stock as a service discovery / load balancer, when I build a native application with
quay.io/quarkus/ubi-quarkus-native-image:22.2-java17
docker image I am getting the following build error:Expected behavior
Native image should not throw any error on build time
Actual behavior
Unexpected exception when a native image is built.
How to Reproduce?
git clone git@github.com:quarkus-qe/quarkus-test-suite.git
cd quarkus-test-suite
mvn clean verify -Dall-modules -pl service-discovery/stork -Dnative -Dquarkus.native.builder-image=quay.io/quarkus/ubi-quarkus-native-image:22.2-java17
Just in case you want to have a look, the project is located under this module:
service-discovery/stork
. Please be sure that the following configuration in order to disable native compilation is not present in this modulepom.xml
Output of
uname -a
orver
No response
Output of
java -version
openjdk version "11.0.16" 2022-07-19 OpenJDK Runtime Environment Temurin-11.0.16+8 (build 11.0.16+8) OpenJDK 64-Bit Server VM Temurin-11.0.16+8 (build 11.0.16+8, mixed mode)
GraalVM version (if different from Java)
quay.io/quarkus/ubi-quarkus-native-image:22.2-java17
Quarkus version or git rev
No response
Build tool (ie. output of
mvnw --version
orgradlew --version
)No response
Additional information
No response