// 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:

. Make sure your Kubernetes cluster version is supported.
+
--
ifdef::StrimziUpgrades[]
Strimzi {ProductVersion} requires Kubernetes {KubernetesVersion}.
endif::StrimziUpgrades[]
ifndef::StrimziUpgrades[]
Strimzi {ProductVersion} requires OpenShift {OpenShiftVersion}.
endif::StrimziUpgrades[]
--
+
--
* xref:con-upgrade-cluster-{context}[]
--

. When upgrading from {ConvertAfterProductVersion} or earlier, update existing custom resources to support the `v1beta2` API version.
+
--
* xref:assembly-upgrade-resources-{context}[]
--

. Update your Cluster Operator to a new Strimzi version.
+
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}[]
