You can migrate application workloads from OpenShift Container Platform 3.7 (and later) to OpenShift Container Platform 4.3 with the Cluster Application Migration (CAM) tool. The CAM tool enables you to control the migration and to minimize application downtime.

The CAM tool’s web console and API, based on Kubernetes Custom Resources, enable you to migrate stateful application workloads at the granularity of a namespace.

Optionally, you can use the Control Plane Migration Assistant (CPMA) to assist you in migrating control plane settings.

Before you begin your migration, be sure to review the information on planning your migration.

Migration prerequisites

  • The source cluster must be OpenShift Container Platform 3.7, 3.9, 3.10, or 3.11.

  • You must have podman installed.

  • You must have cluster-admin privileges on all clusters.

  • You must configure a replication repository that is accessible to the source and target clusters.

  • If your application uses images from the openshift namespace, the required versions of the images must be present on the target cluster.

    If the required images are not present, you must update the imagestreamtags references to use an available version that is compatible with your application. If the imagestreamtags cannot be updated, you can manually upload equivalent images to the application namespaces and update the applications to reference them.

    The following imagestreamtags have been removed from OpenShift Container Platform 4.3:

    • dotnet:1.0, dotnet:1.1, dotnet:2.0

    • dotnet-runtime:2.0

    • mariadb:10.1

    • mongodb:2.4, mongodb:2.6

    • mysql:5.5, mysql:5.6

    • nginx:1.8

    • nodejs:0.10, nodejs:4, nodejs:6

    • perl:5.16, perl:5.20

    • php:5.5, php:5.6

    • postgresql:9.2, postgresql:9.4, postgresql:9.5

    • python:3.3, python:3.4

    • ruby:2.0, ruby:2.2

Understanding the Cluster Application Migration tool

The Cluster Application Migration (CAM) tool enables you to migrate Kubernetes resources, persistent volume data, and internal container images from an OpenShift Container Platform source cluster to an OpenShift Container Platform 4.3 target cluster, using the CAM web console or the Kubernetes API.

Migrating an application with the CAM web console involves the following steps:

  1. Installing the CAM Operator on all clusters

    The CAM Operator installs the CAM tool (CAM web console and Migration controller) on the target cluster by default. You can change this configuration in order to install the CAM tool on another cluster.

  2. Configuring the replication repository, an intermediate object storage that the CAM tool uses to migrate data

  3. Adding the source cluster to the CAM web console

  4. Adding the replication repository to the CAM web console

  5. Creating a migration plan, with one of the following data migration options:

    • Copy: The CAM tool copies the data from the source cluster to the replication repository, and from there to the target cluster.

      migration PV copy
    • Move: The CAM tool unmounts a remote volume (for example, NFS) from the source cluster, creates a PV resource on the target cluster pointing to the remote volume, and then mounts the remote volume on the target cluster. Applications running on the target cluster use the same remote volume that the source cluster was using. The remote volume must be accessible to the source and target clusters.

      Although the replication repository does not appear in this diagram, it is required for the actual migration.

      migration PV move
  6. Running the migration plan, with one of the following options:

    • Stage (optional) copies data to the target cluster without stopping the application.

      Staging can be run multiple times so that most of the data is copied to the target before migration. This minimizes the actual migration time and application downtime.

    • Migrate stops the application on the source cluster and recreates its resources on the target cluster. You have the option of migrating the workload without stopping the application.

OCP 3 to 4 App migration