8000 docs/spec: Proposal for generic content distribution manifest by estesp · Pull Request #993 · distribution/distribution · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

docs/spec: Proposal for generic content distribution manifest #993

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

Closed
wants to merge 1 commit into from

Conversation

estesp
Copy link
Contributor
@estesp estesp commented Sep 16, 2015

A proposal for the V2 schema version 2 manifest format, designed for
generic content addressability and with an example for how this
addresses multi-architecture support in the distribution registry.

This is a follow-on to PR #62 as requested by the distribution team to
get the discussion going again and move forward on an agreed-to
v2.2 specification.

Docker-DCO-1.1-Signed-off-by: Phil Estes estesp@linux.vnet.ibm.com (github: estesp)

A proposal for the V2 schema version 2 manifest format, designed for
generic content addressability and with an example for how this
addresses multi-architecture support in the distribution registry.

Docker-DCO-1.1-Signed-off-by: Phil Estes <estesp@linux.vnet.ibm.com> (github: estesp)
@estesp
Copy link
Contributor Author
estesp commented Sep 16, 2015

Related and valuable discussion on what brought about this particular design:

"target": {
"mediaType": "application/vnd.docker.container.image.v2",
"size": 7023,
"digest": "sha256:b5b2b2c507a0944348e0303114d8d93aaaa081732b86451d9bce1f432a537bc7"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is this pointing to in the multi-arch case?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aaronlehmann I think the architecture should be specified in the labels here. Typically, I would expect this to be pointed at an image.Image json structure.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another possibility is that this is pointing at a fat manifest, which would be separate format (Or we use dependencies to identify the fat manifest, as is done in the example).

@stevvooe
Copy link
Collaborator

@estesp Thank you so much for getting this submitted.

@jlhawn May we close #62 at this point?

@vbatts
Copy link
vbatts commented Sep 17, 2015

cc @vbatts

@mattmoor
Copy link
Contributor

cc @mattmoor

@mattmoor
Copy link
Contributor

@stevvooe I don't want to hijack this discussion, so if there is a better venue for this discussion please advise.

A consideration in this switch is that it will make is progressively more difficult to serve the v1 API from the v2 format (for old clients pulling new images, e.g. ubuntu).

As DockerHub is clearly providing such a compatibility layer today, can this switch reasonably be made before DockerHub turns down v1 support?

What is the plan to roll out this breaking change to clients?

My expectation of breaking API changes is that they are done on top of a fresh revision of the API e.g. /v2.1/<name>/manifests/, but I'm curious what you have in mind?

Also (unrelated), in the example the v1 json is under target, would this then be uploaded through the blobs endpoint?

thanks.

@stevvooe
Copy link
Collaborator

@mattmoor Backwards compatibility is definitely a consideration. The goal right now is to clearly identify and define the target format for v2. Once this target is clear, this format can easily be converted into a v1/v2 manifest at request time. Let's get the format defined then we can select a strategy for backwards compatibility.

@mattmoor
Copy link
Contributor

@stevvooe SGTM

"size": 7023,
"digest": "sha256:b5b2b2c507a0944348e0303114d8d93aaaa081732b86451d9bce1f432a537bc7"
},
"dependencies": [
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this dependencies list intended to be ordered or will the order be defined by the target?

@harche
Copy link
Contributor
harche commented Sep 22, 2015

@stevvooe @estesp SGTM

aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 5, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 5, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
@estesp
Copy link
Contributor Author
estesp commented Oct 13, 2015

Closing in favor of #1068

@estesp estesp closed this Oct 13, 2015
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 14, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 14, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 14, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 14, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 14, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Oct 16, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Dec 18, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Dec 18, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Dec 18, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
aaronlehmann added a commit to aaronlehmann/distribution that referenced this pull request Dec 18, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
BrianBland pushed a commit to BrianBland/distribution that referenced this pull request Dec 28, 2015
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
BrianBland pushed a commit to BrianBland/distribution that referenced this pull request Jan 6, 2016
This is a follow-on to PR distribution#62, and it borrows much of the format
from distribution#993, but uses specific formats for the image manifest and manifest
list (fat manifest) instead of a combined generic format.

The intent of this proposed manifest format is to allow multi-arch, and
allow for full content-addressability of images in the Docker engine.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
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.

8 participants
0