Updating the topology
Repeat the path you just finished for more sources, more OpenShift clusters, and larger waves. Launch the same AAP templates. This is not a cluster autoscaler.
When you are done, the inventory lists every hypervisor and destination you care about, AAP has those hosts, and you can run providers, maps, and waves per pair. There is no separate scale playbook.
What actually repeats
The collection scales by more inventory hosts and more launches, not by a workflow that fans out every pair for you.
-
Providers and maps: one AAP launch per
source_name+target_name(Configure providers, Configure storage and network maps). -
Waves: one
mtv_plans_migration_requestper sitting;split_plansif the VM list is large (Defining a migration wave). -
Start, verify, archive: each Plan CR (Migrating VMs). The AAP Migrate template still does not move VMs.
More sources or clusters
Add hosts in the inventory (Building your inventory). Copy from the inventory sample (ocp-staging and extra vm_sources hosts are commented there).
-
One
vm_sourceshost per vCenter or RHV. -
One
migration_clustershost per OpenShift API. -
On each cluster,
vm_sourcesis the list of source host names that cluster may migrate. A source missing from that list fails provider and maps. -
aap_hostson a cluster names whichmigration_aaphost seeds it.
Then run Seeding Ansible Automation Platform again (vmf_seed_aap) so AAP inventory and credentials match the file. Seed does not install AAP.
Each new pair still needs MTV Ready on that cluster (OpenShift) before providers.
Limit the destination
vmf_mtv_maps runs on migration_clusters but only when inventory_hostname equals target_name. vmf_mtv_plans runs on every host in migration_clusters unless you limit it.
When the inventory has several clusters:
-
On OpenShift Virtualization Migration - MTV Plans, set the job limit to the
migration_clustershost. -
Always pass
source_nameandtarget_namefor provider and maps (AAP survey).
Larger waves
Do not put an entire datacenter in one Plan CR.
-
Select VMs with
vmsand/or VMwarefolders. -
Set
split_plans: trueandvms_per_plan(default10when splitting) so MTV and the source stay within capacity. -
Use a dedicated
target_namespace(and matching map namespaces) per tenant or wave if projects should stay isolated. -
Start, verify, and archive each plan from a split wave.
Warm (type: warm) still needs Cutover per plan. Cutover is not scheduled for you.
What this collection does not do
-
No job template or workflow that loops every source–target pair in one click.
-
No migrate playbook that starts MTV (
vmf_migrate.ymllogs the survey values and exits). -
No
validate_migrationor archive automation — those stay in the OpenShift console.
Per-VM Ansible during a plan is mtv_hook_invoke_aap (MTV hooks). That is not a substitute for splitting waves.
If a second pair fails
-
Source not in the cluster’s
vm_sourceslist — fix the inventory and seed again. -
source_name/target_namedo not match host names — same names as in the inventory file. -
Plans hit every cluster — you omitted the AAP job limit on MTV Plans.
-
One huge plan saturates VDDK or storage — lower
vms_per_planand split. -
New cluster has no MTV — OpenShift first.
When you are done
You can add the next pair or the next wave with the same templates. Role details are in Automation reference.