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

[3.5] Verify manifest with remote layers #13099

Conversation

legionus
Copy link
Contributor

Problem
We pass all requests (including HEAD) to the remote service if the pullthrough is enabled. On the other hand when docker client pushes the manifest we check the presence of all these layers locally. The client checks a blob existance by HEAD request before sending it to the server.

If client image is based on the imported image (but not present in local registry) dockerregistry will say that it has all the layers from the base image. In this case docker client never send them to server, but manifest verification requires them locally. It means that the verification will always fail for remote layers.

Solution
Manifest verification must to take into account the possibility that the layers may not be local and check them on remote registry server before before give up.

We can't use pullthroughBlobStore because verification happens in ManifestService. So we need to move common code that gets the blobs from the remote server to BlobGetterService and use it for pullthrough and for verification.

Backport #13001

@legionus
Copy link
Contributor Author

[test]

@legionus
Copy link
Contributor Author

job flake #12993
re[test]

@openshift-bot
Copy link
Contributor

Evaluated for origin test up to 37f8635

@openshift-bot
Copy link
Contributor

continuous-integration/openshift-jenkins/test SUCCESS (https://ci.openshift.redhat.com/jenkins/job/test_pull_requests_origin_future/541/) (Base Commit: 42bdc43)

@mfojtik mfojtik added this to the 1.5.0 milestone Feb 27, 2017
@mfojtik
Copy link
Contributor

mfojtik commented Feb 27, 2017

Approved for 3.5 (verified by QA fork_ami testing).

[merge]

@openshift-bot
Copy link
Contributor

Evaluated for origin merge up to 37f8635

@legionus legionus changed the title [3.5] [DO_NOT_MERGE] Verify manifest with remote layers [3.5] Verify manifest with remote layers Feb 27, 2017
@openshift-bot
Copy link
Contributor

openshift-bot commented Feb 27, 2017

continuous-integration/openshift-jenkins/merge SUCCESS (https://ci.openshift.redhat.com/jenkins/job/test_pull_requests_origin_future/573/) (Base Commit: 11951a2) (Image: devenv-rhel7_5986)

@openshift-bot openshift-bot merged commit 3ac8799 into openshift:release-1.5 Feb 27, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants