[[setup-upgrade]]
= Upgrade {es}

{es} clusters can usually be upgraded one node at a time so
upgrading does not interrupt service. To upgrade to 8.0 or later, 
**you must first upgrade to {prev-major-last}**, even if you opt to
do a full-cluster restart instead of a rolling upgrade. 

This enables you to use the **Upgrade Assistant** to identify and resolve issues,
reindex indices created before 7.0, and then perform a rolling upgrade.

You must resolve all critical issues before proceeding with the upgrade.

For upgrade instructions, see {stack-ref}/upgrading-elastic-stack.html[Upgrading to Elastic {version}].

[discrete]
[[upgrade-index-compatibility]]
=== Index compatibility

{es} can read indices created in the previous major version. If you
have indices created in 6.x or earlier, you must reindex or delete them
before upgrading to {version}. {es} nodes will fail to start if
incompatible indices are present. Snapshots of 6.x or earlier indices cannot be
restored to a 8.x cluster even if they were created by a 7.x cluster. 
The **Upgrade Assistant** in {prev-major-last} identifies any indices 
that need to be reindexed or removed.

[discrete]
[[upgrade-rest-api-compatibility]]
=== REST API compatibility

REST API compatibility in a per-request opt-in feature that can help REST clients
mitigate non compatible (breaking) changes to the REST API.
See <<rest-api-compatibility>> for additional information.

[discrete]
[[upgrade-fips-java17]]
=== FIPS Compliance and Java 17

include::{xes-repo-dir}/security/fips-java17.asciidoc[]

include::upgrade/archived-settings.asciidoc[]
