-
Notifications
You must be signed in to change notification settings - Fork 99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Documentation for LTS Upgradeability #1103
Conversation
Initial draft, based on PRD and TDD, and the resulting Documentation Plan
✅ Deploy Preview for hardcore-allen-f5257d ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
* Ensure that the <<hazelcast-members-compatibility-guarantees,Compatibility Guarantees>> cover your requirements | ||
* If the minimum version of JDK has changed between releases, <<updated-jdk,upgrade the JDK version>> before starting a rolling upgrade | ||
* If you used Hazelcast Operator to deploy your cluster, refer to the link:https://docs.hazelcast.com/operator/latest/scaling-upgrading#upgrading[Operator documentation, window=_blank] | ||
* If using Hazelcast Management Center to trigger your rolling upgrade, upgrade Management Center before upgrading your members. For information on upgrading Management Center, refer to the link:https://docs.hazelcast.com/management-center/5.4/getting-started/install[Management Center documentation, window=_blank] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a specific upgrade page we can link to instead of the getting started?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the Installing and Starting page, under the Getting Started section; the Upgrading page only lists the changelog, so as far as I can see, this is the only relevant page....
I've also added a link to the Operator docs for K8s users
* If you used Hazelcast Operator to deploy your cluster, refer to the link:https://docs.hazelcast.com/operator/latest/scaling-upgrading#upgrading[Operator documentation, window=_blank] | ||
* If using Hazelcast Management Center to trigger your rolling upgrade, upgrade Management Center before upgrading your members. For information on upgrading Management Center, refer to the link:https://docs.hazelcast.com/management-center/5.4/getting-started/install[Management Center documentation, window=_blank] | ||
* If using the `hz-cluster-admin` script to update your cluster, enable the `CLUSTER_WRITE` endpoints in the REST API. For further information on the REST API, see xref:maintain-cluster:rest-api.adoc#using-the-rest-endpoint-groups[REST API] | ||
* Plan sufficient time for the migration and upgrade to complete, and remember that members cannot join or leave during the upgrade |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i wonder what you mean by join or leave during the upgrade. The restarts are also counted as joins & leaves technically
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reworded to "the members cannot change during the upgrade"
@@ -107,6 +134,12 @@ include::clients:partial$rest-deprecation.adoc[] | |||
|
|||
The cluster is now operating on the new codebase version: Both the codebase version and the cluster version have been upgraded. | |||
|
|||
=== Restart Members on Previous Version | |||
|
|||
If you experience any issues during the rolling upgrade, you can recover to the previous version by restarting the members. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we are testing this 5.2-5.4 source versions to 5.5 target versio. So should we add a note about this is supported only for LTS upgrades? In the future (post 5.5) though, it'll be supported for one-minor upgrades as well as I know.
the point is, we don't test roll back in 5.2 -> 5.3 and similar upgrades
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Moved to LTS-specific page; we can worry about future changes to behaviour when we get there
You can upgrade directly to the latest release in the following circumstances: | ||
|
||
* Your current version is no more than one minor version below the current release | ||
* The latest release is an xref:migrate:lts.adoc[LTS release] and your current version is among those supported |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, and fyi the current supported version will be only the previous LTS and the previous minor in the future. For now it's 5.2-5.4 for 5.5.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggesting using source
and target
wherever possible. e.g. Your source version is no more than one minor version below the current release (target)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Amended
docs/modules/migrate/pages/lts.adoc
Outdated
|
||
LTS releases have been introduced with 5.5. You can upgrade directly from 5.2 or later to 5.5 without the need to upgrade to each release between your current version and the LTS release. | ||
|
||
NOTE: Any features that are marked as Beta in your current version, or any intermediate version, are not upgraded. This is due to changes that can occur between the Beta and general availability releases. If a Beta feature has been updated or made generally available in the LTS releae, that feature is included in the LTS release. For further information on rolling upgrade compatibilities, see xref:maintain-cluster:rolling-upgrades.adoc#hazelcast-members-compatibility-guarantees[Compatibility Guarantees]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
note: if you upgrade the beta question part in the rolling-upgrades page, you should also change here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
amended
docs/modules/migrate/pages/lts.adoc
Outdated
|Released every two years | ||
|Released at least twice each year | ||
|
||
|Upgrade directly from the previous LTS, or from the last available STS release |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|Upgrade directly from the previous LTS, or from the last available STS release | |
|Upgrade directly from the previous LTS, or from the last available STS before the LTS release |
If we don't add this, is this ambiguous? for example, last STS is 5.7 and last LTS is 5.5, then is "upgrade" (well actually downgrade :D) from 5.7 -> 5.5 possible? Probably, I am overthinking it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you are overthinking, but I have reworded to be more explicit (I hope)
docs/modules/migrate/pages/lts.adoc
Outdated
|LTS member identifies that two different minor versions are already in the cluster and rejects joining the cluster | ||
|=== | ||
|
||
The following scenario is not supported: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we say it's not supported but we also say "Member joins the cluster" for the 5.3 member below?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It comes from the TDD: https://hazelcast.atlassian.net/wiki/spaces/PM/pages/4903993364/TDD+LTS+Upgradability#Mixed-version-clusters
It is a difficult once to cover in a positive way, I have amended, but any suggestions are more than welcome!
|
||
As newer JDK releases contain improvements, we recommend that you upgrade to a newer JDK version where xref:deploy:versioning-compatibility.adoc#supported-java-virtual-machines[supported]. | ||
|
||
Upgrade the JDK version before upgrading your members if support for the JDK version has changed between your current and planned cluster versions. For example, in 5.2 JDK 8 was supported, but 5.5 supports only JDK 17 or later. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Upgrade the JDK version before upgrading your members if support for the JDK version has changed between your current and planned cluster versions. For example, in 5.2 JDK 8 was supported, but 5.5 supports only JDK 17 or later. | |
Upgrade the JDK version before upgrading your members if support for the JDK version has changed between your current and planned cluster versions. For example, in 5.2 JDK 8 or later was supported, but 5.5 supports only JDK 17 or later. |
To make it cleare that there is an overlap of supported JDK versions.
docs/modules/migrate/pages/lts.adoc
Outdated
|
||
{description} | ||
|
||
LTS releases have been introduced with 5.5. You can upgrade directly from 5.2 or later to 5.5 without the need to upgrade to each release between your current version and the LTS release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we specify that they should upgrade from the latest patch of each release line? We only test latest patch (at the time of the release).
docs/modules/migrate/pages/lts.adoc
Outdated
|
||
=== Restart Members on Previous Version | ||
|
||
If you experience any issues during the rolling upgrade, you can recover to the previous version by restarting the members. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This can be done only if the version hasn't been upgraded (either automaticaly or via API/script).
|
||
a|* IMap data structure. This includes the API, configuration options, and persistence | ||
* CP subsystem. This inclues the API and peristence | ||
* WAN replication. Ongoing replication is supported during the upgrade. This includes both source and target; however, the source and the target cannot be upgraded simultaneously |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We tested replication to clusters 5.2+ during the RU, not to earlier clusters. So we should specify we support only that.
Including Avtar's responses in the Slack thread
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Coupla minor typos and a few minor suggestions and comments but pre-approving
@@ -5,6 +5,18 @@ | |||
|
|||
{description} | |||
|
|||
== Best Practices | |||
|
|||
Before starting a rolling upgrade, consider the following best practises: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Before starting a rolling upgrade, consider the following best practises: | |
Before starting a rolling upgrade, consider the following best practices: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dagnamit! When will those US English practitioners learn how to use words properly ;-)
|
||
* Ensure that the <<hazelcast-members-compatibility-guarantees,Compatibility Guarantees>> cover your requirements | ||
* If the minimum version of JDK has changed between releases, <<updated-jdk,upgrade the JDK version>> before starting a rolling upgrade | ||
* If you used Hazelcast Operator to deploy your cluster, refer to the link:https://docs.hazelcast.com/operator/latest/scaling-upgrading#upgrading[Operator documentation, window=_blank] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Trying to avoid a big naming thread but should 1st ref be Hazelcast Platform Operator? I might be out of date on this...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The (last) rename that I saw dropped Platform to make it just Hazelcast Operator - and this also matches the [current] naming in the side nav of the docs.
Actually, I think the last one I saw was Hazelcast Enterprise Operator, but Platform was definitely not part of the name.
I suggest leaving as is - if it needs to be changed, we can do that anytime.
* If the minimum version of JDK has changed between releases, <<updated-jdk,upgrade the JDK version>> before starting a rolling upgrade | ||
* If you used Hazelcast Operator to deploy your cluster, refer to the link:https://docs.hazelcast.com/operator/latest/scaling-upgrading#upgrading[Operator documentation, window=_blank] | ||
* If using Hazelcast Management Center to trigger your rolling upgrade, upgrade Management Center before upgrading your members. For information on upgrading Management Center, refer to the link:https://docs.hazelcast.com/management-center/5.4/getting-started/install[Management Center documentation, window=_blank], or if you deployed Management Center using the Hazelcast Operator, refer to the link:https://docs.hazelcast.com/operator/latest/deploy-management-center.adoc[Operator documentation, window=_blank] | ||
* If using the `hz-cluster-admin` script to update your cluster, enable the `CLUSTER_WRITE` endpoints in the REST API. For further information on the REST API, see xref:maintain-cluster:rest-api.adoc#using-the-rest-endpoint-groups[REST API] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Which REST API page should this be? The new enterprise-rest-api or the old legacy one (you've linked here)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@frant-hartm @srknzl can you guide me on this one? Ta!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The new REST API supports changing the version, so it should be the new one. However, I don't see the change version endpoint in the docs yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added a link to the Enterprise REST API topic, and added Community to the existing link; if the new REST API adds a better place to link to, we can adjust it later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @rebekah-lawrence I'm informed that old REST api is deprecated in the upcoming 5.5 release, so we should start referring to the new documentaiton instead.
There's a swagger API documentation page with all endpoints. The new REST API's reference manual may be a bit missing right now @frant-hartm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@srknzl yes, I added a link to the new REST API as well as the existing in the final updates. The swagger docs are going to be embedded in the docs, I believe. If the link needs to be updated before 5.5 goes live I will take care of it.
Thanks for mentioning it, though, just to keep it fresh in my mind - I've added a note to the docs Jira to double-check the link destinations once the REST API doc updates are merged.
@@ -48,8 +60,23 @@ As a result, you can use rolling upgrades to upgrade clusters to the following m | |||
+ | |||
This also includes the ability of rolling upgrade from Hazelcast IMDG 4.2 to Platform 5.0, since IMDG is part of the Platform and 5.0 is considered to be the next minor version after IMDG 4.2. | |||
|
|||
- Releases from 5.2 to 5.4, directly to the 5.5 Long-term Support (LTS) release. For further information on additional compatibilities for direct-to-LTS rolling upgrades, see xref:migrate:lts.adoc[]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- Releases from 5.2 to 5.4, directly to the 5.5 Long-term Support (LTS) release. For further information on additional compatibilities for direct-to-LTS rolling upgrades, see xref:migrate:lts.adoc[]. | |
- Directly to the 5.5 Long-term Support (LTS) release from releases 5.2 through 5.4. For further information on additional compatibilities for direct-to-LTS rolling upgrades, see xref:migrate:lts.adoc[]. |
Reads a little awkwardly with the source releases at front, just a suggestion...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed to: The 5.5 Long-term Support (LTS) release direct from 5.2.x to 5.4.x.
Which is actually better for list parallelism as well as readability! Good catch.
docs/modules/migrate/pages/lts.adoc
Outdated
|
||
{description} | ||
|
||
LTS releases have been introduced with 5.5. You can upgrade directly from 5.2.x or later to 5.5 without the need to upgrade to each release between your current version and the LTS release. We recommend that you upgrade to 5.5 from the latest available patch for your current release. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know the context is already Platform but with the various product/version combinations in this section, is it worth being explicit with?
LTS releases have been introduced with 5.5. You can upgrade directly from 5.2.x or later to 5.5 without the need to upgrade to each release between your current version and the LTS release. We recommend that you upgrade to 5.5 from the latest available patch for your current release. | |
LTS releases have been introduced with Hazelcast Platform 5.5. You can upgrade directly from 5.2.x or later to 5.5 without the need to upgrade to each release between your current version and the LTS release. We recommend that you upgrade to 5.5 from the latest available patch for your current release. |
|Choose if you value new features over stability, you are willing to upgrade several times a year, and you are happy with maintenance support for the life of the STS | ||
|=== | ||
|
||
== Hazelcast 5.5 LTS |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it just Hazelcast 5.5 in this context?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This time, yes, as it is being introduced in 5.5 - however, my thought process was that in the future people might upgrade first to the 5.5 LTS, then to the [6.5] LTS, so sections would be required going forward for each usable LTS release........
docs/modules/migrate/pages/lts.adoc
Outdated
* CP subsystem. This inclues the API and peristence | ||
* WAN replication. Ongoing replication is supported during the upgrade. This includes both source and target; however, the source and the target cannot be upgraded simultaneously | ||
|
||
NOTE: Replication has been tested for 5.2 or later clusters only. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But context for this line is only versions 5.2 and 5.3 anyway - does this add anything?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added from a comment from @frant-hartm - but a fair point.
What do you think, @frant-hartm, or did I miss the point of your original comment?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When there is WAN replication you have 2 clusters and 3 different versions.
from version of cluster A (any of 5.2, 5.3, 5.4),
to version of cluster A
version of cluster B - this could be any Hazelcast version 4.0-5.4.
We tested only 5.2, 5.3 and 5.4 for cluster B.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Expanded to "NOTE: Hazelcast has tested WAN Replication to validate the upgrade solution. The test covered two clusters of different versions; for scenarios where WAN Replication is used from a cluster with a version or 5.2, 5.3, or 5.4 to another cluster with a version between 4.0 and 5.4, only the replication to clusters of version 5.2 or later have been tested."
docs/modules/migrate/pages/lts.adoc
Outdated
|
||
=== Restart Members on Previous Version | ||
|
||
If an automatic upgrade, an upgrade using the API, or using a script has not successfully upgraded the version, you can recover to the previous version by restarting the members. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If an automatic upgrade, an upgrade using the API, or using a script has not successfully upgraded the version, you can recover to the previous version by restarting the members. | |
If an automatic upgrade, or an upgrade using the API or script, has not successfully upgraded the version, you can recover to the previous version by restarting the members. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I wrote and rewrote this sentence! Your version is how I had it originally, but I felt the commas spoiled the flow.
I'm going to rejig this as follows:
If the version has not successfully upgraded following an upgrade, you can recover to the previous version by restarting the members. This is the case whether the upgrade was done automatically, using the API, or using a script.
docs/modules/migrate/pages/lts.adoc
Outdated
|Released every two years | ||
|Released at least twice each year | ||
|
||
|Upgrade directly from the previous LTS, or from the STS release that precedes the latest LTS release |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Upgrade directly from the previous LTS, or from the STS release that precedes the latest LTS release
@frant-hartm should this be "Upgrade directly from the previous LTS" only? I think for 5.5 we are making an exception and make it work for "Upgrade directly from the previous LTS, or from the STS release that precedes the latest LTS release"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But surely there is no previous STS or LTS for 5.5 - and we have covered this in the remaining text?
This table covers the logic/behaviour for LTS/STS releases as they will be - it was difficult to convey the idea without getting bogged down in the initial implementation where there are no other LTS or STS releases avaialbe.
We could be specific for this release and say something like:
For the initial LTS release with 5.5, you can upgrade directly from 5.2.x or later.
In future LTS releases, you can
Of course, this then raises the question of whether we need to add something like (when available) or (available from release ????) in the STS header.
Then this additional wording can be stripped as we progress through the availability of STS releases and further LTS releases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm from my perspective
Initial draft, based on PRD and TDD, and the resulting Documentation Plan