-
Notifications
You must be signed in to change notification settings - Fork 2.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add XDS support to gRPC extension #29251
Conversation
@vietj here is the PR we discussed this morning. |
This comment has been minimized.
This comment has been minimized.
As mentioned, I would need some help on the GH_Actions ... |
I'll try to have a look at it later today! |
One issue I see is that the istio integration tests run as part of pull request validation build, which should not be the case. |
WIth a closer look, it seems that the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code looks ok, but the CI issue is annoying.
For now we can disable the tests but it would be very good to have a solution.
extensions/grpc/runtime/src/main/java/io/quarkus/grpc/runtime/GrpcServerRecorder.java
Show resolved
Hide resolved
extensions/grpc/runtime/src/main/java/io/quarkus/grpc/runtime/GrpcServerRecorder.java
Outdated
Show resolved
Hide resolved
BTW, we need a bit of doc about this feature. |
The resources on xDS are pretty limited ... |
I would add a link in grpc.adoc and create a new grpc-xds.adoc. |
@alesj I had the chance to look at the tests again. I think that missing piece is the the context of So, I think that we just need to exclude the particular test from the offline tests. Simplest way is to just disable them. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As for CI, I can help but there are multiple problems that need fixing and I'm not always sure what is the intent.
Native tests
All the native tests for gRPC are now failing with issues like:
Caused by: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Discovered unresolved type during parsing: io.grpc.netty.shaded.io.netty.util.internal.logging.Log4J2Logger. This error is reported at image build time because class io.grpc.netty.shaded.io.netty.util.internal.logging.Log4J2LoggerFactory is registered for linking at image build time by command line
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.reportUnresolvedElement(SharedGraphBuilderPhase.java:333)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedType(SharedGraphBuilderPhase.java:288)
at org.graalvm.nativeimage.builder/com.oracle.svm.hosted.phases.SharedGraphBuilderPhase$SharedBytecodeParser.handleUnresolvedNewInstance(SharedGraphBuilderPhase.java:204)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4501)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.genNewInstance(BytecodeParser.java:4494)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.processBytecode(BytecodeParser.java:5291)
at jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.iterateBytecodesForBlock(BytecodeParser.java:3385)
... 37 more
Istio IT
I see you added a workflow fine to run it on a schedule but I also see the IT is running in the regular JVM run.
Is it supposed to work in the regular JVM run?
What exactly are you trying to achieve here?
FWIW, the existing Kubernetes tests are built to not fail if pointing to a non-available Kubernetes server. @iocanel might be able to help you on this.
Another option would be to disable the test for a normal run and only run it nightly.
Update: I see @iocanel already pushed some information.
@alesj any update about the documentation? |
@iocanel how do I do that? @gsmet feedback ...
Can this be fixed with some GraalVM "substitute" code ...?
Probably not, as it needs Istio, which it can only get via K8s ...
Sure.
@cescoffier wip ... hoping to finish them asap |
This comment has been minimized.
This comment has been minimized.
I would do that using maven profiles along with some property to complely skip these tests when offline. |
AFAICS, it's not something preexisting that is failing, it's the new stuff:
I'll have a look at what you're doing exactly later today or tomorrow. |
@alesj I pushed two small commits to deal with the CI issues when offline and adjust the issue number to report the status to. I think it should solve that particular CI issue. |
OK, tnx!
…On Tue, 13 Dec 2022 at 16:21, Guillaume Smet ***@***.***> wrote:
@alesj <https://github.com/alesj> I pushed two small commits to deal with
the CI issues when offline. I think it should solve that particular issue.
—
Reply to this email directly, view it on GitHub
<#29251 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AACRA6E6TSVQSZT24ZOFRO3WNCIABANCNFSM6AAAAAAR72EBYA>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@gsmet what do you mean by workflow here? @gsmet I also accidentally overrode your 2 commits, Any idea what did I miss? @cescoffier ^^ |
Ah, just saw that I missed deleting this line
|
This comment has been minimized.
This comment has been minimized.
882169d
to
ca1fcd3
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@alesj can you rebase your PR on the latest |
Add Istio support for XDS gRPC tests Split xDS support into diff module - due to grpc-netty-shaded native issue Port gsmet commits.
Failing Jobs - Building e27dc93
Full information is available in the Build summary check run. Failures⚙️ Devtools Tests - JDK 11 #- Failing: integration-tests/devtools
📦 integration-tests/devtools✖
✖
⚙️ Devtools Tests - JDK 17 #- Failing: integration-tests/devtools
📦 integration-tests/devtools✖
✖
|
This adds an initial XDS (proxyless) gRPC support (#28298 )
For the server side, one must explicitly enable XDS usage:
quarkus.grpc.server.xds.enabled=true
For the client side, you either explicitly enable it -
quarkus.grpc.clients.stub.xds.enabled=true
, or you set a name resolver toxds
(see example below).New Vert.x gRPC is missing XDS support atm.
A new K8s based test(s) are added, which install Istio (a requirement) into K8s before running the tests.
(Istio == XDS Management server)
Some help will probably be needed for this to properly run on GH_Actions @iocanel @gsmet ^^
An example of XDS gRPC configuration: