We added support for Elasticsearch v7+ (ES7) in the v1.7.0 update to the Temporal Server.
Elasticsearch v7 introduces several breaking changes, including the removal of mapping types.
These changes make Elasticsearch v6 incompatible with Elasticsearch v7.
As of v1.18.0, v6 support has been completely removed from Temporal.
Support for Elasticsearch v8 has been added; v7 remains as the default version to run.
Use one of the following methods to update your Temporal Server and Elasticsearch.
Temporary shutdown
-
Shut down the Temporal Cluster.
-
Upgrade Elasticsearch v6 to Elasticsearch v7 according to Elasticsearch documentation.
-
Upgrade Temporal to the latest version.
-
Make sure that the static config file is set to version
v7
or doesn’t specify version at all:persistence: datastores: es-visibility: elasticsearch: version: "v7"
-
Start the Temporal Cluster.
Rolling upgrade
- If you are still using Elasticsearch v6, make sure your config file is set to
v6
:
If you’re using a pre-built Docker image, set thepersistence: datastores: es-visibility: elasticsearch: version: "v6"
ES_VERSION
environment variable tov6
. - Update Temporal to the latest 1.17.x version.
- Add the following to the dynamic config file:
This will disable the internal visibility queue processor.history.visibilityTaskWorkerCount: - value: 0
- Restart the Temporal Server services.
Workflow visibility information won’t be updated. - Upgrade Elasticsearch v6 to Elasticsearch v7 following steps from the Elasticsearch documentation.
- Start Elasticsearch v7.
Visibility read queries will temporarily generate errors.
Write queries are blocked because the the processor is disabled. - Change
v6
tov7
in your config file or removeversion
completely:
If you’re using a pre-build docker image, setpersistence: datastores: es-visibility: elasticsearch: version: "v7"
ES_VERSION
tov7
. - Remove the following statement from the dynamic config file:
This will enable the internal visibility queue processor.history.visibilityTaskWorkerCount: - value: 0
- Restart the Server one more time.