Currently workload VMs start before subnet is connected to router.
When DVR is enabled this causes sometimes that one of the VMs is not
able to get metadata.
Closes bug: #1947547
(Manually cherry picked from Neutron d49ce1652d31fb884285ed30e39ec10ef40c864d)
Some VMs are created before the ovn mgiration process starts in order to
verify they are healthy after the migration
Sometimes these VMs are not accessible via ssh due to an issue in cirros
0.4.0 that was fixed in a later release 
(cherry picked from neutron commit
The link used for downloading cirros image is now redirecting to
some other location. Due to this reason the image was not downloaded
properly and created vm instance was not usable causing migration
to fail. This patch sets a correct link for cirros image. It also
adds a -L flag to curl allowing it to follow redirects and download
the image successfully.
The ovn_migration.yaml playbook uses the tag 'include_role'
which is not allowed. We see the below error.
This patch fixes it
ERROR! 'include_role' is not a valid attribute for a Play
The error appears to have been in '/home/stack/ovn_migration/
tripleo_environment/playbooks/ovn-migration.yml': line 76, column 3, but may
be elsewhere in the file depending on the exact syntax problem.
This patch also fixes another error. When the pre migation VM is created, we
test it by running the command '/sbin/ip'. In some of the cirros images
the right path is '/bin/ip'. So change this to the comand 'date'.
This patch adds ansible playbooks and roles to carry out migration of
an existing ML2/OVS tripleo setup to ML2/OVN.
In this patch, all the migration tasks are carried out using ansible.
Below are the migration steps
1. Generates a hosts file with the ip addresses of the controllers
2. Creates pre migration resources (including a VM) and validates them
3. Runs the overcloud deploy script with ovn-controller's configured to
use a temporary ovs bridge (OVNIntegrationBridge: "br-migration")
4. Carry out the migration tasks
- Generate the OVN north db by running ovn sync util
- Configure ovn-controllers to take over br-int
- Delete all the qrouter/q-dhcp namespaces
5. Validates the pre migration resources again to check if everything is fine
6. Deletes the pre migration resources and creates and validates post migration
7. Deletes the post migration resources
8. And finally runs the overcloud deploy script again by setting
Co-authored-by: Miguel Angel Ajo <email@example.com>