cri-o/vendor/github.com/opencontainers/image-spec/image-index.md
Antonio Murdaca ecd0006e80
vendor: upgrade containers/storage
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
2017-05-17 22:18:07 +02:00

4.6 KiB

OCI Image Index Specification

The image index is a higher-level manifest which points to specific image manifests, ideal for one or more platforms. While the use of an image index is OPTIONAL for image providers, image consumers SHOULD be prepared to process them.

This section defines the application/vnd.oci.image.index.v1+json media type. For the media type(s) that this document is compatible with, see the matrix.

Image Index Property Descriptions

  • schemaVersion int

    This REQUIRED property specifies the image manifest schema version. For this version of the specification, this MUST be 2 to ensure backward compatibility with older versions of Docker. The value of this field will not change. This field MAY be removed in a future version of the specification.

  • mediaType string

    This property is reserved for use, to maintain compatibility. When used, this field contains the media type of this document, which differs from the descriptor use of mediaType.

  • manifests array of objects

    This REQUIRED property contains a list of manifests for specific platforms. While this property MUST be present, the size of the array MAY be zero.

    Each object in manifests has the base properties of descriptor with the following additional properties and restrictions:

    • mediaType string

      This descriptor property has additional restrictions for manifests. Implementations MUST support at least the following media types:

      Image indexes concerned with portability SHOULD use one of the above media types. Future versions of the spec MAY use a different mediatype (i.e. a new versioned format). An encountered mediaType that is unknown SHOULD be safely ignored.

    • platform object

      This OPTIONAL property describes the platform which the image in the manifest runs on. This property SHOULD be present if its target is platform-specific.

      • architecture string

        This REQUIRED property specifies the CPU architecture. Image indexes SHOULD use, and implementations SHOULD understand, values supported by runtime-spec's platform.arch.

      • os string

        This REQUIRED property specifies the operating system. Image indexes SHOULD use, and implementations SHOULD understand, values supported by runtime-spec's platform.os.

      • os.version string

        This OPTIONAL property specifies the operating system version, for example 10.0.10586.

      • os.features array of strings

        This OPTIONAL property specifies an array of strings, each specifying a mandatory OS feature (for example on Windows win32k).

      • variant string

        This OPTIONAL property specifies the variant of the CPU, for example armv6l to specify a particular CPU variant of the ARM CPU.

      • features array of strings

        This OPTIONAL property specifies an array of strings, each specifying a mandatory CPU feature (for example sse4 or aes).

  • annotations string-string map

    This OPTIONAL property contains arbitrary metadata for the image index. This OPTIONAL property MUST use the annotation rules.

    See Pre-Defined Annotation Keys.

Example Image Index

Example showing a simple image index pointing to image manifests for two platforms:

{
  "schemaVersion": 2,
  "manifests": [
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "size": 7143,
      "digest": "sha256:e692418e4cbaf90ca69d05a66403747baa33ee08806650b51fab815ad7fc331f",
      "platform": {
        "architecture": "ppc64le",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.manifest.v1+json",
      "size": 7682,
      "digest": "sha256:5b0bcabd1ed22e9fb1310cf6c2dec7cdef19f0ad69efa1f392e94a4333501270",
      "platform": {
        "architecture": "amd64",
        "os": "linux",
        "os.features": [
          "sse4"
        ]
      }
    }
  ],
  "annotations": {
    "com.example.key1": "value1",
    "com.example.key2": "value2"
  }
}