If you have an existing cluster and want to upgrade to version 6.x, there are a few things you need to keep in mind. Preparing for your upgrade ahead of time ensures that you can enjoy the major new features and improved usability of Elasticsearch 6.x as quickly as possible.
Upgrading on Elasticsearch Add-On for Heroku differs from upgrading your on-premise installation in that all major configuration changes to upgrade Elasticsearch, Kibana, and X-Pack are handled for you. Your responsibility when preparing to upgrade to version 6.x is to make sure that your indices are ready for version 6.x by reindexing, if necessary, and that you are aware of breaking changes that could affect you.
The upgrade process to Elasticsearch 6.x is a two-step process that uses version 5.6 as an intermediate upgrade step. To upgrade to version 6.x, you must: . Upgrade from Elasticsearch version 5.x to version 5.6. . Upgrade from Elasticsearch version 5.6 to version 6.x.
When upgrading to version 6.x, Elasticsearch Add-On for Heroku automatically runs the deprecation API to retrieve information about different cluster, node, and index level settings that are removed or changed. If there are any deprecation issues that would prevent the upgraded cluster from performing correctly, Elasticsearch Add-On for Heroku does not perform the upgrade and instead asks you to resolve the issues through the Upgrade Assistant in Kibana first. If your cluster does not include a Kibana instance yet, you can enable Kibana first and then use the Upgrade Assistant. After resolving the issues flagged by the deprecation API, you should be able to perform the upgrade successfully.
Steps you might need to perform before upgrading:
- Enable inline scripting. At least the default Enable sandboxed inline scripts option must be set on the Configuration page for your cluster or the upgrade to version 6.x cannot proceed.
- Reindex indices created in older versions of Elasticsearch to ensure compatibility with version 6.x.
- Review breaking changes in Elasticsearch 6.x before upgrading.
For production systems, we recommend that you follow our Best Practices for Major Version Upgrades.
- Check the known issues on Elasticsearch Add-On for Heroku.
In version 6.x, TLS between Elasticsearch cluster nodes is always enabled on Elasticsearch Add-On for Heroku. To enable internal TLS between cluster nodes, Elasticsearch cluster must perform a full cluster restart on Elasticsearch Add-On for Heroku, even if you are upgrading from version 5.6.
Additional background information about upgrading the Elastic Stack is available, but keep in mind that most steps are handled for you, unless they are specifically called out in the Elasticsearch Add-On for Heroku documentation that you are currently reading:
To ensure an upgrade process that always keeps your data safe, Elasticsearch Add-On for Heroku takes a snapshot before making any changes to your cluster. After a major version upgrade is complete and the first successful snapshot with the new major version is available, all snapshots taken with previous version of Elasticsearch are removed.
For example, before upgrading from Elasticsearch version 5.6 to version 6.x, a snapshot is taken. After the upgrade to version 6.x is complete and a first snapshot with the new version is available, all snapshots taken with version 5.x are removed.
Elastic is always working on making upgrades across major versions easier, but major version upgrades often include so many changes that upgrading can carry some risk. A breaking change is the result of a functional change between major Elasticsearch versions that requires you to perform some additional step or steps in order to ensure that you can use the new version as intended. To learn more, see Breaking changes in 6.8.
Elasticsearch 6.x can read indices created in version 5.0 or above. An Elasticsearch 6.x node will not start if indices created in a version of Elasticsearch before 5.0 are present. If prompted by Elasticsearch Add-On for Heroku, use the Upgrade Assistant in Kibana to reindex your data.
The following known problems apply to the Elastic Stack 6.8.3 release:
- The Transport Client is not supported in 6.8.3. While we work on adding support, you can continue to use the Java REST client as a workaround.
To deploy 6.8, excluding Elastic Stack 6.8.3 and earlier releases:
- Log into the Elasticsearch Add-On for Heroku console.
- Upgrade from Elasticsearch version 2.x or version 5.x to version 5.6.
- Upgrade from version 5.6 to version 6.x.
- Test Elasticsearch and Kibana 6.x!