:_mod-docs-content-type: CONCEPT

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

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

[role="_abstract"]
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.
+
Strimzi {ProductVersion} requires Kubernetes {KubernetesVersion}.
+
You can xref:con-upgrade-cluster-{context}[upgrade Kubernetes with minimal downtime].

. xref:con-migrate-kraft-pre-0.39-{context}[Ensure Kafka clusters are KRaft-based].
+
If upgrading from a version earlier than 0.39, you **must** migrate from ZooKeeper to KRaft *before* upgrading the Cluster Operator. Upgrades from ZooKeeper-based clusters are not supported.

. xref:con-api-conversion-v1-{context}[Prepare for v1 API conversion].
+
If upgrading from a version prior to 0.49, this requirement includes a `KafkaUser` update that **must** be done *before* upgrading the Cluster Operator. 

. xref:assembly-upgrade-{context}[Upgrade the Cluster Operator].

. Update the xref:proc-upgrade-kafka-kraft-{context}[Kafka `version` and `metadataVersion`].

NOTE: From Strimzi 0.39, upgrades and downgrades between KRaft-based clusters are supported.   