-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Experimental gRPC transport plugin #16534
base: main
Are you sure you want to change the base?
Conversation
❌ Gradle check result for b5fddb1: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 24a40ad: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 3bcd5bb: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for b2a1078: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for ee85066: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for eda1c04: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
eda1c04
to
5038cf3
Compare
❌ Gradle check result for 5038cf3: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 1e5d354: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 00d4eb1: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 6151622: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for b8d88d2: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for b404cee: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 41e70eb: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for e985043: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for bbabecd: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 853b206: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for da16c66: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
da16c66
to
1937f5f
Compare
759c434
to
9c24e1d
Compare
❌ Gradle check result for 9c24e1d: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 9c24e1d: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
❌ Gradle check result for 9c24e1d: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
Signed-off-by: Finn Carroll <[email protected]>
The transport-grpc plugin starts a gRPC server which is injected into the Node as a lifecycle component and gated behind an experimental feature flag. This server runs on a configurable port range in parallel to the transport-http server which still hosts the familiar REST API. Only two initial services are registered to the server, 'list' and 'Health/Check'. Add initial housekeeping for the new plugin and its dependencies: - Add boilerplate netty transport security policy to plugin - Populate plugins/transport-grpc/licenses with new gRPC dependency licenses & hashes - Initial server start/stop unit test - Initial integ test case example - Guava removed as a forbidden dependecy - Bump project wide gRPC version 1.68.0 -> 1.68.2 - Update discovery-gce/repository-gcs grpc sha1 to accommodate version bump - Add socket permissions for gRPC server in Security.java Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Auxiliary transports are optional lifecycle components provided by network plugins which run in parallel to the http server/native transport. They are distinct from the existing NetworkPlugin interfaces of 'getTransports' and 'getHttpTransports' as auxiliary transports are optional. Multiple auxiliary transports can be provided by installed plugins but only one may be selected with setting 'aux_transport.type'. Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
The motivation of this change is to allow for multiple configured auxiliary transports. As such newAuxTransports() now returns a list of enabled transports and each AuxTransport implements it's own 'aux.transport.type' and 'aux.transport.<type>.ports' setting. Since Security.java initializes previous to Node.java during bootstrap socket binding permissions are granted based on 'aux.transport.<type>.ports' for each enabled 'aux.transport.type', falling back to a default if no ports are specified. Signed-off-by: Finn Carroll <[email protected]>
getAuxServerTransportSupplierList -> getAuxServerTransportList aux.transport.type -> aux.transport.types Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
Signed-off-by: Finn Carroll <[email protected]>
9c24e1d
to
5887ad9
Compare
❌ Gradle check result for 5887ad9: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/GrpcModulePlugin.java
Outdated
Show resolved
Hide resolved
plugins/transport-grpc/src/main/java/org/opensearch/transport/grpc/GrpcModulePlugin.java
Outdated
Show resolved
Hide resolved
Signed-off-by: Finn Carroll <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #16534 +/- ##
============================================
+ Coverage 72.20% 72.28% +0.08%
- Complexity 65191 65303 +112
============================================
Files 5297 5299 +2
Lines 303328 303448 +120
Branches 43913 43920 +7
============================================
+ Hits 219026 219357 +331
+ Misses 66331 66099 -232
- Partials 17971 17992 +21 ☔ View full report in Codecov by Sentry. |
Description
Auxiliary transports
Provides a framework for implementing pluggable auxiliary transports through NetworkPlugin.
Auxiliary transports run in parallel to existing http & native transport servers.
None or many Auxiliary transports may be provided and can be configured with the following settings:
aux.transport.types
enables all listed transports which are installed.aux.transport.<type>.ports
configures the port range for the specified transport.In the absence of
aux.transport.<type>.ports
the auxiliary transport falls back to a default port range (9400-9500).If
aux.transport.types
is set and the corresponding transport plugin is not installed an exception is thrown.transport-grpc plugin
A gRPC server plugin is implemented as an initial auxiliary transport.
This gRPC server includes only default
list
andHealth/Check
services.To enable the gRPC plugin include the following in run.gradle.
Then run OpenSearch with the plugin installed.
grpcurl commands for querying default services.
Related Issues
RFCs detailing generation of protobuf files from api-specification - 1 2.
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.