-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
MIG-1078: Update MTC 1.7 Compatibility guidelines #42576
Conversation
✅ Deploy Preview for osdocs ready!
To edit notification comments on pull requests, go to your Netlify site settings. |
c7ad518
to
40dde7d
Compare
@eriknelson Please review. |
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'm having a really hard time understanding this.
This section of the compatibility guidelines I think should be lifted practically verbatim. I'm open to reframing what we designate the channgel "stable" vs. "latest", but the language and details of this PR are not very accurate.
@@ -8,18 +8,45 @@ | |||
[id="migration-compatibility-guidelines_{context}"] | |||
= Compatibility guidelines | |||
|
|||
// Do we have a "What's New" section in the Release Notes? I'm wondering what, given the complicated support model we discuss here, is the motivation to upgrade from MTC 1.5/1.6 to MTC 1.7? Or is the usage model only: Install once, migrate, and that's it, you don't need MTC after that, so no need to 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.
What is the motivation to upgrade?
MTC 1.7 adds several new features that may be of interest, including in-place storageclass conversion that is not possible with 1.6.
* Legacy platforms are no longer supported. | ||
* You cannot install {mtc-short} 1.6 or {mtc-version} on legacy platforms, because the custom resource definition API versions are incompatible. | ||
//* You cannot install {mtc-short} 1.6 on {product-title} 4.5 or earlier versions, because the custom resource definition API versions are incompatible. | ||
* {mtc-short} 1.6 and later versions, including {mtc-version}, do not support the `MigrationController` custom resource and the {mtc-short} web console on legacy source clusters, which must run {mtc-short} {mtc-legacy-version-z}. So you must install {mtc-short} 1.6 or later, including {mtc-version}, on the destination cluster. |
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'm having a very hard time understanding what this is trying to say, but MTC 1.6 is only available via OLM on modern platforms which support v1 CRDs. This includes all MTC CRD's (there are many), of which MigrationController is one.
+ | ||
[NOTE] | ||
==== | ||
With {mtc-short} {mtc-version} or later, when migrating from a source cluster on a legacy platform to a destination cluster on a modern platform, use the `crane tunnel-api` command. See xxx. |
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 not true. The only time to use the crane tunnel-api is when:
- You want to use 1.7 to migrate from a legacy cluster to a modern cluster
2) The modern cluster does not have network connectivity by default to the legacy cluster.
If you are using the 1.5+1.6 stream, you may install 1.5 as a control cluster on the source legacy cluster, assuming that it's able to communicate with the target modern platform that is running 1.6.
This really should be treated as a small edge case.
|
||
{product-title} 4.5 and earlier are referred to as _legacy platforms_. {product-title} 4.6 and later are referred to as _modern platforms_. | ||
|
||
* Legacy platforms are no longer 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.
I don't understand this statement. Is this in reference to supported by openshift? Or supported by MTC?
It's not accurate to say that MTC does not support legacy platforms.
* Legacy platforms are no longer supported. | ||
* You cannot install {mtc-short} 1.6 or {mtc-version} on legacy platforms, because the custom resource definition API versions are incompatible. | ||
//* You cannot install {mtc-short} 1.6 on {product-title} 4.5 or earlier versions, because the custom resource definition API versions are incompatible. | ||
* {mtc-short} 1.6 and later versions, including {mtc-version}, do not support the `MigrationController` custom resource and the {mtc-short} web console on legacy source clusters, which must run {mtc-short} {mtc-legacy-version-z}. So you must install {mtc-short} 1.6 or later, including {mtc-version}, on the destination cluster. |
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.
- {mtc-short} 1.6 and later versions, including {mtc-version}, do not support the
MigrationController
custom resource and the {mtc-short} web console on legacy source clusters,
This is not an accurate statement. For several reasons, including CRD incompatibility (which MTC uses to comprise its API) 1.6 is not supported on legacy platforms.
* Legacy platforms are no longer supported. | ||
* You cannot install {mtc-short} 1.6 or {mtc-version} on legacy platforms, because the custom resource definition API versions are incompatible. | ||
//* You cannot install {mtc-short} 1.6 on {product-title} 4.5 or earlier versions, because the custom resource definition API versions are incompatible. | ||
* {mtc-short} 1.6 and later versions, including {mtc-version}, do not support the `MigrationController` custom resource and the {mtc-short} web console on legacy source clusters, which must run {mtc-short} {mtc-legacy-version-z}. So you must install {mtc-short} 1.6 or later, including {mtc-version}, on the destination cluster. |
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.
So you must install {mtc-short} 1.6 or later, including {mtc-version}, on the destination cluster.
I would eliminate "destination cluster". Source or destination cluster is not really relevant when it comes to compatibility decisions.
==== | ||
With {mtc-short} {mtc-version} or later, when migrating from a source cluster on a legacy platform to a destination cluster on a modern platform, use the `crane tunnel-api` command. See xxx. | ||
==== | ||
// You can migrate workloads from a source cluster with {mtc-short} {mtc-legacy-version-z} to a target cluster with {mtc-short} {mtc-version} as long as the `MigrationController` custom resource and the {mtc-short} web console are running on the destination cluster. |
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 MigrationController
resource is simply a CR reconciled by the operator to install MTC components. It will always be present regardless of whether the cluster is a source or a target. This also isn't really an accurate statement. The controller does not necessarily have to be a destination cluster.
https://github.com/konveyor/mig-operator/blob/master/docs/usage/AlternativeCAMTopologies.md
88aeda0
to
b7c2179
Compare
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.
Getting closer, I noticed some things missing / incomplete.
|
||
You can migrate workloads from a source cluster with {mtc-short} {mtc-legacy-version-z} to a target cluster with {mtc-short} {mtc-version} as long as the `MigrationController` custom resource and the {mtc-short} web console are running on the target cluster. | ||
legacy platform:: {product-title} 4.5 and earlier |
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 reason these are all lowercased? Some kind of guideline?
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.
@eriknelson
Just convention. For example, see the glossary of terms here: https://redhat-documentation.github.io/supplementary-style-guide/#_a
These words are not proper nouns, so lower case seems more appropriate.
You can migrate workloads from a source cluster with {mtc-short} {mtc-legacy-version-z} to a target cluster with {mtc-short} {mtc-version} as long as the `MigrationController` custom resource and the {mtc-short} web console are running on the target cluster. | ||
legacy platform:: {product-title} 4.5 and earlier | ||
modern platform:: {product-title} 4.6 and later | ||
legacy operator:: The {mtc-short} Operator installed on a legacy platform |
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.
Suggestion: designed for legacy platforms.
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.
Fixed.
legacy platform:: {product-title} 4.5 and earlier | ||
modern platform:: {product-title} 4.6 and later | ||
legacy operator:: The {mtc-short} Operator installed on a legacy platform | ||
modern operator:: The {mtc-short} Operator installed |
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 isn't complete, I'd also suggest: designed for modern platforms.
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.
Fixed.
==== | ||
Edge cases exist in which network restrictions prevent modern clusters from connecting to other clusters involved in the migration. For example, when migrating from an {product-title} 3.11 cluster on premises to a modern {product-title} cluster in the cloud, where the modern cluster cannot connect to the {product-title} 3.11 cluster. | ||
|
||
With {mtc-short} {mtc-version}, if one of the remote clusters is unable to communicate with the control cluster because of network restrictions, use the `crane tunnel-api` command. |
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 missing the second piece that you and I talked about here regarding stable:
With the stable MTC release, although you should always designate the most modern cluster as the control cluster, in this specific case it is possible to designate the legacy cluster as the control cluster and push workloads to the remote cluster.
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.
@eriknelson Fixed. Please approve.
8c91f03
to
e5813a3
Compare
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, thanks for working with me on this @stoobie
You can migrate workloads from a source cluster with {mtc-short} {mtc-legacy-version-z} to a target cluster with {mtc-short} {mtc-version} as long as the `MigrationController` custom resource and the {mtc-short} web console are running on the target cluster. | ||
legacy platform:: {product-title} 4.5 and earlier | ||
modern platform:: {product-title} 4.6 and later | ||
legacy operator:: The {mtc-short} Operator designed for legacy platforms |
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.
legacy operator:: The {mtc-short} Operator designed for legacy platforms | |
legacy operator:: The {mtc-short} Operator designed for legacy platforms. |
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.
Fixed.
legacy platform:: {product-title} 4.5 and earlier | ||
modern platform:: {product-title} 4.6 and later | ||
legacy operator:: The {mtc-short} Operator designed for legacy platforms | ||
modern operator:: The {mtc-short} Operator designed for modern platforms |
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.
modern operator:: The {mtc-short} Operator designed for modern platforms | |
modern operator:: The {mtc-short} Operator designed for modern platforms. |
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.
Fixed.
modern platform:: {product-title} 4.6 and later | ||
legacy operator:: The {mtc-short} Operator designed for legacy platforms | ||
modern operator:: The {mtc-short} Operator designed for modern platforms | ||
control cluster:: The cluster that runs the {mtc-short} controller and GUI |
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.
control cluster:: The cluster that runs the {mtc-short} controller and GUI | |
control cluster:: The cluster that runs the {mtc-short} controller and GUI. |
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.
Fixed.
|
||
You can migrate workloads from a source cluster with {mtc-short} {mtc-legacy-version-z} to a target cluster with {mtc-short} {mtc-version} as long as the `MigrationController` custom resource and the {mtc-short} web console are running on the target cluster. | ||
legacy platform:: {product-title} 4.5 and earlier | ||
modern platform:: {product-title} 4.6 and 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.
modern platform:: {product-title} 4.6 and later | |
modern platform:: {product-title} 4.6 and 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.
Fixed.
@@ -10,16 +10,45 @@ | |||
|
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.
While you are here, please add a content type attribute in the metadata: :_content-type: <TYPE>
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.
Fixed.
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.
Fixed.
|
||
You can migrate workloads from a source cluster with {mtc-short} {mtc-legacy-version-z} to a target cluster with {mtc-short} {mtc-version} as long as the `MigrationController` custom resource and the {mtc-short} web console are running on the target cluster. | ||
legacy platform:: {product-title} 4.5 and earlier |
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.
legacy platform:: {product-title} 4.5 and earlier | |
legacy platform:: {product-title} 4.5 and earlier. |
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.
Fixed.
@stoobie Just a couple of minor suggestions. Also - does QE need to ack this? |
@mjpytlak Thanks for the suggestions, and I'll ask QE to take a look. I know that this is an OCP requirement. |
Thanks @stoobie peer review LGTM. |
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
@stillalearner: changing LGTM is restricted to collaborators In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
@mjpytlak Please merge. MTC 1.7 is now live. |
Labeling and merging per @mjpytlak via Slack 👍 ...and of course I saw the 2 commits the split-second I took my finger off the mouse button 😩 |
This PR addresses https://issues.redhat.com/browse/MIG-1078.
This applies to:
enterprise-4.10 and later
Preview:
https://deploy-preview-42576--osdocs.netlify.app/openshift-enterprise/latest/migrating_from_ocp_3_to_4/installing-3-4.html#migration-compatibility-guidelines_installing-3-4
Updated: