Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Referring a container image from an artifact set #245

Closed
Silvanoc opened this issue Mar 17, 2021 · 4 comments
Closed

Referring a container image from an artifact set #245

Silvanoc opened this issue Mar 17, 2021 · 4 comments
Assignees
Labels
question Further information is requested stale Inactive issues or pull requests

Comments

@Silvanoc
Copy link

I'd like to push an artifact set that includes binaries, text (JSON config files) and container images. Is there any way to do so in order to let ORAS handle the container images as part of the artifact set? Or is it the only way to get it done adding the container image name to a metadata file?

The key difference is that if ORAS can handle container images as part an artifact set, you can rely on ORAS to get the image pushed (if needed) and to pull it also with the whole artifact set. If it's only a reference in the metadata, then container image management tools (Docker, Buildah, Skopeo,...) are always needed as a 2nd step.

This issue sounds very similar to issues #237 and #238, but has a fundamental difference. The image manifests or indexes (if any) are already uploaded, but I want my artifact to contain a reference to the container image (similar to the manifests list of a container image index).

@SteveLasker
Copy link
Contributor

Reading #244, I think what you're referring to here is the ability to push mixed content (an artifact set).

While oras can push a directory, the oras cli focuses on arbitrary content in a directory, and doesn't have knowledge of the specific content.

The concept of references is captured in a proposed oci.artifact.manifest

We have a working implementation with oras at: OCI Artifact Manifest (Experimental)

But, rather than focus on the above proposal, can you help with a more concrete example of the types of references you're looking for?

@Silvanoc
Copy link
Author

Silvanoc commented Apr 7, 2021

Reading #244, I think what you're referring to here is the ability to push mixed content (an artifact set).

You're right.

While oras can push a directory, the oras cli focuses on arbitrary content in a directory, and doesn't have knowledge of the specific content.

Although oras focuses on arbitrary content, it relies on containerd with knowledge about container image content. My hope was that oras would support it.
On the other side, if you stay content agnostic, then some when on time you can move to modules for content management without knowledge about container image content.

The concept of references is captured in a proposed oci.artifact.manifest

Thanks for the link. Looks interesting, I'll have a look at it.

We have a working implementation with oras at: OCI Artifact Manifest (Experimental)

Thanks for the link. Having a reference implementation will probably help getting the specification approved.

But, rather than focus on the above proposal, can you help with a more concrete example of the types of references you're looking for?

I'm mostly experimenting with the tool, because I find it has a lot of potential.

I do have a real use-case, but a small one. My artifact is a combination of one container image, one configuration file and two files. Without the two files, it's like a container image with annotations. And in my company we have container registries capable of hosting OCI artifacts too.

What I can do with oras is having an artifact with the two files and the configuration file referring to a container image name hosted in the same registry. But that's sort of two artifacts (files + configuration and container image) and I was hoping to be able to manage them as a single artifact with oras. Having the container image as part of the artifact blocks pruning from removing it, whereas a name reference doesn't.

Of course I could use container images to host those files and use the annotations of the container image to refer them, but that's too ugly.

@sajayantony
Copy link
Contributor

With support for copy ORAS should handle container images as just another manifest with layers that needs to move. /cc @deitch

@shizhMSFT shizhMSFT added this to the future milestone May 7, 2022
@yizha1 yizha1 modified the milestones: future, v1.0.0 Aug 31, 2022
@shizhMSFT shizhMSFT added the duplicate This issue or pull request already exists label Nov 2, 2022
@shizhMSFT shizhMSFT added question Further information is requested and removed duplicate This issue or pull request already exists labels Jan 20, 2023
@shizhMSFT shizhMSFT removed this from the v1.0.0-rc.1 milestone Jan 20, 2023
@shizhMSFT shizhMSFT added the stale Inactive issues or pull requests label Mar 22, 2023
@shizhMSFT
Copy link
Contributor

Closing this issue due to inactivity. Please re-open if needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested stale Inactive issues or pull requests
Projects
No open projects
Status: No status
Development

No branches or pull requests

6 participants