distribution/distribution

v3 Azure driver no longer prefixes storage paths with a "/", making it backwards incompatible with v2

flavianmissi opened this issue · 4 comments

Description

Upgrading from a v2 to a v3/master installation causes the v2 images to seemingly disappear for the registry when using the Azure driver.
Further investigation showed that the v2 version of the Azure driver prefixed storage paths with a "/", and the v3 version no longer does it. For example, a storage path in v2 looks like /docker/registry/<etc>, while a path generated by the v3 version looks like docker/registry/<etc>.
I assume this to be unintentional as it introduces a breaking change to the Azure driver.

Reproduce

  1. start registry v2 (configured to use Azure)
  2. push an image (let's call it A)
  3. upgrade the registry to v3
  4. pull image A (will give a manifest unknown error)

Expected behavior

The registry should not loose track of images between versions.

registry version

Latest master.

Additional Info

No response

@flavianmissi this is an expected breaking change between major versions. This change fixed an Azure bug as it was adding an extra / in front of paths.

Thanks for letting me know @deleteriousEffect.
In that case, shouldn't these (and any other) breaking changes be called out on the v3 alpha-1 release?

In that case, shouldn't these (and any other) breaking changes be called out on the v3 alpha-1 release?

@milosgajdos I think this is a good point, should the automation have caught this?

@milosgajdos I think this is a good point, should the automation have caught this?

Yes, but in this specific case, the answer is: IT'S COMPLICATED

The reason being: this was the first release in over 5 years so the changelog exceeded the allowed size by Github, so unfortunately some of these things got truncated as we learnt post-release.