// This assembly is included in the following assemblies:
//
// assembly-upgrade.adoc

[id='assembly-upgrade-kafka-{context}']
= Required upgrade sequence

To upgrade brokers and clients without downtime, you _must_ complete the Strimzi upgrade procedures in the following order:

. Update existing custom resources to support the `v1beta2` API version.
+
--
* xref:assembly-upgrade-resources-{context}[]
--
+
Do this after upgrading to Strimzi {ConvertAfterProductVersion}, but before upgrading to Strimzi {ConvertBeforeProductVersion} or newer.
For a multi-version upgrade from a version prior to version {ConvertAfterProductVersion}:
+
.. Skip this step and continue with the following steps to upgrade to version {ConvertAfterProductVersion}.
.. Return to this step and perform all the steps in this upgrade sequence to upgrade to {ConvertBeforeProductVersion} or newer.

. Update your Cluster Operator to a new Strimzi version.
+
--
* xref:proc-upgrading-the-co-{context}[]
--
+
The approach you take depends on how you xref:cluster-operator-{context}[deployed the Cluster Operator].
+
* If you deployed the Cluster Operator using the installation YAML files, perform your upgrade by modifying the Operator installation files, as described in xref:proc-upgrading-the-co-{context}[Upgrading the Cluster Operator].
+
* If you deployed the Cluster Operator from {OperatorHub}, use the Operator Lifecycle Manager (OLM) to change the update channel for the Strimzi Operators to a new Strimzi version.
+
Depending on your chosen upgrade strategy, after updating the channel, either:
+
** An automatic upgrade is initiated
+
** A manual upgrade will require approval before the installation begins
+
For more information on using {OperatorHub} to upgrade Operators, see the {OLMOperatorDocs}.
+
* If you deployed the Cluster Operator using a Helm chart, use `helm upgrade`.
+
The `helm upgrade` command does not upgrade the {HelmCustomResourceDefinitions}.
Install the new CRDs manually after upgrading the Cluster Operator.
You can access the CRDs from {ReleaseDownload} or find them in the `crd` subdirectory inside the Helm Chart.

. Upgrade all Kafka brokers and client applications to the latest supported Kafka version.
+
* xref:assembly-upgrading-kafka-versions-{context}[]
* xref:con-strategies-for-upgrading-clients-{context}[]

.Optional: incremental cooperative rebalance upgrade

Consider upgrading consumers and Kafka Streams applications to use the _incremental cooperative rebalance_ protocol for partition rebalances.

* xref:proc-upgrading-consumers-streams-cooperative-rebalancing_{context}[]
