fix docker image tag deletion
What does this MR do?
Implement a workaround issue #21405 (moved). This is accomplished by uploading a dummy image to the registry. The dummy image is then assigned to the tag the user wants to delete prior to deleting it. This prevents the original image and associated tags to be deleted as well.
So far it doesn't seem like the registry support any other reasonable method of doing this without forking it.
The registry accepts any dummy data as blobs for the replacement tag, so we send exactly that: dummy data.
Details on how to upload the image can be found on the docker api documentation
Risks:
As pointed out in the original issue, this could cause potential side effects as we're temporarily making the tag point to a dummy image.
Does this MR meet the acceptance criteria?
Conformity
-
Changelog entry for user-facing changes, or community contribution. Check the link for other scenarios. -
Documentation created/updated or follow-up review issue created -
Code review guidelines -
Merge request performance guidelines -
Style guides -
Database guides -
Separation of EE specific content
Performance and testing
-
Review and add/update tests for this feature/bug. Consider all test levels. See the Test Planning Process. -
Tested in all supported browsers
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
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 #21405 (moved)