Add copies of ArchiveTraceWorker and BuildFinishedWorker

Merged Vitali Tatarintev requested to merge 329343-move-ArchiveTraceWorker-under-Ci-namespace into master

What does this MR do?

Contributes to both #329343 and #329450 (closed)

Creates copies of copies of ArchiveTraceWorker and BuildFinishedWorker. Stop triggering old versions, and start triggering new ones.

Since ArchiveTraceWorker is only triggered from BuildFinishedWorker I thought it will make sense to introduce new worker versions (under Ci namespace) for of them at the same time. By doing that we can stop triggering the chain of workers BuildFinishedWorker -> ArchiveTraceWorker and start triggering new chain Ci::BuildFinishedWorker -> Ci::ArchiveTraceWorker.

If we move workers one by one, then the following scenario could happen.

We stop triggering ArchiveTraceWorker, but there are still running jobs. Then we start triggering Ci::ArchiveTraceWorker from BuildFinishedWorker. Then we create a new version Ci::BuildFinishedWorker and stop triggering BuildFinishedWorker. As a result, there could be still running jobs of BuildFinishedWorker, more than that, some of them trigger old ArchiveTraceWorker and some of them trigger Ci::ArchiveTraceWorker.

New version of workers are going to be triggered only when ci_build_finished_worker_namespace_changed feature flag enabled.

feature flag rollout issue: #335499 (closed)

Screenshots (strongly suggested)

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

Does this MR contain changes to processing or storing of credentials or tokens, authorization and authentication methods or other items described in the security review guidelines? If not, then delete this Security section.

  • [-] Label as security and @ mention @gitlab-com/gl-security/appsec
  • [-] The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • [-] Security reports checked/validated by a reviewer from the AppSec team

Related to #329343

Edited by Vitali Tatarintev