Skip to content

ADR for ocm v1 legacy compatibility #680

@jakobmoellerdev

Description

@jakobmoellerdev

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:

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

Labels

area/ipceiImportant Project of Common European Interest

Type

Projects

Status

🍺 Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions