-
Notifications
You must be signed in to change notification settings - Fork 229
Description
I think this test is a little over-zealous.
From the spec:
Delete the manifest identified by name and reference. Note that a manifest can only be deleted by digest.
This seems to me more a description of the registry's original behavior (really, a limitation IMO) and how clients should expect to interact with registries. It doesn't specifically require registries to fail if you delete by tag.
GCR will never be able to pass these conformance tests, because it has some semantics outside of this specification and treats tag references differently from digest references. (I think quay has the opposite behavior from GCR, which is fun 😄 )
To explain a bit further: GCR views tags as a separate entity (a la git tags) as just pointers into the dag. You can delete a tag separately from deleting a manifest by just doing DELELTE /v2/.../manifests/<tag>. In fact, GCR requires you to delete tags before deleting an image by digest in order to prevent you from accidentally deleting a tagged image.
Given that this behavior is a super-set of the registry spec, I think it's a reasonable thing for GCR to do, but the conformance tests treat this behavior as a failure.
WDYT? Am I just biased here?