Deploying the Cluster Application Migration (CAM) tool requires installing the Cluster Application Migration Operator on the OKD 3 source and OKD Latest target clusters.

Installing the Cluster Application Migration Operator on an OKD 3 source cluster

You can install the Cluster Application Migration Operator manually on an OKD 3.7 (or later) source cluster, which does not support OLM.

Prerequisites
  • You must have podman installed.

  • Your OKD 3 cluster must be configured to pull images from registry.redhat.io.

    To pull images, you must create an imagestreamsecret and copy it to each node in your cluster.

Procedure
  1. Log in to registry.redhat.io with your Red Hat Customer Portal credentials:

    $ sudo podman login registry.redhat.io

    If your system is configured for rootless Podman containers, sudo is not required for this procedure.

  2. Download the operator.yml file:

    $ sudo podman cp $(sudo podman create registry.redhat.io/rhcam-1-1/openshift-migration-rhel7-operator:v1.1):/operator.yml ./
  3. Download the controller-3.yml file:

    $ sudo podman cp $(sudo podman create registry.redhat.io/rhcam-1-1/openshift-migration-rhel7-operator:v1.1 ):/controller-3.yml ./
  4. Log in to your OKD 3 cluster.

  5. Verify that the cluster can authenticate with registry.redhat.io:

    $ oc run test --image registry.redhat.io/ubi8 --command sleep infinity
  6. Create the Cluster Application Migration Operator CR object:

    $ oc create -f operator.yml
    namespace/openshift-migration created
    rolebinding.rbac.authorization.k8s.io/system:deployers created
    serviceaccount/migration-operator created
    customresourcedefinition.apiextensions.k8s.io/migrationcontrollers.migration.openshift.io created
    role.rbac.authorization.k8s.io/migration-operator created
    rolebinding.rbac.authorization.k8s.io/migration-operator created
    clusterrolebinding.rbac.authorization.k8s.io/migration-operator created
    deployment.apps/migration-operator created
    Error from server (AlreadyExists): error when creating "./operator.yml":
    rolebindings.rbac.authorization.k8s.io "system:image-builders" already exists (1)
    Error from server (AlreadyExists): error when creating "./operator.yml":
    rolebindings.rbac.authorization.k8s.io "system:image-pullers" already exists (1)
    1 You can ignore the Error from server (AlreadyExists) messages. They are caused by the Cluster Application Migration Operator creating resources for earlier versions of OKD 3 that are provided in later releases.
  7. Create the Migration controller CR object:

    $ oc create -f controller-3.yml
  8. Verify that the Velero and Restic Pods are running:

    $ oc get pods -n openshift-migration

Installing the Cluster Application Migration Operator on an OKD Latest target cluster

You can install the Cluster Application Migration Operator on an OKD Latest target cluster with OLM.

The Cluster Application Migration Operator installs the CAM tool on the target cluster by default. If you want to install the CAM tool on a different cluster, you must update the Migration controller configuration so that the Cluster Application Migration Operator does not install the CAM tool on this cluster.

Procedure
  1. In the OKD web console, click AdministrationNamespaces.

  2. Click Create Namespace.

  3. Enter openshift-migration in the Name field and click Create.

  4. Click OperatorsOperatorHub.

  5. Use the Filter by keyword field (in this case, Migration) to find the Cluster Application Migration Operator.

  6. Select the Cluster Application Migration Operator and click Install.

  7. On the Create Operator Subscription page, select the openshift-migration namespace, and specify an approval strategy.

  8. Click Subscribe.

    On the Installed Operators page, the Cluster Application Migration Operator appears in the openshift-migration project with the status InstallSucceeded.

  9. Under Provided APIs, click View 12 more…​.

  10. Click Create NewMigrationController.

  11. If you do not want to install the CAM tool on the target cluster, update the migration_controller and migration_ui parameters in the spec stanza:

    spec:
      [...]
      migration_controller: false
      migration_ui: false
      [...]
  12. Click Create.

  13. Click WorkloadsPods to verify that the Restic and Velero Pods are running.

  14. Click WorkloadsPods to verify that the Controller Manager, Migration UI, Restic, and Velero Pods are running.