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

Clarify that "Image Layout" is OPTIONAL #720

Open
AkihiroSuda opened this issue Aug 4, 2017 · 6 comments
Open

Clarify that "Image Layout" is OPTIONAL #720

AkihiroSuda opened this issue Aug 4, 2017 · 6 comments

Comments

@AkihiroSuda
Copy link
Member

The current image spec explicitly says that "This layout MAY be used in a variety of different transport mechanisms" (image-layout.md).

However, it doesn't explicitly say that "This layout is OPTIONAL" (regardless to the transportation).

Actually, I was rather misunderstanding that using the layout were "REQUIRED but not specific to a certain transport mechanism", and got confused for that index.json is REQUIRED (image-layout.md) for layout but OPTIONAL (image-index.md)for image providers. (#716, #719)

So I'd like to open a PR as follows:

diff --git a/image-layout.md b/image-layout.md
index 0c762c1..5351150 100644
--- a/image-layout.md
+++ b/image-layout.md
@@ -1,6 +1,7 @@
 ## OCI Image Layout Specification

 * The OCI Image Layout is a slash separated layout of OCI content-addressable blobs and [location-addressable](https://en.wikipedia.org/wiki/Content-addressable_storage#Content-addressed_vs._location-addressed) references (refs).
+* Conformity to this layout specification is OPTIONAL unless an image contains `oci-layout` file.
 * This layout MAY be used in a variety of different transport mechanisms: archive formats (e.g. tar, zip), shared filesystem environments (e.g. nfs), or networked file fetching (e.g. http, ftp, rsync).

 Given an image layout and a ref, a tool can create an [OCI Runtime Specification bundle](https://github.com/opencontainers/runtime-spec/blob/v1.0.0/bundle.md) by:
@wking
Copy link
Contributor

wking commented Aug 4, 2017 via email

@AkihiroSuda
Copy link
Member Author

Maintainers PTAL?

@stevvooe
Copy link
Contributor

@AkihiroSuda Where does it say that image layout is required? One should be able to use "index", "manifest" and "config", without using the "image layout".

Having an image layout is not required for making an OCI compliant image. You can have an OCI image that just uses the above types in another storage context and that is still an OCI image because it uses those types.

An "image layout" is just a tool for transmitting a set of related blobs. There are better transports to do that.

@AkihiroSuda
Copy link
Member Author

Where does it say that image layout is required?

Nowhere, and the issue is that the spec neither saying the layout is required nor optional explicitly.
I know the layout is optional, but it is really hard to understand that without explicitly written spec.

@stevvooe
Copy link
Contributor

@AkihiroSuda Would it be enough to enumerate use cases of the image layout?

The front matter for the image layout is a little confusing, in that regard.

@AkihiroSuda
Copy link
Member Author

I think yes

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants