This section discusses the changes that you need to be aware of when migrating your application to Elasticsearch 7.14.
The following changes in Elasticsearch 7.14 might affect your applications and prevent them from operating normally. Before upgrading to 7.14, review these changes and take the described steps to mitigate the impact.
Breaking changes introduced in minor versions are normally limited to security and bug fixes. Significant changes in behavior are deprecated in a minor release and the old behavior is supported until the next major release. To find out if you are using any deprecated functionality, enable deprecation logging.
Version barrier applies to all upgrades
If a failure occurs during a rolling upgrade then Elasticsearch may prematurely conclude that the upgrade is complete and enable functionality which is incompatible with earlier versions. In versions before 7.14 Elasticsearch would accept older nodes into the cluster after completing the upgrade despite having enabled incompatible functionality, as long as the older nodes were from the same major series. From 7.14 onwards Elasticsearch will not accept any older nodes into a fully-upgraded cluster.
If a failure occurs during a rolling upgrade and older nodes cannot rejoin the cluster then you must upgrade the affected nodes. Once upgraded, they will join the cluster again.
The following functionality has been deprecated in Elasticsearch 7.14 and will be removed in 8.0. While this won’t have an immediate impact on your applications, we strongly encourage you take the described steps to update your code after upgrading to 7.14.
Significant changes in behavior are deprecated in a minor release and the old behavior is supported until the next major release. To find out if you are using any deprecated functionality, enable deprecation logging.
Cross-cluster replication (CCR) deprecationsedit
Auto-follow remote system indices is deprecated.
Currently, remote system indices matching an auto-follow pattern are configured as a follower index automatically, this behavior is deprecated.
In 8.0.0, remote system indices matching an auto-follow pattern won’t be configured as a follower index automatically. In order to adapt to this new behaviour it is advised to exclude patterns matching system indices such as
cluster.routing.allocation.disk.watermark.enable_for_single_data_node=false is deprecated.
should never be explicitly set to false. In 8.0, the only legal value will be
true. In a future release, the setting will be removed completely, with same
behavior as if the setting was
If your cluster has a single data node then set
to opt in to the future behaviour today. If you wish to disable the disk
watermarks then set
If your cluster has multiple data nodes then the
has no effect and you should discontinue its use.
type parameter is deprecated.
type parameter has been deprecated in 7.14.0.
This parameter is a no-op and has no effect on the query.
Discontinue use of the
type parameter in
Having security disabled by default on basic and trial licenses is deprecated.
Elasticsearch security features are disabled by default when operating on a basic or trial license if
xpack.security.enabled is not set to
true. In Elasticsearch 8.0.0,
security features will be enabled by default for all licenses unless you
explicitly disable security by setting
Before migrating to Elasticsearch 8.0.0, you must explicitly set a value for
xpack.security.enabled or Elasticsearch will fail to start. If you have already
enabled security features by explicitly setting
true, your configuration will be respected in 8.0.0.
Otherwise, on every node in your cluster, enable Elasticsearch security features by
elasticsearch.yml. You then
configure security for the transport layer on each node, which requires
generating a certificate authority (if you don’t have one), creating node
security certificates, and configuring internode communication. Refer to
set up basic security for the Elastic Stack for steps on
Configuring a realm name with a leading underscore is deprecated.
Elasticsearch creates "synthetic" realm names on the fly for services like API keys. These synthetic realm names are prefixed with an underscore. Currently, user configured realms can also be given a name with a leading underscore. This creates confusion since realm names are meant to be unique for a node.
Configuring a realm name with a leading underscore is deprecated. In a future release of Elasticsearch it will result in an error on startup if any user configured realm has a name with a leading underscore.