Chapter 4. Installing and configuring the MTV Operator You can install the MTV Operator by using the Red Hat OpenShift web console or the command-line interface (CLI). In Migration Toolkit for Virtualization (MTV) version 2.4 and later, the MTV Operator includes the MTV plugin for the Red Hat OpenShift web console. After you install the MTV Operator by using either the Red Hat OpenShift web console or the CLI, you can configure the Operator. 4.1. Installing the MTV Operator by using the Red Hat OpenShift web console You can install the MTV Operator by using the Red Hat OpenShift web console. Prerequisites Red Hat OpenShift 4.17 or later installed. OpenShift Virtualization Operator installed on an OpenShift migration target cluster. You must be logged in as a user with cluster-admin permissions. Procedure In the Red Hat OpenShift web console, click Operators OperatorHub . Use the Filter by keyword field to search for mtv-operator . Click Migration Toolkit for Virtualization Operator and then click Install . Click Create ForkliftController when the button becomes active. Click Create . Your ForkliftController appears in the list that is displayed. Click Workloads Pods to verify that the MTV pods are running. Click Operators Installed Operators to verify that Migration Toolkit for Virtualization Operator appears in the openshift-mtv project with the status Succeeded . When the plugin is ready you will be prompted to reload the page. The Migration menu item is automatically added to the navigation bar, displayed on the left of the Red Hat OpenShift web console. 4.2. Installing the MTV Operator by using the command-line interface You can install the MTV Operator by using the command-line interface (CLI). Prerequisites Red Hat OpenShift 4.17 or later installed. OpenShift Virtualization Operator installed on an OpenShift migration target cluster. You must be logged in as a user with cluster-admin permissions. Procedure Create the openshift-mtv project: USD cat << EOF | oc apply -f - apiVersion: project.openshift.io/v1 kind: Project metadata: name: openshift-mtv EOF Create an OperatorGroup CR called migration : USD cat << EOF | oc apply -f - apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: migration namespace: openshift-mtv spec: targetNamespaces: - openshift-mtv EOF Create a Subscription CR for the Operator: USD cat << EOF | oc apply -f - apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: mtv-operator namespace: openshift-mtv spec: channel: release-v2.7 installPlanApproval: Automatic name: mtv-operator source: redhat-operators sourceNamespace: openshift-marketplace startingCSV: "mtv-operator.v2.7.11" EOF Create a ForkliftController CR: USD cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: ForkliftController metadata: name: forklift-controller namespace: openshift-mtv spec: olm_managed: true EOF Verify that the MTV pods are running: USD oc get pods -n openshift-mtv Example output 4.3. Configuring the MTV Operator You can configure all of the following settings of the MTV Operator by modifying the ForkliftController CR, or in the Settings section of the Overview page, unless otherwise indicated. Maximum number of virtual machines (VMs) or disks per plan that Migration Toolkit for Virtualization (MTV) can migrate simultaneously. How long must gather reports are retained before being automatically deleted. CPU limit allocated to the main controller container. Memory limit allocated to the main controller container. Interval at which a new snapshot is requested before initiating a warm migration. Frequency with which the system checks the status of snapshot creation or removal during a warm migration. Percentage of space in persistent volumes allocated as file system overhead when the storageclass is filesystem ( ForkliftController CR only). Fixed amount of additional space allocated in persistent block volumes. This setting is applicable for any storageclass that is block-based ( ForkliftController CR only). Configuration map of operating systems to preferences for vSphere source providers ( ForkliftController CR only). Configuration map of operating systems to preferences for Red Hat Virtualization (RHV) source providers ( ForkliftController CR only). The procedure for configuring these settings using the user interface is presented in Configuring MTV settings . The procedure for configuring these settings by modifying the ForkliftController CR is presented following. Procedure Change a parameter's value in the spec portion of the ForkliftController CR by adding the label and value as follows: spec: label: value 1 1 Labels you can configure using the CLI are shown in the table that follows, along with a description of each label and its default value. Table 4.1. MTV Operator labels Label Description Default value controller_max_vm_inflight Varies with provider as follows: For all migrations except OVA or VMware migrations: The maximum number of disks that MTV can transfer simultaneously. For OVA migrations: The maximum number of VMs that MTV can migrate simultaneously. For VMware migrations, the label has the following meanings: Cold migration: To local OpenShift Virtualization: VMs for each ESXi host that can migrate simultaneously. To remote OpenShift Virtualization: Disks for each ESXi host that can migrate simultaneously. Warm migration: Disks for each ESXi host that can migrate simultaneously. See Configuring the controller_max_vm_inflight label for a detailed explanation of this label. 20 must_gather_api_cleanup_max_age The duration in hours for retaining must gather reports before they are automatically deleted. -1 (disabled) controller_container_limits_cpu The CPU limit allocated to the main controller container. 500m controller_container_limits_memory The memory limit allocated to the main controller container. 800Mi controller_precopy_interval The interval in minutes at which a new snapshot is requested before initiating a warm migration. 60 controller_snapshot_status_check_rate_seconds The frequency in seconds with which the system checks the status of snapshot creation or removal during a warm migration. 10 controller_filesystem_overhead Percentage of space in persistent volumes allocated as file system overhead when the storageclass is filesystem . ForkliftController CR only. 10 controller_block_overhead Fixed amount of additional space allocated in persistent block volumes. This setting is applicable for any storageclass that is block-based. It can be used when data, such as encryption headers, is written to the persistent volumes in addition to the content of the virtual disk. ForkliftController CR only. 0 vsphere_osmap_configmap_name Configuration map for vSphere source providers. This configuration map maps the operating system of the incoming VM to a OpenShift Virtualization preference name. This configuration map needs to be in the namespace where the MTV Operator is deployed. To see the list of preferences in your OpenShift Virtualization environment, open the OpenShift web console and click Virtualization Preferences . You can add values to the configuration map when this label has the default value, forklift-vsphere-osmap. In order to override or delete values, specify a configuration map that is different from forklift-vsphere-osmap . ForkliftController CR only. forklift-vsphere-osmap ovirt_osmap_configmap_name Configuration map for RHV source providers. This configuration map maps the operating system of the incoming VM to a OpenShift Virtualization preference name. This configuration map needs to be in the namespace where the MTV Operator is deployed. To see the list of preferences in your OpenShift Virtualization environment, open the OpenShift web console and click Virtualization Preferences . You can add values to the configuration map when this label has the default value, forklift-ovirt-osmap. In order to override or delete values, specify a configuration map that is different from forklift-ovirt-osmap . ForkliftController CR only. forklift-ovirt-osmap 4.3.1. Configuring the controller_max_vm_inflight label The meaning of the controller_max_vm_inflight label, which is shown in the UI as Max concurrent virtual machine migrations , varies by the source provider of the migration For all migrations except OVA or VMware migrations, the label specifies the maximum number of disks that Migration Toolkit for Virtualization (MTV) can transfer simultaneously. In these migrations, MTV migrates the disks in parallel. This means that if the combined number of disks that you want to migrate is greater than the value of the setting, additional disks must wait until the queue is free, without regard for whether a VM has finished migrating. For example, if the value of the label is 15, and VM A has 5 disks, VM B has 5 disks, and VM C has 6 disks; all the disks except for the 16th disk start migrating at the same time. Once any of them has migrated, the 16th disk can be migrated, even though not all the disks on VM A and the disks on VM B have finished migrating. For OVA migrations, the label specifies the maximum number of VMs that MTV can migrate simultaneously, meaning that all additional disks must wait until at least one VM has been completely migrated. For example, if the value of the label is 2, and VM A has 5 disks, VM B has 5 disks, and VM C has 6 disks. All the disks on VM C must wait to migrate until either all the disks on VM A or on VM B finish migrating. For VMware migrations, the label has the following meanings: Cold migration: To local OpenShift Virtualization: VMs for each ESXi host that can migrate simultaneously. To remote OpenShift Virtualization: Disks for each ESXi host that can migrate simultaneously. Warm migration: Disks for each ESXi host that can migrate simultaneously.

