This specification describes how an OCM repository view is mapped to an S3 blob store.
To describe a repository context for an OCM repository conforming to this specification the following repository specification format MUST be used.
type: S3[/VERSION]
[ATTRIBIUTES]
Artifact namespaces/repositories of the API layer will be mapped to an S3 bucket.
Supported specification version is v1
.
The type specific specification fields are:
-
bucketURL
stringS3 bucket reference
An OCM repository is mapped to an S3 bucket.
The component id is mapped to an object path below this bucket, followed by a namespace component __versions__
.
The OCM component version is stored below an additional folder with the version name of the component version.
All artifacts belonging to a component version are stored as blobs below this folder.
The OCM component descriptor of a component version is stored with the name component-descriptor.yaml
in YAML format.
Local blobs are stored as additional blobs in the same folder. The blob identity is the name of the blob object in this folder.
The name should be derived from the digest of the blob.
For example:
└── bucket
├── <componentid>
│ └── __versions__
│ └── <version>
│ ├── component-descriptor.yaml
│ ├── <sha256-1>
│ └── <sha256-2>
└── github.com
└── gardener
└── external-dns-management
└── __versions__
└── 1.0.0
├── component-descriptor.yaml
└── sha256.1d4382e73dc767efc4f3cf43cb970d09104ea26301fc1495244c11e2ad45639e
Because the base repository is a pure blob store, no dedicated blob mappings are required.