-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Description
Describe a possible migration for allowing intercompatibility between old and new component versions. Ideally support the new OCI storage format in at least read-only form in the old CLI. The new storage format differentiates from the old format by storing a component index https://github.com/open-component-model/open-component-model/blob/main/bindings/go/oci/spec/index/component/v1/index.go if there is any manifest discovered as a localBlob. This differentiates it from other layers that are not native to OCI in that they always get stored as artifact sets: https://github.com/open-component-model/open-component-model/blob/main/bindings/go/ctf/artifact_set.go
Artifact Sets are problematic because they cause the OCI Distribution Spec to no longer declare Images or Manifests in their native format. This has caused longstanding issues. The most prominent is that when packaging HELM Charts via LocalBlob, they are no longer consumable as native OCI image artifacts. To get around having to use Uploaders and custom Access Tooling, the new format will allow us to work with the native manifest types and as such support flows such as helm pull directly from the localBlob.
The ADR created here should:
- Outline how we want to support Compatibility of the old and the new format
- A change of the Specification as the OCM Spec currently has an OCI specification in the storage backend mappings https://github.com/open-component-model/ocm-spec/blob/main/doc/04-extensions/03-storage-backends/oci.md (note that the spec was never released so there is no dedicated versioning yet)
Timebox: 1 week
Done Criteria
- Estimation of impact on existing code incl. tests
- Estimation of impact on Enduser Documentation updated (if applicable)
- Estimation of impact on Internal technical Documentation created/updated (if applicable)
- Created refinable tasks for the actual implementation
Metadata
Metadata
Assignees
Labels
Type
Projects
Status