Commit Graph

185 Commits

Author SHA1 Message Date
Tomas Dvorak
b6cb2c125d Support for untrusted CAs in datanode remote reindex migration (#19775)
* Support for untrusted CAs in datanode remote reindex migration

* Added changelog

* replace sun https server with grizzly

* fixed import

* fix tests

* Fix optional truststore in datanode

* extend default JVM truststore for opensearch inside datanode

* fixed nonnull annotation

* Do not override javax.net.ssl.trustStore property in datanode

* Fix trustmanager for opensearch rest client in datanode

* Fix uploaded ca keystore aliases

---------

Co-authored-by: Mohamed Ould Hocine <mohamed.ould.hocine@graylog.com>
Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
2024-07-04 15:39:55 +02:00
Tomas Dvorak
a26a09488a Migrate datanode CA to cluster config service, refactor handling (#19747)
* Added test for LegacyDatanodeKeystoreProvider, removed CertService dependency

* Added license

* fixed nonnull annotation

* Migrate datanode CA to cluster config service, refactor handling

* code cleanup

* Added changelog

* fixed exception

* Added unit tests for CaPersistenceService

* Migrate certificate authority before preflight

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-07-03 14:53:52 +02:00
Tomas Dvorak
33dfb063fa Lazy configuration processing, printing all errors at once (#19801)
* Lazy configuration processing, printing all errors at once

* Added changelog
2024-07-02 10:39:55 +02:00
Tomas Dvorak
e16aaea55b Added test for LegacyDatanodeKeystoreProvider, removed CertService de… (#19735)
* Added test for LegacyDatanodeKeystoreProvider, removed CertService dependency

* Added license

* fixed nonnull annotation

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-07-01 08:04:42 +02:00
Tomas Dvorak
76cd8bb41d Propagate datanode version through node service (#19691)
* Propagate datanode version through node service

* Datanode version displayed in datanodes table

* added changelog

* lint error fixed

* fixed lint errors

* fixed nullable annotation import

* Added datanode version to the detail page

* Define datanode_version in types.ts

* Provide datanode version during initial register in NodePingPeriodical

* define datanode_version in preflight types.ts

* fix tests

---------

Co-authored-by: Mohamed OULD HOCINE <106236152+gally47@users.noreply.github.com>
Co-authored-by: Mohamed Ould Hocine <mohamed.ould.hocine@graylog.com>
Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-06-28 13:45:40 +02:00
Tomas Dvorak
655723659e Disable automatic CSR in preflight mode (#19709)
* Disable automatic CSR in preflight mode

* added changelog

* run automatic cert renewal for datanode only if preflight is finished

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-06-25 13:38:48 +02:00
Tomas Dvorak
07a9c24e1c Graylog CA abstractions refactoring (#19632)
* Graylog CA abstractions refactoring

* CaTruststore abstraction, bindings

* Add BC providers in key and truststores, tests

* code cleanup

* Fixed forbidden annotation

* fixed bindings

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-06-21 12:23:18 +02:00
Tomas Dvorak
fe71d42658 Datanode periodical for certificate renewals (#19618)
* Datanode periodical for certificate renewals

* 30 minutes period for datanode cert renewal periodical

* logging adapted

* code cleanup

* Removed unused, simplified renewal on graylog server side

* removed unused cert renewal endpoint
2024-06-20 09:49:57 +02:00
Tomas Dvorak
37e32b390e Datanode provisioning refactored and significantly simplified (#19558)
* Datanode keystore implementation

* Bind keystore check, remove legacy private key storage

* added license

* code cleanup, better cert signed verification

* added changelog

* code cleanup

* CSR and certificate exchange refactored

* removed jetbrains annotation

* removed jetbrains annotation

* Datanode provisioning refactored and significantly simplified

* Log more certificate info

* fix initial opensearch configuration change event

* Safer datanodes shutdown during the startOver in preflight

* Allow opensearch restarts in the state machine, simplify allowlist events handling

* Replace opensearch configuration provider with service

* Propagate datanode cert validity through periodical pings

* fixed DataNodeEntityTest

* Adapt CertRenewalServiceImpl to new source of datanode cert validity

* Fixed logging and DatanodeKeystore validation caching

* Fix provisioning for inplace migration

* fixed test

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-06-12 12:31:02 +02:00
Bernd Ahlers
6e28a24404 Configure error-prone WildcardImport as ERROR (#19568)
This enforces a convention we are using in our code base.
2024-06-07 17:04:25 +02:00
Tomas Dvorak
347e5653c3 CSR and certificate exchange refactored (#19545)
* Datanode keystore implementation

* Bind keystore check, remove legacy private key storage

* added license

* code cleanup, better cert signed verification

* added changelog

* code cleanup

* CSR and certificate exchange refactored

* removed jetbrains annotation

* removed jetbrains annotation
2024-06-07 10:08:26 +02:00
Tomas Dvorak
682aac7e93 Datanode keystore implementation (#19536)
* Datanode keystore implementation

* Bind keystore check, remove legacy private key storage

* added license

* code cleanup, better cert signed verification

* added changelog

* code cleanup
2024-06-06 07:48:12 +02:00
Dennis Oelkers
9830372bbf Return better messages for JSON errors in API. (#18367)
* Return better messages for JSON errors in API.

* Improving structure once again.

* Include more attributes in specialized error class.

* Adding license header.

* Adding changelog snippet.

* Handling missing target type.

* Including reference path if present.

* Fixing up changelog, adding upgrade notes.

* Adding test for JSON parsing error responses.

* Constructing reference path for missing required property.

* Handling JSON parsing error on root level.

* Consolidating `JacksonPropertyExceptionMapper` to handle invalid properties in a structured way.

* Adjusting test.
2024-06-03 08:32:13 +02:00
Tomas Dvorak
38445e361c Move datanode test/wait packages to server (#19364) 2024-05-16 13:49:19 +02:00
Tomas Dvorak
269afe7ede Fix repeated opensearch startup during HEALTH_CHECK_FAILED (#19335)
* Fix repeated opensearch startup during HEALTH_CHECK_FAILED

* Set network.publish_host to hostname for all datanodes

* Verify CA subject name in DatanodeProvisioningIT

* add `DataNodeStatus` and check that data node is `CONNECTED && AVAILABLE` to avoid race condition between ProvisioningPeriodical and NodeHeartbeat

* Simplify TruststoreCreator

---------

Co-authored-by: Matthias Oesterheld <matthias.oesterheld@graylog.com>
2024-05-15 10:24:37 +02:00
Matthias Oesterheld
769b6c0a21 use dependency injection for process and state machine tracer (#19118)
* use dependency injection for process and state machine tracer

* fix forbidden annotations

* move removal logic from tracer to process

* add state machine exception handling

* call reset via statemachine, not process

* do not start os process during configure

* temporary fix of tests

* move start/stop process triggers to state machine

* use state machine instead of process

* fix watchdog test

* move removal tracer test to process and remove tracer

* set statemachine for tracer directly

* trigger `PREPARED` instead of `STARTING` after provisioning, startup is handled by Graylog

* add restart transition for reconfiguring test data node

* add missing transition

* make `fire` with errorEvent private

* remove static process variable

* set tracer in `createNew`

* provide default implementation

* revert to default attempts_count
2024-05-13 06:27:34 +02:00
Tomas Dvorak
e098d672af Remove basic auth from datanode rest api (jwt only now) (#19244)
* Remove basic auth from datanode rest api (jwt only now)

* Remove username/password usages from datanode integration tests

* fix tests

* Added changelog
2024-05-06 13:19:05 +02:00
Matthias Oesterheld
112b7d23df Fix data node metrics data stream generation (#19241)
* fix replicas for data stream system indices
fixes #19010

* move `isManagerNode()` to process, only create metrics ism config on manager node
fixes #18830

* cl

* fix cl
2024-05-06 12:31:58 +02:00
Tomas Dvorak
ba211bf2a6 Remove all datanode leader node usages (#19170)
* Remove all datanode leader node usages

* Added changelog

* Fixed rest client injection

* fix datanode isLeader in builder

* Remove leader selector in datanode proxy implementations
2024-04-29 17:20:40 +02:00
Tomas Dvorak
68d5c79108 Automate datanode configuration documentation (#18974)
* Automate datanode configuration documentation

* work around reflection usage errors in datanode documentation generation

* fixed bindings for datanode
2024-04-19 13:27:55 +02:00
Matthias Oesterheld
91ded55629 Initial refactoring of data node process/state machine (#19101)
* rename state machine to DataNodeStateMachine to make clear it is not only handling the process anymore

* initial refactoring of packages and classes:
clearly separate processing and opensearch-related classes

* Make ManageableProcess independent from OpensearchStateMachine
2024-04-19 07:23:07 +02:00
Tomas Dvorak
c6040e2cab replace jetbrains NotNull/Nullable annotations with jakarta (#19029)
* Configure forbiddenapis for jetbrains annotations

* replace jetbrains NotNull/Nullable annotations with jakarta

* Update pom.xml

Co-authored-by: Othello Maurer <othello@graylog.com>

* Revert "replace jetbrains NotNull/Nullable annotations with jakarta"

This reverts commit 11d8b394d5.

* Replace org.jetbrains.annotations.NotNull with jakarta.annotations.Nonnull

* Replace org.jetbrains.annotations.Nullable with jakarta.annotations.Nullable

* removed unused import

---------

Co-authored-by: Othello Maurer <othello@graylog.com>
2024-04-18 11:42:17 +02:00
Tomas Dvorak
1572342d60 Async cluster restart during remote reindex migration (#19080)
* Async cluster restart during remote reindex migration, configuration cleanup

* Safer and faster way to restart and wait for datanode cluster during remote reindex

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-04-17 14:39:39 +02:00
Matthias Oesterheld
756d893f23 make sure nodeC is stopped after all tests (#19078) 2024-04-16 13:50:39 +02:00
Tomas Dvorak
2e4809023a Wait for opensearch process termination (#19056)
* Wait for opensearch process termination, ignore

* Added changelog
2024-04-15 10:28:36 +02:00
Tomas Dvorak
7b71548345 Refactoring/keystores code simplification (#18951)
* Datanode preflight provisioning IT

* npe fix

* fixed naming

* Add test for uploaded CA in preflight provisioning

* Keystore code simplifications in datanode

* more deprecations

* KeystoreMongoLocation code cleanup

* Remove KeyPairChecker, simplify code

* code cleanup

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-04-15 09:01:29 +02:00
Tomas Dvorak
adbcbf5c26 Datanode preflight provisioning IT (#18912)
* Datanode preflight provisioning IT

* npe fix

* fixed naming

* Add test for uploaded CA in preflight provisioning
2024-04-09 14:35:53 +02:00
Jan Heise
89f1699bd5 DataNode: Added OpenSearch heap setting (#18866)
* added heap setting

* fixed missing property propagation

* fix propagation in insecure startup
2024-04-03 11:50:34 +02:00
Jan Heise
0d5a36a086 DataNode: on insecure startup, always assume that preflight is finished (#18796)
* remove unused code

* always check/write preflight.finished on insecure startup
2024-04-03 11:15:55 +02:00
Matthias Oesterheld
1855ca0014 Optimize Data Node Migration Wizard (#18812)
* remove first directory compatibility check and steps, rename DIRECTORY_COMPATIBILITY_CHECK_PAGE2 to DIRECTORY_COMPATIBILITY_CHECK_PAGE

* skip ca and cert renewal steps if these exist
rename wrongly named methods

* skip provisioning steps in in-place and remote reindexing migration if data nodes have already been provisioned
only provision data nodes which haven't been provisioned yet

* fix in-place provisioning skip for provisioned and started data nodes

* add directory readable check to compatibility check
run compatibility check in migration trigger (not visible in UI yet)
add retry trigger on failed check
implement directoryCompatibilityCheckOK in MigrationActionsImpl
add directory check button label in UI

* add hostname to CompatibilityResult, run compatibility check for all data nodes on migration action, fix tests
2024-03-28 14:12:45 +01:00
Jan Heise
ff630ad1c4 DataNode: Setting the remote reindexing allowlist separately (#18805)
* setting the whitelist separate from the host that we execute the command against. needs to be two settings because the whitelist can contain wildcards

* adding the whitelist to the UI

* fix import, fix text

* fix test

* changing whitelist -> allowlist

* fixing merge conflicts
2024-03-28 13:22:04 +01:00
Jan Heise
81acc1b60e changing config parameters to Object so we can support yml lists etc. in opensearch.yml (#18799)
Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-03-27 16:40:24 +01:00
Jan Heise
0f0fb1fdaa adding admin access via the REST API (#18798) 2024-03-27 11:11:52 +01:00
Tomas Dvorak
13ee45611e Remove empty indexer tranport addresses in IndexerDiscoveryProvider (#18802)
* Fix empty indexer tranport address in IndexerDiscoveryProvider

* Added changelog
2024-03-26 12:42:23 +01:00
Matthias Oesterheld
ff7962ab07 fix duplicate startup of data node (#18772)
* fix duplicate startup of data node

* always recreate dataStreamService to ensure correct OS client on configuration change
2024-03-25 15:10:11 +01:00
Tomas Dvorak
9c6058347a make node roles configurable (#18743) 2024-03-22 10:13:38 +01:00
Tomas Dvorak
1244e3dd38 Start container services in paralel, bind opensearch distribution (#18604)
* Start container services in paralel, bind opensearch from fs instead of copy

* code cleanup

* read-write fs for opensearch in docker, fs bind for plugins

* disable debug logs in integration tests

* preinstall s3 repository plugin for opensearch, bind os distro as read only in docker

* Print unassigned shards if waiting for opensearch fails with yellow status

* Update WaitingRestOperation.java

* add indexsetconfig for replicas to data stream creation

* set number of replicas for data stream backing indices and ism system indices automatically to either indexset default settings or based on the number of available data nodes

* Remove unused opensearch plugins dir references, add datanode directories to status response

* use default config from configuration

---------

Co-authored-by: Jan Heise <jan.heise@graylog.com>
Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
Co-authored-by: Matthias Oesterheld <matthias.oesterheld@graylog.com>
2024-03-22 10:00:36 +01:00
Tomas Dvorak
2be87c60e0 Fix directory compatibility check for insecure datanode instances #18690 (#18733) 2024-03-22 09:17:30 +01:00
Jan Heise
38bf3e1793 Revert OpenSearch Client Migration (#18686)
* Revert "Monkey-patching `NodeRole` class to avoid role parsing bug. (#18648)"

This reverts commit 0bf99aae43.

* Revert "Fix parsing of missing watermark settings. (#18624)"

This reverts commit e9783e4d88.

* Revert "Migrating `IndexToolsAdapter` to new Opensearch client. (#18505)"

This reverts commit 64921ab1ef.

* Revert "Migrating query suggestions to new OpenSearch client. (#17998)"

This reverts commit 27f55ecf81.

* Revert "Setting up injection/usage of new OpenSearch Java Client. (#17760)"

This reverts commit aacaa0c4d2.

* needed changes to revert part1

* Fix opensearch rest client providers

* fix OpenSearchInstance

* Add license

---------

Co-authored-by: Tomas Dvorak <tomas.dvorak@graylog.com>
2024-03-19 23:23:02 +01:00
Matthias Oesterheld
0a887859ea Move lock file check for data dir to later step (#18636)
* do not write/check for lock file in data dir during preflight test

* remove unnecessary directory read check, handled by validator

* add lockfile check to startup

* remove unused exception

* fix compatibility check url

* add more information and show data node list on restart step

* ignore PROCESS_STOPPED event when in WAITING_FOR_CONFIGURATION state to avoid ugly exception

* fix test and show MigrationDatanodeList
2024-03-15 15:20:53 +01:00
Bernd Ahlers
a8f59e79f7 Configure build to create SBOM files for backend and frontend (#18159)
* Configure build to create SBOM files for backend and frontend

* Update yarn.lock file

* Reorder imports to please the linter

* Don't modify yarn.lock to avoid conflicts

* Move CycloneDxWebpackPlugin to webpack/core.js

* Build SBOM for the vendor bundle

* Sync yarn.lock
2024-03-13 17:19:58 +01:00
Jan Heise
7d8093d7a9 DataNode: Client Cert Generation (#18522)
* client cert research part1

* client cert research part2

* remove changes in roles_mapping

* ClientCertGenerator refactoring

* ClientCertGenerator JSON etc

* adding changelog

* lowercase url

* adding audit events

* base64 encoding the cert file name

* fix call

* fix test, adding missing event types

* added correct result mapping

* fixing imports
2024-03-13 09:57:05 +01:00
Matthias Oesterheld
1c5ebd2742 Fix datanode startup (#18577)
* reuse executor service to avoid multiple registrations of metrics

* add PREPARED preflight config state
2024-03-12 14:40:38 +01:00
Dan Torrey
2a66c130fe Add common OpenSearch rollover duration formatter (#18473)
* Add formatter for ISM policy rollover

* Use duration for retention in data node configuration

* License headers

* Fix forbidden error

* Add size formatter, and ability to set rollover minPrimaryShardSize

* Use simple enum size and time formatters with all options

* License headers

* Add IsmTemplate support

---------

Co-authored-by: Matthias Oesterheld <33032967+moesterheld@users.noreply.github.com>
2024-03-12 08:19:05 -05:00
Tomas Dvorak
fa6de93bb9 Fix matrix tests configurations, calculate unique variants for flags and additional params (#18555)
* Fix matrix tests configurations, calculate unique variants for flags and additional params

* don't run cleanup when the server instance has been already closed

* update opensearch in integration tests to 2.12.0
2024-03-11 15:59:10 +01:00
Dennis Oelkers
27f55ecf81 Migrating query suggestions to new OpenSearch client. (#17998)
* Migrating `CountsAdapter`.

* Starting to migrate `ClusterAdapter`.

* Migrating usage of `PlainJsonApi`.

* Adding license header.

* Migrating `FieldMappingApi`.

* Fixing up node/host name resolution.

* Migrating `QuerySuggestions` to new client.

* Migrating `StreamsForFieldRetriever` adapter.

* Providing `RestClient` for low-level queries.

* Removing injections of `RestClient` in other adapters.

* Using rest client in data node setup code too.

* Outputting response for debugging.

* SearchJob is aware of executing node. (#18436)

* Allow plugins to add search types to event execution (#18372)

* add event modifier state, allow plugins to add search types for aggregations

* use better variable name

* ensure eventModifierState is not null

* add test for eventModifier state callback

add missing NonNull annotation
properly initialize autovalue

* use binder explicitly to ensure it's not missing if no one is using it

* add changelog

* add license header

* fix invalid test matcher

* use ImmutableMap.of for consistency

* Bump express from 4.18.2 to 4.18.3 in /graylog2-web-interface (#18446)

Bumps [express](https://github.com/expressjs/express) from 4.18.2 to 4.18.3.
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/4.18.2...4.18.3)

---
updated-dependencies:
- dependency-name: express
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump @types/react in /graylog2-web-interface/packages/graylog-web-plugin (#18447)

Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) from 18.2.60 to 18.2.61.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Allow overriding `events` search type pagination through execution state. (#18438)

* Allow overriding pagination through execution state.

* Adding missing builder methods.

* Fixing retrieval of cluster settings.

* Retrieving unquoted string fuer settings value.

* Returning `null` if absent.

* Using search instead of counts endpoint to avoid overly large `GET`.

* Improving test.

* Using multi-search to avoid GET becoming too large.

* Including jackson in assembly.

* Reusing `OpensearchClient#search`.

* Including missing client deps in assembly.

* Handle search request failures properly

* Performing suggestions aggregation as msearch.

* Fixing up extraction of corrections.

* Fixing up bucket extraction for numeric values.

* Removing unused object mapper.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Jan Heise <jan.heise@graylog.com>
Co-authored-by: luk-kaminski <lukasz.kaminski@graylog.com>
Co-authored-by: Kay Roepke <kroepke@googlemail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-11 11:12:16 +01:00
Jan Heise
d12a6dd478 DataNode: removing the dependency to the data_dir (#18483)
* removing the dependency to the data_dir

* removing the dependency to the data_dir

* adding native lib dir
2024-03-06 15:04:16 +01:00
Tomas Dvorak
a53fcc49e8 Small datanode fixes for migration (#18412)
* Migration fixes

* use sha instead of md5 hash
2024-02-27 14:42:28 +01:00
dependabot[bot]
54ff42b6c9 Bump jjwt.version from 0.11.5 to 0.12.5 (#17075)
* Bump jjwt.version from 0.11.5 to 0.12.3

Bumps `jjwt.version` from 0.11.5 to 0.12.3.

Updates `io.jsonwebtoken:jjwt-api` from 0.11.5 to 0.12.3
- [Release notes](https://github.com/jwtk/jjwt/releases)
- [Changelog](https://github.com/jwtk/jjwt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jwtk/jjwt/compare/0.11.5...0.12.3)

Updates `io.jsonwebtoken:jjwt-impl` from 0.11.5 to 0.12.3
- [Release notes](https://github.com/jwtk/jjwt/releases)
- [Changelog](https://github.com/jwtk/jjwt/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jwtk/jjwt/compare/0.11.5...0.12.3)

Updates `io.jsonwebtoken:jjwt-jackson` from 0.11.5 to 0.12.3

---
updated-dependencies:
- dependency-name: io.jsonwebtoken:jjwt-api
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.jsonwebtoken:jjwt-impl
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.jsonwebtoken:jjwt-jackson
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* fixed JwtTokenValidator

* adapt jwt token test for NONE alg

* trim imported licenses in integration tests

* Added changelog

* Added changelog

* code cleanup, removed changelog, added test

* code cleanup

* Update to jjwt 0.12.5

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tomas Dvorak <tomas.dvorak@graylog.com>
Co-authored-by: Bernd Ahlers <bernd@users.noreply.github.com>
Co-authored-by: Bernd Ahlers <bernd@graylog.com>
2024-02-27 11:53:11 +01:00
Tomas Dvorak
e620eeb59d 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
2024-02-27 10:18:58 +01:00