Docker V2: https://docs.docker.com/registry/spec/manifest-v2-2/#media-types
OCI Image: https://github.com/opencontainers/image-spec/blob/main/manifest.md
OCI Artifact: https://github.com/opencontainers/image-spec/blob/main/artifact.md
https://github.com/opencontainers/image-spec/blob/main/layer.md
Determine type of the artifact:
Helm
<- application/vnd.cncf.helm.chart.content.v1.tar+gzip
<- application/vnd.docker.image.rootfs.diff.tar.gzip
OCIArtifact
<- application/vnd.oci.image.layer.v1.tar
ArmTemplate
<- application/vnd.oci.image.layer.v1.tar
Question
application/vnd.oci.image.layer.v1.tar: OCIArtifact or ArmTemplate?
Use manifest annotation: https://github.com/opencontainers/image-spec/blob/main/annotations.md#pre-defined-annotation-keys
Exception: if media type is application/vnd.docker.distribution.manifest.v2+json
or application/vnd.docker.distribution.manifest.list.v2+json
=> docker image
Still need to check if annotating is supported for all user toolings: