feat: oci artifact uploader#1765
Merged
matthiasbruns merged 18 commits intoFeb 17, 2026
Merged
Conversation
Closed
e711797 to
095e8e0
Compare
ecdcd74 to
50a491e
Compare
matthiasbruns
added a commit
that referenced
this pull request
Feb 13, 2026
<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it
This PR adds AddOCIArtifact spec to oci.
```go
type AddOCIArtifactSpec struct {
// Resource is the resource descriptor to add.
// If the Resource contains an access specification, it may be used
// by the underlying implementation to derive metadata to avoid additional compute
// (such as digest information) or to steer implementation (such as a reference name)
Resource *v2.Resource `json:"resource"`
// File is the access specification to the file that should be added
File v1alpha1.File `json:"file"`
}
```
We expect a file access and a resource descriptor as input for the add
transformation. The file will be uploaded to the `OCIRepository` based
on the `Resource` input.
```go
type AddOCIArtifactOutput struct {
// Resource is the updated resource descriptor with complete oci image reference
Resource *v2.Resource `json:"resource"`
}
```
The output of the transformation is the updated `Resource` pointing to
the newly uploaded oci image.
#### Which issue(s) this PR fixes
Contributes:
open-component-model/ocm-project#875
Part of:
- #1765
---------
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
Signed-off-by: Matthias Bruns <github@matthiasbruns.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Co-authored-by: Fabian Burth <fabian.burth@sap.com>
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
…refactor transfer/internal On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
50a491e to
5f81ffa
Compare
Contributor
|
waiting for oci module release |
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
Skarlso
reviewed
Feb 16, 2026
Skarlso
reviewed
Feb 16, 2026
Skarlso
left a comment
Contributor
There was a problem hiding this comment.
A few small issues for now, I have to do a test run to really see this working. :)
Co-authored-by: Gergely Bräutigam <skarlso777@gmail.com> Signed-off-by: Matthias Bruns <github@matthiasbruns.com>
morri-son
pushed a commit
to morri-son/open-component-model
that referenced
this pull request
Feb 16, 2026
<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it
This PR adds AddOCIArtifact spec to oci.
```go
type AddOCIArtifactSpec struct {
// Resource is the resource descriptor to add.
// If the Resource contains an access specification, it may be used
// by the underlying implementation to derive metadata to avoid additional compute
// (such as digest information) or to steer implementation (such as a reference name)
Resource *v2.Resource `json:"resource"`
// File is the access specification to the file that should be added
File v1alpha1.File `json:"file"`
}
```
We expect a file access and a resource descriptor as input for the add
transformation. The file will be uploaded to the `OCIRepository` based
on the `Resource` input.
```go
type AddOCIArtifactOutput struct {
// Resource is the updated resource descriptor with complete oci image reference
Resource *v2.Resource `json:"resource"`
}
```
The output of the transformation is the updated `Resource` pointing to
the newly uploaded oci image.
#### Which issue(s) this PR fixes
Contributes:
open-component-model/ocm-project#875
Part of:
- open-component-model#1765
---------
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
Signed-off-by: Matthias Bruns <github@matthiasbruns.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Co-authored-by: Fabian Burth <fabian.burth@sap.com>
a951f24 to
866a835
Compare
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
866a835 to
98839f8
Compare
piotrjanik
reviewed
Feb 16, 2026
piotrjanik
reviewed
Feb 16, 2026
piotrjanik
left a comment
Contributor
There was a problem hiding this comment.
LGTM, small comments, rather questions
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
d3db8b0 to
44f8869
Compare
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
44f8869 to
7b3b27c
Compare
Skarlso
reviewed
Feb 17, 2026
Contributor
|
Just a test fix, otherwise, I think this is becoming okay. |
piotrjanik
previously approved these changes
Feb 17, 2026
On-behalf-of: SAP <matthias.bruns@sap.com> Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
Skarlso
approved these changes
Feb 17, 2026
piotrjanik
approved these changes
Feb 17, 2026
morri-son
pushed a commit
to morri-son/open-component-model
that referenced
this pull request
Feb 18, 2026
<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it
This PR adds AddOCIArtifact spec to oci.
```go
type AddOCIArtifactSpec struct {
// Resource is the resource descriptor to add.
// If the Resource contains an access specification, it may be used
// by the underlying implementation to derive metadata to avoid additional compute
// (such as digest information) or to steer implementation (such as a reference name)
Resource *v2.Resource `json:"resource"`
// File is the access specification to the file that should be added
File v1alpha1.File `json:"file"`
}
```
We expect a file access and a resource descriptor as input for the add
transformation. The file will be uploaded to the `OCIRepository` based
on the `Resource` input.
```go
type AddOCIArtifactOutput struct {
// Resource is the updated resource descriptor with complete oci image reference
Resource *v2.Resource `json:"resource"`
}
```
The output of the transformation is the updated `Resource` pointing to
the newly uploaded oci image.
#### Which issue(s) this PR fixes
Contributes:
open-component-model/ocm-project#875
Part of:
- open-component-model#1765
---------
Signed-off-by: Matthias Bruns <git@matthiasbruns.com>
Signed-off-by: Matthias Bruns <github@matthiasbruns.com>
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
Co-authored-by: Fabian Burth <fabian.burth@sap.com>
Signed-off-by: Gerald Morrison (SAP) <gerald.morrison@sap.com>
morri-son
pushed a commit
to morri-son/open-component-model
that referenced
this pull request
Feb 18, 2026
Signed-off-by: Gerald Morrison (SAP) <gerald.morrison@sap.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it
Enhances the transfer command with a flag to upload oci artifacts as actual oci artifacts based on their reference name.
We added a new flafg
upload-asfor oci artifacts to control, if we use the already implementedlobalBlobor the newociArtifactuploader. The latter is defined as default.Integration tests have been updated/added to test both paths.
In addition, this PR splits the cluttered internal files into several smaller to give a better overview of the system and where everything resided.
Which issue(s) this PR fixes
contributes to open-component-model/ocm-project#875
Split PRs: