Support for searchable snapshots in datanode (#18357)

* Support for searchable snapshots in datanode

* Added changelog

* Code cleanup, extracted s3 repository configuration

* fixed installing of s3 repo plugin

* code cleanup

* Install opensearch plugins from predownloaded zip archives

* fixed configuration key

* output datanode logs in DatanodeSearchableSnapshotsIT if startup fails

* transfer predownloaded opensearch plugins to the datanode docker image

* Set default node.search.cache.size to 10gb

* javadoc, code cleanup

* code cleanup

* fix s3 configuration enabled check, added test

* Add md5 checksum to the s3 repository download
This commit is contained in:
Tomas Dvorak
2024-02-27 10:18:58 +01:00
committed by GitHub
parent 8200b36182
commit e620eeb59d
24 changed files with 849 additions and 62 deletions

View File

@@ -19,6 +19,7 @@ package org.graylog.datanode.process;
import org.apache.commons.exec.OS;
import org.graylog.datanode.OpensearchDistribution;
import org.graylog.datanode.configuration.DatanodeDirectories;
import org.graylog.datanode.configuration.S3RepositoryConfiguration;
import org.graylog.datanode.configuration.variants.OpensearchSecurityConfiguration;
import org.graylog.datanode.management.Environment;
import org.graylog.shaded.opensearch2.org.apache.http.HttpHost;
@@ -34,9 +35,14 @@ public record OpensearchConfiguration(
String hostname,
int httpPort,
int transportPort,
String clusterName, String nodeName, List<String> nodeRoles,
String clusterName,
String nodeName,
List<String> nodeRoles,
List<String> discoverySeedHosts,
OpensearchSecurityConfiguration opensearchSecurityConfiguration,
S3RepositoryConfiguration s3RepositoryConfiguration,
String nodeSearchCacheSize,
Map<String, String> additionalConfiguration
) {
public Map<String, String> asMap() {
@@ -71,6 +77,11 @@ public record OpensearchConfiguration(
config.put("discovery.seed_providers", "file");
config.put("node.search.cache.size", nodeSearchCacheSize);
if(s3RepositoryConfiguration.isRepositoryEnabled()) {
config.putAll(s3RepositoryConfiguration.toOpensearchProperties());
}
config.putAll(additionalConfiguration);
return config;
}