Delete tags service: avoid pre importing, pre import done and importing image repositories
🔥 Problem
In !79660 (merged), we updated the delete tags service to stop on repositories that are importing
.
During the migration, on production, we observed the following:
-
pre import
starts - tags is deleted
-
pre import
ends andimport
starts -
import
failed because of deleted tags -> migration aborted - migration retried
pre_import
starts - this time around, both steps succeeds
The main problem is that removing a tag during the pre_import
step will make the import
step fail.
Tags removal are done in 2 ways:
- Automated: cleanup policies.
- Manual: users using the UI.
(1.) can have a negative impact on the migration = it can make several pre_import
s fail and the image repo is then skipped = wasted resources and a migration that could succeed is now skipped = efficiency
🚒 Solution
- Update the delete tags service to reject tags removal when:
- image repo is
importing
or - image repo is
pre importing
+ the service is called by a cleanup policy or - image repo is
pre import done
+ the service is called by a cleanup policy
- image repo is
Notice that we accept manual tags removal during pre importing
and pre import done
. This is to adhere to a strong migration requirement: user write operations should be not allowed only when importing
.