// Module included in the following assemblies:
//
// assembly-using-the-cluster-operator.adoc

[id='ref-operator-cluster-feature-gate-releases-{context}']
= Feature gate releases

[role="_abstract"]
Feature gates have three stages of maturity:

* Alpha — typically disabled by default
* Beta — typically enabled by default
* General Availability (GA) — typically always enabled

Alpha stage features might be experimental or unstable, subject to change, or not sufficiently tested for production use.
Beta stage features are well tested and their functionality is not likely to change.
GA stage features are stable and should not change in the future.
Alpha and beta stage features are removed if they do not prove to be useful.

* The `ControlPlaneListener` feature gate moved to GA stage in Strimzi 0.32. It is now permanently enabled and cannot be disabled.
* The `ServiceAccountPatching` feature gate moved to GA stage in Strimzi 0.30. It is now permanently enabled and cannot be disabled.
* The `UseStrimziPodSets` feature gate moved to GA stage in Strimzi 0.35 and the support for StatefulSets is completely removed. It is now permanently enabled and cannot be disabled.
* The `UseKRaft` feature gate is available for development only and does not currently have a planned release for moving to the beta phase.
* The `StableConnectIdentities` feature gate is in alpha stage and is disabled by default.
  It is expected to move to beta phase and be enabled by default from Strimzi 0.37.
* The `KafkaNodePools` feature gate is in alpha stage and is disabled by default.
  It is expected to move to beta phase and be enabled by default from Strimzi 0.39.

NOTE: Feature gates might be removed when they reach GA. This means that the feature was incorporated into the Strimzi core features and can no longer be disabled.

.Feature gates and the Strimzi versions when they moved to alpha, beta, or GA
[cols="4*",options="header",stripes="none",separator=¦]
|===

¦Feature gate
¦Alpha
¦Beta
¦GA

¦`ControlPlaneListener`
¦0.23
¦0.27
¦0.32

¦`ServiceAccountPatching`
¦0.24
¦0.27
¦0.30

¦`UseStrimziPodSets`
¦0.28
¦0.30
¦0.35

¦`UseKRaft`
¦0.29
¦ -
¦ -

¦`StableConnectIdentities`
¦0.34
¦0.37 (planned)
¦ -

¦`KafkaNodePools`
¦0.36
¦0.39 (planned)
¦ -

|===

If a feature gate is enabled, you may need to disable it before upgrading or downgrading from a specific Strimzi version.
The following table shows which feature gates you need to disable when upgrading or downgrading Strimzi versions.

.Feature gates to disable when upgrading or downgrading Strimzi
[cols="3*",options="header",stripes="none",separator=¦]
|===

¦Disable Feature gate
¦Upgrading from Strimzi version
¦Downgrading to Strimzi version

¦`ControlPlaneListener`
¦0.22 and earlier
¦0.22 and earlier

¦`UseStrimziPodSets`
¦-
¦0.27 and earlier

¦`StableConnectIdentities`
¦-
¦0.33 and earlier

|===
