Introduce DatabaseMigration API and custom resource definition
Summary
DatabaseMigration API provides the interface for runtime specification and workload definition for running GitLab Rails database migrations. The interface MUST:
- Match the capabilities and requirements of
ApplicationServerandJobProcessor. - Support defining database migrations required for upgrading GitLab Rails application, including pre and post deployment migrations.
Success criteria
-
API types are defined in api/v2alpha2package and they support any database migration that is required for upgrading GitLab Rails application. -
CRD can be generated from API types. -
A sample custom resource is provided in config/samples.