-
Notifications
You must be signed in to change notification settings - Fork 4k
Open
Labels
Description
I am building an xDS enabled gRPC Server. The gRPC Server is sending "0.0.0.0:#port" to xDS during LDS.
Trying to find, how to pass socket address Or is it possible to pass address/IP.
gRPC Java file - grpc-java/xds/src/main/java/io/grpc/xds/XdsServerBuilder.java
/** Creates a gRPC server builder for the given port. */
public static XdsServerBuilder forPort(int port, ServerCredentials serverCredentials) {
checkNotNull(serverCredentials, "serverCredentials");
InternalProtocolNegotiator.ServerFactory originalNegotiatorFactory =
InternalNettyServerCredentials.toNegotiator(serverCredentials);
ServerCredentials wrappedCredentials = InternalNettyServerCredentials.create(
new FilterChainMatchingNegotiatorServerFactory(originalNegotiatorFactory));
NettyServerBuilder nettyDelegate = NettyServerBuilder.forPort(port, wrappedCredentials);
return new XdsServerBuilder(nettyDelegate, port);
}
@Override
public Server build() {
checkState(isServerBuilt.compareAndSet(false, true), "Server already built!");
FilterChainSelectorManager filterChainSelectorManager = new FilterChainSelectorManager();
Attributes.Builder builder = Attributes.newBuilder()
.set(ATTR_FILTER_CHAIN_SELECTOR_MANAGER, filterChainSelectorManager);
if (drainGraceTimeUnit != null) {
builder.set(ATTR_DRAIN_GRACE_NANOS, drainGraceTimeUnit.toNanos(drainGraceTime));
}
InternalNettyServerBuilder.eagAttributes(delegate, builder.build());
return new XdsServerWrapper("0.0.0.0:" + port, delegate, xdsServingStatusListener,
filterChainSelectorManager, xdsClientPoolFactory, bootstrapOverride, filterRegistry);
}
The IP in above code is hardcoded to "0.0.0.0".
My gRPC server code -
server = XdsServerBuilder.forPort("5001", InsecureServerCredentials.create())
.addService(new EchoServiceImp())
.addService(healthSattusManager.getHealthService())
.addService(ProtoReflectionService.newInstance())
.build()
.start();
I do not see "XdsServerBuilder.forAddress" function.
If passing address is not possible, then how to pass the gRPC server IP (not "0.0.0.0") to xDS via ways defined in A36
Passing a machine ip when binding listener will enable populate address in LDS to xDS:
"server_listener_resource_name_template": "example/resource/%s"
Reactions are currently unavailable