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.4] Verify manifest with remote layers #13120

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

Signed-off-by: Gladkov Alexey <agladkov@redhat.com>
@legionus
Copy link
Contributor Author

[test]

@openshift-bot
Copy link
Contributor

Evaluated for origin test up to d3a32d1

@smarterclayton
Copy link
Contributor

LGTM [merge]

@legionus
Copy link
Contributor Author

@smarterclayton please, do not trust me so much because I don't trust myself so much :) I would prefer to see green tests before to request to merge this.

@openshift-bot
Copy link
Contributor

continuous-integration/openshift-jenkins/test SUCCESS (https://ci.openshift.redhat.com/jenkins/job/test_pull_requests_origin_future/582/) (Base Commit: 10760db)

@smarterclayton
Copy link
Contributor

You can't merge without green tests anyway.

Flake was device mapper active, [merge]

@openshift-bot
Copy link
Contributor

Evaluated for origin merge up to d3a32d1

@openshift-bot
Copy link
Contributor

continuous-integration/openshift-jenkins/merge FAILURE (https://ci.openshift.redhat.com/jenkins/job/test_pull_requests_origin_future/586/) (Base Commit: df28a5b)

@smarterclayton smarterclayton merged commit 245c218 into openshift:release-1.4 Feb 28, 2017
@smarterclayton
Copy link
Contributor

Two flakes, it gets the merge

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