[Provision alignment] Create service to build namespace sync info
Problem
The current provisionings for GitLab.com and SM/Dedicated follow markedly distinct approaches. While SM/Dedicated relies on licenses (license key or file) to contain all needed info, GitLab.com relies on multiple syncs for a namespace.
To align the provision between the deployment types, the GitLab.com provisioning will be aligned to be similar to the SM/Dedicated. The current multiple syncs to GitLab.com will be replaced by a single sync for a namespace which includes all needed information at once. Each sync will be stored in the database on the CustomersDot side for easier auditing. These records will follow a similar behavior as the license generation for SM/Dedicated and only create a new entry for a sync if the data/info for the new sync has changed compared to the last sync. Timestamps for each sync will still be stored for a better insight into the sync frequency.
Proposal
Create a new service that is responsible for building the info for a namespace sync. The service should expect a namespace ID in the params and return a hash with the sync info. Multiple other issues are taking care of generating the params for different use provision types:
- [Provision alignment] Generate params to provis... (#12219 - closed)
- [Provision alignment] Generate params to provis... (#12220)
- [Provision alignment] Generate params to provis... (#12221)
- [Provision alignment] Generate params to provis... (#12222)
- [Provision alignment] Provision a namespace change (#12223)
These classes should be utilized in this class to help with the overall params generation.
Result
Dedicated service that builds info for a namespace sync.