Skip to content

Commit e1694db

Browse files
authored
Merge pull request #423 from vbatts/image-layout_anchors
image-layout: organize for anchors
2 parents 0386865 + bbbaa25 commit e1694db

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

image-layout.md

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ Given an image layout and a ref, a tool can create an [OCI Runtime Specification
99
* [Applying the filesystem layers](layer.md#applying) in the specified order
1010
* Converting the [image configuration](config.md) into an [OCI Runtime Specification `config.json`](https://github.com/opencontainers/runtime-spec/blob/v1.0.0-rc2/config.md)
1111

12+
# Content
13+
1214
The image layout MUST contain two top level directories:
1315

1416
- `blobs` contains content-addressable blobs.
@@ -25,6 +27,8 @@ The image layout MUST also contain an `oci-layout` file:
2527
- The `imageLayoutVersion` value will align with the OCI Image Specification version at the time changes to the layout are made, and will pin a given version until changes to the layout are required
2628
- It MAY include additional fields
2729

30+
## Example Layout
31+
2832
This is an example image layout:
2933

3034
```
@@ -49,16 +53,9 @@ $ shasum -a 256 ./blobs/sha256/afff3924849e458c5ef237db5f89539274d5e609db5db935e
4953
afff3924849e458c5ef237db5f89539274d5e609db5db935ed3959c90f1f2d51 ./blobs/sha256/afff3924849e458c5ef237db5f89539274d5e609db5db935ed3959c90f1f2d51
5054
```
5155

52-
Object names in the `refs` subdirectories MUST NOT include characters outside of the set of "A" to "Z", "a" to "z", "0" to "9", the hyphen `-`, the dot `.`, and the underscore `_`.
56+
## Refs
5357

54-
Object names in the `blobs` subdirectories are composed of a directory for each hash algorithm, the children of which will contain the actual content.
55-
A blob, referenced with digest `<alg>:<hex>` (per [descriptor](descriptor.md#digests-and-verification)), MUST have its content stored in a file under `blobs/<alg>/<hex>`.
56-
The character set of the entry name for `<hex>` and `<alg>` MUST match the respective grammar elements described in [descriptor](descriptor.md#digests-and-verification).
57-
For example `sha256:5b` will map to the layout `blobs/sha256/5b`.
58-
59-
The blobs directory MAY contain blobs which are not referenced by any of the refs.
60-
61-
The blobs directory MAY be missing referenced blobs, in which case the missing blobs SHOULD be fulfilled by an external blob store.
58+
Object names in the `refs` subdirectories MUST NOT include characters outside of the set of "A" to "Z", "a" to "z", "0" to "9", the hyphen `-`, the dot `.`, and the underscore `_`.
6259

6360
No semantic restriction is given for object names in the `refs` subdirectory.
6461
Each object in the `refs` subdirectory MUST be of type `application/vnd.oci.descriptor.v1+json`.
@@ -70,7 +67,7 @@ For example, an image may have a tag for different versions or builds of the sof
7067
In the wild you often see "tags" like "v1.0.0-vendor.0", "2.0.0-debug", etc.
7168
Those tags will often be represented in an image-layout repository with matching refs names like "v1.0.0-vendor.0", "2.0.0-debug", etc.
7269

73-
This illustrates the expected contents of a given ref, the manifest list it points to and the blobs the manifest references.
70+
### Example Ref
7471

7572
```
7673
$ cat ./refs/v1.0 | jq
@@ -81,6 +78,21 @@ $ cat ./refs/v1.0 | jq
8178
}
8279
```
8380

81+
This illustrates the expected contents of a given ref, the manifest list it points to and the blobs the manifest references.
82+
83+
## Blobs
84+
85+
Object names in the `blobs` subdirectories are composed of a directory for each hash algorithm, the children of which will contain the actual content.
86+
A blob, referenced with digest `<alg>:<hex>` (per [descriptor](descriptor.md#digests-and-verification)), MUST have its content stored in a file under `blobs/<alg>/<hex>`.
87+
The character set of the entry name for `<hex>` and `<alg>` MUST match the respective grammar elements described in [descriptor](descriptor.md#digests-and-verification).
88+
For example `sha256:5b` will map to the layout `blobs/sha256/5b`.
89+
90+
The blobs directory MAY contain blobs which are not referenced by any of the refs.
91+
92+
The blobs directory MAY be missing referenced blobs, in which case the missing blobs SHOULD be fulfilled by an external blob store.
93+
94+
### Example Blobs
95+
8496
```
8597
$ cat ./blobs/sha256/e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f | jq
8698
{

0 commit comments

Comments
 (0)