Implement first iteration of (sync/CLI) BBM process in container registry

The first iteration of sync/CLI BBM process discussed in PoC: evaluate proposed database background migr... (#1241 - closed) in the container repository repo following the proposal defined in https://gitlab.com/gitlab-org/container-registry/-/blob/master/docs/spec/gitlab/database-background-migrations.md?ref_type=heads.

The first iteration should have/have-support for:

  • a registry bbm-migrate run command to start/continue/re-start any paused/failed/active/running background migrations synchronously
    • pass flags to the bbm migrate command to specify the timeout to start bbm migrations, the timeout to allow migrations to run for, the frequency of bbm runs, and failure retry count
  • a registry bbm-migrate status sub-command line option to check the status of batched background migrations
  • a registry bbm-migrate pause command to pause all eligible (running/active) migration

The follow up to this will be to enforce background migration completion in regular migrations: Implement and Document process for enforcing re... (#1293 - closed)

There's a lot of moving pieces in this issue and so it is important to tackle this iteratively through smaller MRs targeting the same goal.

Edited by SAhmed