Datanode config separation (#15701)

* Different variants of security configuration (from file, from mongo, insecure).
Encryption/decryption pattern used in practice.

* Reverting temporary changes

* More precise certificate presence check

* Added unit tests for testHasCert() method

* Datanode and opensearch configuration refactored

* code cleanup

* code cleanup

* code cleanup

* Node preflight config service refactored

* restbaseurl moved to OpensearchConfiguration

---------

Co-authored-by: Lukasz Kaminski <lukasz.kaminski@graylog.com>
This commit is contained in:
Tomas Dvorak
2023-06-06 14:44:06 +02:00
committed by GitHub
parent 9f73e7eaf0
commit bc56d397c3
37 changed files with 542 additions and 282 deletions

View File

@@ -17,6 +17,7 @@
package org.graylog.datanode.process;
import org.graylog.datanode.management.Environment;
import org.graylog.shaded.opensearch2.org.apache.http.HttpHost;
import java.nio.file.Path;
import java.util.LinkedHashMap;
@@ -24,7 +25,6 @@ import java.util.List;
import java.util.Map;
public record OpensearchConfiguration(
String opensearchVersion,
Path opensearchDir,
Path opensearchConfigDir,
int httpPort,
@@ -64,4 +64,9 @@ public record OpensearchConfiguration(
env.put("OPENSEARCH_PATH_CONF", opensearchConfigDir.resolve("opensearch").toAbsolutePath().toString());
return env;
}
public HttpHost getRestBaseUrl() {
final boolean sslEnabled = Boolean.parseBoolean(asMap().getOrDefault("plugins.security.ssl.http.enabled", "false"));
return new HttpHost("localhost", httpPort(), sslEnabled ? "https" : "http");
}
}