Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Registry fails to serve imported manifest of schema 2 to old client #10730

Closed
miminar opened this issue Aug 31, 2016 · 0 comments
Closed

Registry fails to serve imported manifest of schema 2 to old client #10730

miminar opened this issue Aug 31, 2016 · 0 comments
Assignees
Labels
component/imageregistry kind/bug Categorizes issue or PR as related to a bug. priority/P1
Milestone

Comments

@miminar
Copy link

miminar commented Aug 31, 2016

Manifest V2 schema 2 refers to a special blob by a digest. The blob is a config file which used to be embedded in manifest V2 schema 1. During an image import, the config file is stored in image object. Registry storage is not modified. When such an image is pulled by older client (supporting just manifest V2 schema 1), the registry attempts to convert schema 2 fetched from etcd to schema 1. For this it needs the config file. It attempts to load it from registry's storage and fails.

Version

openshift v1.3.0-alpha.3+3fc2c7c-dirty
kubernetes v1.3.0+507d3a7

docker:

Server:
 Version:         1.9.1
 API version:     1.21
 Package version: docker-common-1.9.1-40.el7.x86_64
 Go version:      go1.4.2
 Git commit:      ab77bde/1.9.1
Steps To Reproduce
  1. deploy registry
  2. login as a user U and start a new project P
  3. tag some remote image of schema 2: oc tag --source docker docker.io/busybox:latest busybox:latest
  4. login to docker 1.9 with U's token
  5. manually pull the image: docker pull ${REGISTRY_URL}/P/busybox:latest
Current Result
Trying to pull repository 172.30.241.183:5000/pjoe/busybox ... failed
manifest invalid: manifest invalid
Expected Result

Successful pull.

Additional Information
  • This case should be handled by pullthroughmiddleware. The middleware needs to override Get() method.
  • A case where imagestreamimage is tagged to another repository/namespace needs to be tested as well.
@miminar miminar self-assigned this Aug 31, 2016
@miminar miminar added kind/bug Categorizes issue or PR as related to a bug. component/imageregistry labels Aug 31, 2016
@liggitt liggitt added this to the 1.3.0 milestone Sep 1, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/imageregistry kind/bug Categorizes issue or PR as related to a bug. priority/P1
Projects
None yet
Development

No branches or pull requests

3 participants