Commands:
cat << EOF | oc apply -f - apiVersion: project.openshift.io/v1 kind: Project metadata: name: openshift-mtv EOF
cat << EOF | oc apply -f - apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: migration namespace: openshift-mtv spec: targetNamespaces: - openshift-mtv EOF
cat << EOF | oc apply -f - apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: mtv-operator namespace: openshift-mtv spec: channel: release-v2.7 installPlanApproval: Automatic name: mtv-operator source: redhat-operators sourceNamespace: openshift-marketplace startingCSV: "mtv-operator.v2.7.11" EOF
cat << EOF | oc apply -f - apiVersion: forklift.konveyor.io/v1beta1 kind: ForkliftController metadata: name: forklift-controller namespace: openshift-mtv spec: olm_managed: true EOF
oc get pods -n openshift-mtv
NAME READY STATUS RESTARTS AGE forklift-api-bb45b8db4-cpzlg 1/1 Running 0 6m34s forklift-controller-7649db6845-zd25p 2/2 Running 0 6m38s forklift-must-gather-api-78fb4bcdf6-h2r4m 1/1 Running 0 6m28s forklift-operator-59c87cfbdc-pmkfc 1/1 Running 0 28m forklift-ui-plugin-5c5564f6d6-zpd85 1/1 Running 0 6m24s forklift-validation-7d84c74c6f-fj9xg 1/1 Running 0 6m30s forklift-volume-populator-controller-85d5cb64b6-mrlmc 1/1 Running 0 6m36s
spec: label: value 1