Story #3821: As a user, I can migrate from Pulp 2 to Pulp 3
As an User I would like to migrate in-place from Pulp2 to Pulp3
As a user I need some way of migrating my data from Pulp2 to Pulp3 in place.
I need :
1. custom queries for mongoexport to only export only necessary data. Here is a good starting point for the pulp2 data that is needed: http://file.rdu.redhat.com/pcreech/mongodb
2. some way of validating my exported pulp2 data to make sure there are no surprises when importing it into a psql database. Attached is a dumped pulp3 schema that the data should conform to.
3. an estimate of how long the migration process is expected to take, so I can schedule downtime accordingly.
4. instructions on rolling back in case something goes wrong
From the community survey, /var/lib/pulp varied from 2GB to 2.8TB. The mean size (after trimming max and min values) is 233GB with a standard deviation of 198. Our strategy should not include any touching or cleanup for /var/lib/pulp during the migration. We should plan on leaving the Pulp2 symlinks in place without a cleanup until we have a confirmed successful migration to Pulp 3, since doing such during migration would be too time insensitive and destroy any chance of rolling back a bad migration. Removing symlinks should be painless after a successful migration to Pulp 3. A script to remove symlinks is outside of the scope of this story.
1. stop mongo and run mongoexport with custom queries
2. Validate the dumped data conforms with the pulp3 schema
3. Import data into postgres
4. uninstall pulp2, install pulp3
5. Publish in pulp3
6. See that content is being served from the correct location
7. uninstall pulp3
8. install pulp2
9 ensure that pulp2 is still functional