Skip to content

Commit cb92da5

Browse files
authored
Merge pull request #2123 from rabbitmq/clarify-which-feature-flags-to-enable-on-upgrade
upgrade: Clarify which feature flags to enable on upgrade
2 parents 5c96979 + 6413c6b commit cb92da5

File tree

2 files changed

+17
-16
lines changed

2 files changed

+17
-16
lines changed

docs/upgrade.md

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,6 @@ import TabItem from '@theme/TabItem';
2323

2424
# Upgrading RabbitMQ
2525

26-
:::important
27-
You can only upgrade to RabbitMQ 4.0 from RabbitMQ 3.13.
28-
29-
Moreover, [feature flags have to be enabled](./feature-flags#how-to-enable-feature-flags) **before** the upgrade. The upgrade will fail if you miss this step.
30-
:::
31-
3226
## Upgrade Strategies {#strategies}
3327

3428
There are three major upgrade strategies that can be used with RabbitMQ. Below you'll find a brief overview
@@ -47,7 +41,7 @@ Refer to the [rolling upgrade guide](./rolling-upgrade) page for more details, b
4741
* check [version upgradability](#rabbitmq-version-upgradability)
4842
* check [Erlang version requirements](#rabbitmq-erlang-version-requirement)
4943
* check [the release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.0.0)
50-
* verify that all stable [feature flags are enabled](./feature-flags#how-to-enable-feature-flags)
44+
* verify that all [stable feature flags are enabled](./feature-flags#how-to-enable-feature-flags)
5145
* Check that the node or cluster is in a good state in order to be upgraded
5246
* no [alarms](./alarms) are in effect
5347
* no ongoing queue or stream replica sync operations
@@ -57,7 +51,7 @@ Refer to the [rolling upgrade guide](./rolling-upgrade) page for more details, b
5751
* upgrade RabbitMQ and, if applicable, Erlang
5852
* start the node
5953
* watch [monitoring and health check](./monitoring) data to assess the health and recovery of the upgraded node and cluster
60-
* Once all nodes are upgraded, [enable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
54+
* Once all nodes are upgraded, [enable stable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
6155

6256
### Blue-Green Deployment
6357

@@ -117,7 +111,7 @@ following steps. Consider a three node cluster with nodes A, B, and C:
117111
* the system is otherwise under a reasonable load
118112
* Remove node A from the cluster using `rabbitmqctl forget_cluster_node`
119113
* Repeat the steps above for the other nodes; in a 3-node cluster example, the cluster should now consist of nodes D, E and F
120-
* [Enable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
114+
* [Enable stable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
121115

122116
Multiple nodes can be added and removed at a time.
123117

@@ -138,7 +132,7 @@ The following shows the supported upgrade paths.
138132

139133
| From | To | Notes |
140134
|----------|--------|---------------------------------------------------------------|
141-
| 3.13.x | 4.0.x | All feature flags **must** be enabled **before** the upgrade |
135+
| 3.13.x | 4.0.x | All stable feature flags **must** be enabled **before** the upgrade |
142136
| 3.12.x | 3.13.x | |
143137
| 3.11.18 | 3.12.x | All feature flags **must** be enabled **before** the upgrade |
144138
| 3.10.x | 3.11.x | All feature flags **must** be enabled **before** the upgrade |

versioned_docs/version-4.0/upgrade.md

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,14 @@ import TabItem from '@theme/TabItem';
2626
:::important
2727
You can only upgrade to RabbitMQ 4.0 from RabbitMQ 3.13.
2828

29-
Moreover, [feature flags have to be enabled](./feature-flags#how-to-enable-feature-flags) **before** the upgrade. The upgrade will fail if you miss this step.
29+
Moreover, [stable feature flags have to be
30+
enabled](./feature-flags#how-to-enable-feature-flags) **before** the upgrade.
31+
The upgrade will fail if you miss this step.
32+
33+
Note that the `khepri_db` feature flag must not be enabled in 3.13.x because it
34+
was experimental and unsupported. If a 3.13.x node or cluster has `khepri_db`
35+
enabled, upgrading to 4.x is not possible. In this case, the solution is to use
36+
a [blue-green deployment](./blue-green-upgrade) to migrate to RabbitMQ 4.x.
3037
:::
3138

3239
## Upgrade Strategies {#strategies}
@@ -47,7 +54,7 @@ Refer to the [rolling upgrade guide](./rolling-upgrade) page for more details, b
4754
* check [version upgradability](#rabbitmq-version-upgradability)
4855
* check [Erlang version requirements](#rabbitmq-erlang-version-requirement)
4956
* check [the release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.0.0)
50-
* verify that all stable [feature flags are enabled](./feature-flags#how-to-enable-feature-flags)
57+
* verify that all [stable feature flags are enabled](./feature-flags#how-to-enable-feature-flags)
5158
* Check that the node or cluster is in a good state in order to be upgraded
5259
* no [alarms](./alarms) are in effect
5360
* no ongoing queue or stream replica sync operations
@@ -57,7 +64,7 @@ Refer to the [rolling upgrade guide](./rolling-upgrade) page for more details, b
5764
* upgrade RabbitMQ and, if applicable, Erlang
5865
* start the node
5966
* watch [monitoring and health check](./monitoring) data to assess the health and recovery of the upgraded node and cluster
60-
* Once all nodes are upgraded, [enable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
67+
* Once all nodes are upgraded, [enable stable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
6168

6269
### Blue-Green Deployment
6370

@@ -108,7 +115,7 @@ following steps. Consider a three node cluster with nodes A, B, and C:
108115
that also means that these two versions cannot coexist in a single cluster
109116
* check [Erlang version requirements](#rabbitmq-erlang-version-requirement)
110117
* check [the release notes](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.0.0)
111-
* Add a new node, node D, to the cluster (note, you may need to [disable new feature flags](feature-flags#how-to-start-new-node-disabled-feature-flags)
118+
* Add a new node, node D, to the cluster (note, you may need to [start the node with feature flags disabled](feature-flags#how-to-start-new-node-disabled-feature-flags)
112119
for node D to be able to join the cluster)
113120
* Place a new replica of every quorum queue and every stream on the new node
114121
* Check that the node or cluster is in a good state
@@ -117,7 +124,7 @@ following steps. Consider a three node cluster with nodes A, B, and C:
117124
* the system is otherwise under a reasonable load
118125
* Remove node A from the cluster using `rabbitmqctl forget_cluster_node`
119126
* Repeat the steps above for the other nodes; in a 3-node cluster example, the cluster should now consist of nodes D, E and F
120-
* [Enable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
127+
* [Enable stable feature flags](./feature-flags#how-to-enable-feature-flags) introduced in the new version
121128

122129
Multiple nodes can be added and removed at a time.
123130

@@ -138,7 +145,7 @@ The following shows the supported upgrade paths.
138145

139146
| From | To | Notes |
140147
|----------|--------|---------------------------------------------------------------|
141-
| 3.13.x | 4.0.x | All feature flags **must** be enabled **before** the upgrade |
148+
| 3.13.x | 4.0.x | All stable feature flags **must** be enabled **before** the upgrade |
142149
| 3.12.x | 3.13.x | |
143150
| 3.11.18 | 3.12.x | All feature flags **must** be enabled **before** the upgrade |
144151
| 3.10.x | 3.11.x | All feature flags **must** be enabled **before** the upgrade |

0 commit comments

Comments
 (0)