forked from opensearch-project/OpenSearch
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add gRPC server as transport-grpc plugin
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]>
- Loading branch information
1 parent
687221f
commit ac33ea2
Showing
40 changed files
with
1,824 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
a257a5dd25dda1c97a99b56d5b9c1e56c12ae554 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
a257a5dd25dda1c97a99b56d5b9c1e56c12ae554 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,170 @@ | ||
import org.gradle.api.attributes.java.TargetJvmEnvironment | ||
|
||
/* | ||
* SPDX-License-Identifier: Apache-2.0 | ||
* | ||
* The OpenSearch Contributors require contributions made to | ||
* this file be licensed under the Apache-2.0 license or a | ||
* compatible open source license. | ||
*/ | ||
|
||
apply plugin: 'opensearch.internal-cluster-test' | ||
|
||
opensearchplugin { | ||
description 'gRPC based transport implementation' | ||
classname 'org.opensearch.transport.grpc.GrpcModulePlugin' | ||
} | ||
|
||
dependencies { | ||
compileOnly "com.google.code.findbugs:jsr305:3.0.2" | ||
implementation "com.google.errorprone:error_prone_annotations:2.24.1" | ||
implementation "com.google.guava:failureaccess:1.0.1" | ||
implementation "io.grpc:grpc-api:${versions.grpc}" | ||
implementation "io.grpc:grpc-core:${versions.grpc}" | ||
implementation "io.grpc:grpc-netty-shaded:${versions.grpc}" | ||
implementation "io.grpc:grpc-protobuf-lite:${versions.grpc}" | ||
implementation "io.grpc:grpc-protobuf:${versions.grpc}" | ||
implementation "io.grpc:grpc-services:${versions.grpc}" | ||
implementation "io.grpc:grpc-stub:${versions.grpc}" | ||
implementation "io.grpc:grpc-util:${versions.grpc}" | ||
implementation "io.perfmark:perfmark-api:0.26.0" | ||
implementation "com.google.guava:guava:${versions.guava}" | ||
} | ||
|
||
tasks.named("dependencyLicenses").configure { | ||
mapping from: /grpc-.*/, to: 'grpc' | ||
} | ||
|
||
thirdPartyAudit { | ||
ignoreMissingClasses( | ||
'com.aayushatharva.brotli4j.Brotli4jLoader', | ||
'com.aayushatharva.brotli4j.decoder.DecoderJNI$Status', | ||
'com.aayushatharva.brotli4j.decoder.DecoderJNI$Wrapper', | ||
'com.aayushatharva.brotli4j.encoder.BrotliEncoderChannel', | ||
'com.aayushatharva.brotli4j.encoder.Encoder$Mode', | ||
'com.aayushatharva.brotli4j.encoder.Encoder$Parameters', | ||
// classes are missing | ||
|
||
// from io.netty.logging.CommonsLoggerFactory (netty) | ||
'org.apache.commons.logging.Log', | ||
'org.apache.commons.logging.LogFactory', | ||
|
||
// from Log4j (deliberate, Netty will fallback to Log4j 2) | ||
'org.apache.log4j.Level', | ||
'org.apache.log4j.Logger', | ||
|
||
// from io.netty.handler.ssl.util.BouncyCastleSelfSignedCertGenerator (netty) | ||
'org.bouncycastle.cert.X509v3CertificateBuilder', | ||
'org.bouncycastle.cert.jcajce.JcaX509CertificateConverter', | ||
'org.bouncycastle.operator.jcajce.JcaContentSignerBuilder', | ||
'org.bouncycastle.openssl.PEMEncryptedKeyPair', | ||
'org.bouncycastle.openssl.PEMParser', | ||
'org.bouncycastle.openssl.jcajce.JcaPEMKeyConverter', | ||
'org.bouncycastle.openssl.jcajce.JceOpenSSLPKCS8DecryptorProviderBuilder', | ||
'org.bouncycastle.openssl.jcajce.JcePEMDecryptorProviderBuilder', | ||
'org.bouncycastle.pkcs.PKCS8EncryptedPrivateKeyInfo', | ||
|
||
// from io.netty.handler.ssl.JettyNpnSslEngine (netty) | ||
'org.eclipse.jetty.npn.NextProtoNego$ClientProvider', | ||
'org.eclipse.jetty.npn.NextProtoNego$ServerProvider', | ||
'org.eclipse.jetty.npn.NextProtoNego', | ||
|
||
// from io.netty.handler.codec.marshalling.ChannelBufferByteInput (netty) | ||
'org.jboss.marshalling.ByteInput', | ||
|
||
// from io.netty.handler.codec.marshalling.ChannelBufferByteOutput (netty) | ||
'org.jboss.marshalling.ByteOutput', | ||
|
||
// from io.netty.handler.codec.marshalling.CompatibleMarshallingEncoder (netty) | ||
'org.jboss.marshalling.Marshaller', | ||
|
||
// from io.netty.handler.codec.marshalling.ContextBoundUnmarshallerProvider (netty) | ||
'org.jboss.marshalling.MarshallerFactory', | ||
'org.jboss.marshalling.MarshallingConfiguration', | ||
'org.jboss.marshalling.Unmarshaller', | ||
|
||
// from io.netty.util.internal.logging.InternalLoggerFactory (netty) - it's optional | ||
'org.slf4j.helpers.FormattingTuple', | ||
'org.slf4j.helpers.MessageFormatter', | ||
'org.slf4j.Logger', | ||
'org.slf4j.LoggerFactory', | ||
'org.slf4j.spi.LocationAwareLogger', | ||
|
||
'com.google.gson.stream.JsonReader', | ||
'com.google.gson.stream.JsonToken', | ||
'com.google.protobuf.util.Durations', | ||
'com.google.protobuf.util.Timestamps', | ||
'com.google.protobuf.nano.CodedOutputByteBufferNano', | ||
'com.google.protobuf.nano.MessageNano', | ||
'com.google.rpc.Status', | ||
'com.google.rpc.Status$Builder', | ||
'com.ning.compress.BufferRecycler', | ||
'com.ning.compress.lzf.ChunkDecoder', | ||
'com.ning.compress.lzf.ChunkEncoder', | ||
'com.ning.compress.lzf.LZFChunk', | ||
'com.ning.compress.lzf.LZFEncoder', | ||
'com.ning.compress.lzf.util.ChunkDecoderFactory', | ||
'com.ning.compress.lzf.util.ChunkEncoderFactory', | ||
'lzma.sdk.lzma.Encoder', | ||
'net.jpountz.lz4.LZ4Compressor', | ||
'net.jpountz.lz4.LZ4Factory', | ||
'net.jpountz.lz4.LZ4FastDecompressor', | ||
'net.jpountz.xxhash.XXHash32', | ||
'net.jpountz.xxhash.XXHashFactory', | ||
'org.eclipse.jetty.alpn.ALPN$ClientProvider', | ||
'org.eclipse.jetty.alpn.ALPN$ServerProvider', | ||
'org.eclipse.jetty.alpn.ALPN', | ||
|
||
'org.conscrypt.AllocatedBuffer', | ||
'org.conscrypt.BufferAllocator', | ||
'org.conscrypt.Conscrypt', | ||
'org.conscrypt.HandshakeListener', | ||
|
||
'reactor.blockhound.BlockHound$Builder', | ||
'reactor.blockhound.integration.BlockHoundIntegration' | ||
) | ||
|
||
ignoreViolations( | ||
// uses internal java api: sun.misc.Unsafe | ||
'com.google.common.cache.Striped64', | ||
'com.google.common.cache.Striped64$1', | ||
'com.google.common.cache.Striped64$Cell', | ||
'com.google.common.hash.Striped64', | ||
'com.google.common.hash.Striped64$1', | ||
'com.google.common.hash.Striped64$Cell', | ||
'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray', | ||
'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$1', | ||
'com.google.common.hash.LittleEndianByteArray$UnsafeByteArray$2', | ||
'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper', | ||
'com.google.common.util.concurrent.AbstractFuture$UnsafeAtomicHelper$1', | ||
'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator', | ||
'com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1', | ||
|
||
'io.grpc.netty.shaded.io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator', | ||
'io.grpc.netty.shaded.io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator$1', | ||
'io.grpc.netty.shaded.io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator$2', | ||
'io.grpc.netty.shaded.io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator$3', | ||
'io.grpc.netty.shaded.io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator$4', | ||
'io.grpc.netty.shaded.io.netty.handler.ssl.util.OpenJdkSelfSignedCertGenerator$5', | ||
'io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0', | ||
'io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$1', | ||
'io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$2', | ||
'io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$3', | ||
'io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$4', | ||
'io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0$6', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseLinkedQueueConsumerNodeRef', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseLinkedQueueProducerNodeRef', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueColdProducerFields', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueConsumerFields', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.BaseMpscLinkedArrayQueueProducerFields', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.LinkedQueueNode', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpmcArrayQueueConsumerIndexField', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpmcArrayQueueProducerIndexField', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueConsumerIndexField', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerIndexField', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.queues.MpscArrayQueueProducerLimitField', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.util.UnsafeAccess', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.util.UnsafeLongArrayAccess', | ||
'io.grpc.netty.shaded.io.netty.util.internal.shaded.org.jctools.util.UnsafeRefArrayAccess' | ||
) | ||
} |
1 change: 1 addition & 0 deletions
1
plugins/transport-grpc/licenses/error_prone_annotations-2.24.1.jar.sha1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
32b299e45105aa9b0df8279c74dc1edfcf313ff0 |
Oops, something went wrong.