Skip to content

Commit 3a60d62

Browse files
committed
Configure internal communication for ANNOUNCE discovery mode
This includes automatic generation of TLS certificates for internal communication when the certificate is not configured explicitly.
1 parent 186dc24 commit 3a60d62

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

core/trino-main/src/main/java/io/trino/node/AirliftNodeInventoryModule.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import com.google.inject.Scopes;
1818
import io.airlift.configuration.AbstractConfigurationAwareModule;
1919
import io.airlift.discovery.client.DiscoveryModule;
20+
import io.airlift.discovery.client.ForDiscoveryClient;
2021
import io.airlift.discovery.server.DynamicAnnouncementResource;
2122
import io.airlift.discovery.server.EmbeddedDiscoveryModule;
2223
import io.airlift.discovery.server.ServiceResource;
@@ -75,6 +76,6 @@ protected void setup(Binder binder)
7576
.addProperty("coordinator", String.valueOf(coordinator));
7677

7778
// internal communication setup for discovery http client
78-
install(new InternalCommunicationForDiscoveryModule());
79+
install(new InternalCommunicationForDiscoveryModule(ForDiscoveryClient.class));
7980
}
8081
}

core/trino-main/src/main/java/io/trino/node/AnnounceNodeInventoryModule.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,8 @@ protected void setup(Binder binder)
4646
config.setIdleTimeout(new Duration(3, SECONDS));
4747
config.setRequestTimeout(new Duration(3, SECONDS));
4848
}).build());
49+
50+
// internal communication setup for discovery http client
51+
install(new InternalCommunicationForDiscoveryModule(ForAnnouncer.class));
4952
}
5053
}

core/trino-main/src/main/java/io/trino/node/InternalCommunicationForDiscoveryModule.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
import com.google.inject.Binder;
1717
import com.google.inject.multibindings.Multibinder;
1818
import io.airlift.configuration.AbstractConfigurationAwareModule;
19-
import io.airlift.discovery.client.ForDiscoveryClient;
2019
import io.airlift.http.client.HttpClientConfig;
2120
import io.airlift.http.client.HttpRequestFilter;
2221
import io.airlift.http.client.Request;
2322
import io.trino.server.InternalAuthenticationManager;
2423
import io.trino.server.InternalCommunicationConfig;
2524

2625
import java.io.UncheckedIOException;
26+
import java.lang.annotation.Annotation;
2727
import java.net.InetAddress;
2828
import java.net.URI;
2929
import java.net.URISyntaxException;
@@ -33,19 +33,27 @@
3333
import static io.airlift.configuration.ConfigBinder.configBinder;
3434
import static io.airlift.node.AddressToHostname.encodeAddressAsHostname;
3535
import static io.trino.server.InternalCommunicationHttpClientModule.configureClient;
36+
import static java.util.Objects.requireNonNull;
3637

3738
public class InternalCommunicationForDiscoveryModule
3839
extends AbstractConfigurationAwareModule
3940
{
41+
private final Class<? extends Annotation> httpClientQualifier;
42+
43+
public InternalCommunicationForDiscoveryModule(Class<? extends Annotation> httpClientQualifier)
44+
{
45+
this.httpClientQualifier = requireNonNull(httpClientQualifier, "httpClientQualifier is null");
46+
}
47+
4048
@Override
4149
protected void setup(Binder binder)
4250
{
4351
InternalCommunicationConfig internalCommunicationConfig = buildConfigObject(InternalCommunicationConfig.class);
44-
Multibinder<HttpRequestFilter> discoveryFilterBinder = newSetBinder(binder, HttpRequestFilter.class, ForDiscoveryClient.class);
52+
Multibinder<HttpRequestFilter> discoveryFilterBinder = newSetBinder(binder, HttpRequestFilter.class, httpClientQualifier);
4553
if (internalCommunicationConfig.isHttpsRequired() && internalCommunicationConfig.getKeyStorePath() == null && internalCommunicationConfig.getTrustStorePath() == null) {
4654
discoveryFilterBinder.addBinding().to(DiscoveryEncodeAddressAsHostname.class);
4755
}
48-
configBinder(binder).bindConfigDefaults(HttpClientConfig.class, ForDiscoveryClient.class, config -> configureClient(config, internalCommunicationConfig));
56+
configBinder(binder).bindConfigDefaults(HttpClientConfig.class, httpClientQualifier, config -> configureClient(config, internalCommunicationConfig));
4957
discoveryFilterBinder.addBinding().to(InternalAuthenticationManager.class);
5058
}
5159

0 commit comments

Comments
 (0)