You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This limits the flexibility for OpenSearch users who may want to use custom client implementations during the bootstrap process. Though NodeClient is an implementation of Client there is no mechanism available to dynamically specify Client implementation during bootstrap. We should create a mechanism that allows users to specify their own client implementation during bootstrap.
Describe the solution you'd like
Implement a mechanism that allows users to specify a custom client implementation during the OpenSearch node bootstrap process. This could be achieved through:
A new configuration option in opensearch.yml
A programmatic way to set the client implementation when initializing a node.
New client implementations can be provided as part of a plugin.
Related component
Other
Describe alternatives you've considered
Experimented with extending Node.java to specify client implementation. However, this approach requires changes to bootstrap logic to make use of custom node class.
Additional context
Benefits
Increased flexibility for OpenSearch users.
Ability to use custom client implementations for specific use cases.
Better extensibility of the OpenSearch core.
Potential Implementation
Create a new interface, e.g., BootstrapClientProvider
Modify Node.java to use this interface instead of directly instantiating NodeClient
Provide a default implementation that uses NodeClient
Add configuration options to specify a custom implementation
Update relevant documentation
Acceptance Criteria
A mechanism to specify custom client implementation is available
The default behavior (using NodeClient) remains unchanged if no custom client is specified
Documentation is updated to reflect the new capability
Unit tests are added to verify the new functionality
Integration tests demonstrate the use of a custom client during bootstrap
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe
Currently, the
Node.java
class in OpenSearch hard-codes the use ofNodeClient
.OpenSearch/server/src/main/java/org/opensearch/node/Node.java
Line 625 in b75f27a
This limits the flexibility for OpenSearch users who may want to use custom client implementations during the bootstrap process. Though
NodeClient
is an implementation ofClient
there is no mechanism available to dynamically specify Client implementation during bootstrap. We should create a mechanism that allows users to specify their own client implementation during bootstrap.Describe the solution you'd like
Implement a mechanism that allows users to specify a custom client implementation during the OpenSearch node bootstrap process. This could be achieved through:
opensearch.yml
Related component
Other
Describe alternatives you've considered
Experimented with extending
Node.java
to specify client implementation. However, this approach requires changes to bootstrap logic to make use of custom node class.Additional context
Benefits
Potential Implementation
BootstrapClientProvider
Node.java
to use this interface instead of directly instantiatingNodeClient
NodeClient
Acceptance Criteria
NodeClient
) remains unchanged if no custom client is specifiedThe text was updated successfully, but these errors were encountered: