<@U04P3S5AHQW> OK; so. Dumb question here maybe bu...
# plugins
g
@famous-xylophone-36532 OK; so. Dumb question here maybe but after reading the ORAS docs, how do you actually use it? If you're using actual containers elsewhere, how do they use these resources? I can find a lot of tools (configsync, crane, ...) that leverage attachments or OCI artifacts, but nothing that actually downloads a blob and runs something on them. It feels like I should be able to use this like GCS to deliver artifacts, but I can't see how that works. 😛
f
Great question! What do you use arbitrary storage for? Oci Registries As Storage (ORAS)… The plan is actually to distribute some frontend widgets with this as a POC. I can package the whole bundle into a single “artifact” and deploy it using the same commit-hash-versioned model we use for containers.
In the longer run I plan on using this for distributing other build-time artifacts, perhaps also attached to container images, like SBOMs and so on.
But it really is just and experiment for now, I just want to see if I can get it to work.
ORAS is clearly based on an actual hack where people abused container registries for arbitrary storage by uploading stuff as layers. But OCI just added the
artifactType
field to the repository config, so you’re able to tag your stuff with something at least.
Good video:

https://www.youtube.com/watch?v=BpKF_0M37-0&amp;embeds_referring_euri=https%3A%2F%2Foras.land%2F&amp;source_ve_path=OTY3MTQ&amp;feature=emb_imp_woyt▾

Very much not a dumb question btw
g
That is a great video so far. Fills in a lot of missing details... I was thinking a bit backwards for how it'd work. So for example, we have a massive, >50GB container at work which is ~99% neural network. So I was thinking this could be used to deliver that. And I think ORAS can do it but then I have to ship ORAS with my container, have it "discover itself", and download the associated artifact. So it's not quite as helpful as I thought... It does let me associate the data with the container, but not the trivial delivery mechanism I expected.
So if I really wanted to nerd out I think I could actually build this as a Kubernetes admission hook for example. When we create a container, we could look up the
application/nnef+tar
attachment for the image of the container, add an init container that uses ORAS or a custom tool to download it, and mounts it into the main container. But that's a lot of manual work.
f
Cool! Exactly what I am thinking as well, ORAS can be used to facilitate a lot of these cases but it requires some tailoring. Our plan is to use it for smaller build-time metadata artifacts like SBOMs and OpenAPI specifications and so on. For that it’s pretty brilliant, since you get to have a 1:1 discoverability model in the registry between the app and its metadata.