89 lines
2.9 KiB
Markdown
89 lines
2.9 KiB
Markdown
|
---
|
|||
|
layout: default
|
|||
|
title: Enabling experimental features
|
|||
|
nav_order: 10
|
|||
|
parent: OpenSearch documentation
|
|||
|
---
|
|||
|
|
|||
|
# Enabling experimental features
|
|||
|
|
|||
|
OpenSearch releases may contain experimental features that you can enable or disable as needed. There are several methods for enabling feature flags, depending on the installation type.
|
|||
|
|
|||
|
## Enable in opensearch.yml
|
|||
|
|
|||
|
If you are running an OpenSearch cluster and want to enable feature flags in the config file, add the following line to `opensearch.yml`:
|
|||
|
|
|||
|
```yaml
|
|||
|
opensearch.experimental.feature.<feature_name>.enabled: true
|
|||
|
```
|
|||
|
{% include copy.html %}
|
|||
|
|
|||
|
## Enable on Docker containers
|
|||
|
|
|||
|
If you’re running Docker, add the following line to `docker-compose.yml` under the `opensearch-node` > `environment` section:
|
|||
|
|
|||
|
```bash
|
|||
|
OPENSEARCH_JAVA_OPTS="-Dopensearch.experimental.feature.<feature_name>.enabled=true"
|
|||
|
```
|
|||
|
{% include copy.html %}
|
|||
|
|
|||
|
## Enable on a tarball installation
|
|||
|
|
|||
|
To enable feature flags on a tarball installation, provide the new JVM parameter either in `config/jvm.options` or `OPENSEARCH_JAVA_OPTS`.
|
|||
|
|
|||
|
### Option 1: Modify jvm.options
|
|||
|
|
|||
|
Add the following lines to `config/jvm.options` before starting the `opensearch` process to enable the feature and its dependency:
|
|||
|
|
|||
|
```bash
|
|||
|
-Dopensearch.experimental.feature.<feature_name>.enabled=true
|
|||
|
```
|
|||
|
{% include copy.html %}
|
|||
|
|
|||
|
Then run OpenSearch:
|
|||
|
|
|||
|
```bash
|
|||
|
./bin/opensearch
|
|||
|
```
|
|||
|
{% include copy.html %}
|
|||
|
|
|||
|
### Option 2: Enable with an environment variable
|
|||
|
|
|||
|
As an alternative to directly modifying `config/jvm.options`, you can define the properties by using an environment variable. This can be done using a single command when you start OpenSearch or by defining the variable with `export`.
|
|||
|
|
|||
|
To add the feature flags inline when starting OpenSearch, run the following command:
|
|||
|
|
|||
|
```bash
|
|||
|
OPENSEARCH_JAVA_OPTS="-Dopensearch.experimental.feature.<feature_name>.enabled=true" ./opensearch-{{site.opensearch_version}}/bin/opensearch
|
|||
|
```
|
|||
|
{% include copy.html %}
|
|||
|
|
|||
|
If you want to define the environment variable separately prior to running OpenSearch, run the following commands:
|
|||
|
|
|||
|
```bash
|
|||
|
export OPENSEARCH_JAVA_OPTS="-Dopensearch.experimental.feature.<feature_name>.enabled=true"
|
|||
|
```
|
|||
|
{% include copy.html %}
|
|||
|
|
|||
|
```bash
|
|||
|
./bin/opensearch
|
|||
|
```
|
|||
|
{% include copy.html %}
|
|||
|
|
|||
|
## Enable for OpenSearch development
|
|||
|
|
|||
|
To enable feature flags for development, you must add the correct properties to `run.gradle` before building OpenSearch. See the [Developer Guide](https://github.com/opensearch-project/OpenSearch/blob/main/DEVELOPER_GUIDE.md) for information about to use how Gradle to build OpenSearch.
|
|||
|
|
|||
|
Add the following properties to run.gradle to enable the feature:
|
|||
|
|
|||
|
```gradle
|
|||
|
testClusters {
|
|||
|
runTask {
|
|||
|
testDistribution = 'archive'
|
|||
|
if (numZones > 1) numberOfZones = numZones
|
|||
|
if (numNodes > 1) numberOfNodes = numNodes
|
|||
|
systemProperty 'opensearch.experimental.feature.<feature_name>.enabled', 'true'
|
|||
|
}
|
|||
|
}
|
|||
|
```
|
|||
|
{% include copy.html %}
|