Chapter 5. Upgrading the Migration Toolkit for Containers
You can upgrade the Migration Toolkit for Containers (MTC) on OpenShift Container Platform 4.18 by using Operator Lifecycle Manager.
You can upgrade MTC on OpenShift Container Platform 4.5, and earlier versions, by reinstalling the legacy Migration Toolkit for Containers Operator.
If you are upgrading from MTC version 1.3, you must perform an additional procedure to update the MigPlan custom resource (CR).
5.1. Upgrading the Migration Toolkit for Containers on OpenShift Container Platform 4.18 Copy linkLink copied to clipboard!
You can upgrade the Migration Toolkit for Containers (MTC) on OpenShift Container Platform 4.18 by using the Operator Lifecycle Manager.
When upgrading the MTC by using the Operator Lifecycle Manager, you must use a supported migration path.
Migration paths
- Migrating from OpenShift Container Platform 3 to OpenShift Container Platform 4 requires a legacy MTC Operator and MTC 1.7.x.
- Migrating from MTC 1.7.x to MTC 1.8.x is not supported.
You must use MTC 1.7.x to migrate anything with a source of OpenShift Container Platform 4.9 or earlier.
- MTC 1.7.x must be used on both source and destination.
MTC 1.8.x only supports migrations from OpenShift Container Platform 4.10 or later to OpenShift Container Platform 4.10 or later. For migrations only involving cluster versions 4.10 and later, either 1.7.x or 1.8.x may be used. However, it must be the same MTC version on both source & destination.
- Migration from source MTC 1.7.x to destination MTC 1.8.x is unsupported.
- Migration from source MTC 1.8.x to destination MTC 1.7.x is unsupported.
- Migration from source MTC 1.7.x to destination MTC 1.7.x is supported.
- Migration from source MTC 1.8.x to destination MTC 1.8.x is supported
Prerequisites
-
You must be logged in as a user with
cluster-adminprivileges.
Procedure
In the OpenShift Container Platform console, navigate to Operators
Installed Operators. Operators that have a pending upgrade display an Upgrade available status.
- Click Migration Toolkit for Containers Operator.
- Click the Subscription tab. Any upgrades requiring approval are displayed next to Upgrade Status. For example, it might display 1 requires approval.
- Click 1 requires approval, then click Preview Install Plan.
- Review the resources that are listed as available for upgrade and click Approve.
-
Navigate back to the Operators
Installed Operators page to monitor the progress of the upgrade. When complete, the status changes to Succeeded and Up to date. -
Click Workloads
Pods to verify that the MTC pods are running.
5.2. Upgrading the Migration Toolkit for Containers to 1.8.0 Copy linkLink copied to clipboard!
To upgrade the Migration Toolkit for Containers to 1.8.0, complete the following steps.
Procedure
Determine subscription names and current channels to work with for upgrading by using one of the following methods:
Determine the subscription names and channels by running the following command:
oc -n openshift-migration get sub
$ oc -n openshift-migration get subCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME PACKAGE SOURCE CHANNEL mtc-operator mtc-operator mtc-operator-catalog release-v1.7 redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace redhat-oadp-operator mtc-operator-catalog stable-1.0
NAME PACKAGE SOURCE CHANNEL mtc-operator mtc-operator mtc-operator-catalog release-v1.7 redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace redhat-oadp-operator mtc-operator-catalog stable-1.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow Or return the subscription names and channels in JSON by running the following command:
oc -n openshift-migration get sub -o json | jq -r '.items[] | { name: .metadata.name, package: .spec.name, channel: .spec.channel }'$ oc -n openshift-migration get sub -o json | jq -r '.items[] | { name: .metadata.name, package: .spec.name, channel: .spec.channel }'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
For each subscription, patch to move from the MTC 1.7 channel to the MTC 1.8 channel by running the following command:
oc -n openshift-migration patch subscription mtc-operator --type merge --patch '{"spec": {"channel": "release-v1.8"}}'$ oc -n openshift-migration patch subscription mtc-operator --type merge --patch '{"spec": {"channel": "release-v1.8"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
subscription.operators.coreos.com/mtc-operator patched
subscription.operators.coreos.com/mtc-operator patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2.1. Upgrading OADP 1.0 to 1.2 for Migration Toolkit for Containers 1.8.0 Copy linkLink copied to clipboard!
To upgrade OADP 1.0 to 1.2 for Migration Toolkit for Containers 1.8.0, complete the following steps.
Procedure
For each subscription, patch the OADP operator from OADP 1.0 to OADP 1.2 by running the following command:
oc -n openshift-migration patch subscription redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace --type merge --patch '{"spec": {"channel":"stable-1.2"}}'$ oc -n openshift-migration patch subscription redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace --type merge --patch '{"spec": {"channel":"stable-1.2"}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow NoteSections indicating the user-specific returned
NAMEvalues that are used for the installation of MTC & OADP, respectively.Example output
subscription.operators.coreos.com/redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace patched
subscription.operators.coreos.com/redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace patchedCopy to Clipboard Copied! Toggle word wrap Toggle overflow NoteThe returned value will be similar to
redhat-oadp-operator-stable-1.0-mtc-operator-catalog-openshift-marketplace, which is used in this example.-
If the
installPlanApprovalparameter is set toAutomatic, the Operator Lifecycle Manager (OLM) begins the upgrade process. -
If the
installPlanApprovalparameter is set toManual, you must approve eachinstallPlanbefore the OLM begins the upgrades.
-
If the
Verification
Verify that the OLM has completed the upgrades of OADP and MTC by running the following command:
oc -n openshift-migration get subscriptions.operators.coreos.com mtc-operator -o json | jq '.status | (."state"=="AtLatestKnown")'
$ oc -n openshift-migration get subscriptions.operators.coreos.com mtc-operator -o json | jq '.status | (."state"=="AtLatestKnown")'Copy to Clipboard Copied! Toggle word wrap Toggle overflow When a value of
trueis returned, verify the channel used for each subscription by running the following command:oc -n openshift-migration get sub -o json | jq -r '.items[] | {name: .metadata.name, channel: .spec.channel }'$ oc -n openshift-migration get sub -o json | jq -r '.items[] | {name: .metadata.name, channel: .spec.channel }'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Confirm that the `mtc-operator.v1.8.0` and `oadp-operator.v1.2.x` packages are installed by running the following command:
Confirm that the `mtc-operator.v1.8.0` and `oadp-operator.v1.2.x` packages are installed by running the following command:Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc -n openshift-migration get csv
$ oc -n openshift-migration get csvCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example output
NAME DISPLAY VERSION REPLACES PHASE mtc-operator.v1.8.0 Migration Toolkit for Containers Operator 1.8.0 mtc-operator.v1.7.13 Succeeded oadp-operator.v1.2.2 OADP Operator 1.2.2 oadp-operator.v1.0.13 Succeeded
NAME DISPLAY VERSION REPLACES PHASE mtc-operator.v1.8.0 Migration Toolkit for Containers Operator 1.8.0 mtc-operator.v1.7.13 Succeeded oadp-operator.v1.2.2 OADP Operator 1.2.2 oadp-operator.v1.0.13 SucceededCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. Upgrading the Migration Toolkit for Containers on OpenShift Container Platform versions 4.2 to 4.5 Copy linkLink copied to clipboard!
You can upgrade Migration Toolkit for Containers (MTC) on OpenShift Container Platform versions 4.2 to 4.5 by manually installing the legacy Migration Toolkit for Containers Operator.
Prerequisites
-
You must be logged in as a user with
cluster-adminprivileges. -
You must have access to
registry.redhat.io. -
You must have
podmaninstalled.
Procedure
Log in to
registry.redhat.iowith your Red Hat Customer Portal credentials by entering the following command:podman login registry.redhat.io
$ podman login registry.redhat.ioCopy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
operator.ymlfile by entering the following command:podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-legacy-rhel8-operator:v1.7:/operator.yml ./
$ podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-legacy-rhel8-operator:v1.7:/operator.yml ./Copy to Clipboard Copied! Toggle word wrap Toggle overflow Replace the Migration Toolkit for Containers Operator by entering the following command:
oc replace --force -f operator.yml
$ oc replace --force -f operator.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Scale the
migration-operatordeployment to0to stop the deployment by entering the following command:oc scale -n openshift-migration --replicas=0 deployment/migration-operator
$ oc scale -n openshift-migration --replicas=0 deployment/migration-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Scale the
migration-operatordeployment to1to start the deployment and apply the changes by entering the following command:oc scale -n openshift-migration --replicas=1 deployment/migration-operator
$ oc scale -n openshift-migration --replicas=1 deployment/migration-operatorCopy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the
migration-operatorwas upgraded by entering the following command:oc -o yaml -n openshift-migration get deployment/migration-operator | grep image: | awk -F ":" '{ print $NF }'$ oc -o yaml -n openshift-migration get deployment/migration-operator | grep image: | awk -F ":" '{ print $NF }'Copy to Clipboard Copied! Toggle word wrap Toggle overflow Download the
controller.ymlfile by entering the following command:podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-legacy-rhel8-operator:v1.7):/operator.yml ./
$ podman cp $(podman create registry.redhat.io/rhmtc/openshift-migration-legacy-rhel8-operator:v1.7):/operator.yml ./Copy to Clipboard Copied! Toggle word wrap Toggle overflow Create the
migration-controllerobject by entering the following command:oc create -f controller.yml
$ oc create -f controller.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow Verify that the MTC pods are running by entering the following command:
oc get pods -n openshift-migration
$ oc get pods -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. Upgrading MTC 1.3 to 1.8 Copy linkLink copied to clipboard!
If you are upgrading Migration Toolkit for Containers (MTC) version 1.3.x to 1.8, you must update the MigPlan custom resource (CR) manifest on the cluster on which the MigrationController pod is running.
Because the indirectImageMigration and indirectVolumeMigration parameters do not exist in MTC 1.3, their default value in version 1.4 is false, which means that direct image migration and direct volume migration are enabled. Because the direct migration requirements are not fulfilled, the migration plan cannot reach a Ready state unless these parameter values are changed to true.
- Migrating from OpenShift Container Platform 3 to OpenShift Container Platform 4 requires a legacy MTC Operator and MTC 1.7.x.
-
Upgrading MTC 1.7.x to 1.8.x requires manually updating the OADP channel from
stable-1.0tostable-1.2in order to successfully complete the upgrade from 1.7.x to 1.8.x.
Prerequisites
-
You must be logged in as a user with
cluster-adminprivileges.
Procedure
-
Log in to the cluster on which the
MigrationControllerpod is running. Get the
MigPlanCR manifest:oc get migplan <migplan> -o yaml -n openshift-migration
$ oc get migplan <migplan> -o yaml -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow Update the following parameter values and save the file as
migplan.yaml:... spec: indirectImageMigration: true indirectVolumeMigration: true
... spec: indirectImageMigration: true indirectVolumeMigration: trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow Replace the
MigPlanCR manifest to apply the changes:oc replace -f migplan.yaml -n openshift-migration
$ oc replace -f migplan.yaml -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow Get the updated
MigPlanCR manifest to verify the changes:oc get migplan <migplan> -o yaml -n openshift-migration
$ oc get migplan <migplan> -o yaml -n openshift-migrationCopy to Clipboard Copied! Toggle word wrap Toggle overflow