Comments (10)
As Transmitting Thick Bundles mentioned, you may decompose thick bundles for the purpose of efficiently transmitting them.
from oras.
For thin bundles, it's just a bundle.json
with image references. For referenced docker images, you can do normal docker push
to a registry or the same repository with different tags. Currently, oras
does not support manifest list well.
from oras.
Ok, thanks a lot for the response here.
I'm able to push the images separately and reference them, but it would be really cool to see support for an OCI index.
Is there anything specifically blocking? How could I help?
See radu-matei/coras#8 for more context.
Thanks!
from oras.
A manifest list should contain manifest only. Also, oras
does support upload multiple files in a single manifest.
from oras.
@radu-matei @shizhMSFT just checking in, is there any request for new functionality here? It sounds like the original ask is possible?
from oras.
Continuing on the background about CNAB - when we push a bundle using oras
, we might also want to push the container images referenced in the bundle.
However, regardless of how many other images are in the same repository (under different tags), the resulting manifest created by oras
only contains the layer pointing to the bundle file.
While functionally it has no impact, it would be great for the resulting manifest to contain both the bundle and other image manifests - so oras
would generate an OCI index, as opposed to a single image config.
from oras.
According to the OCI Image Index Specification, the image index is a higher-level manifest which points to specific image manifests. Therefore, it is not a good idea to store non-manifest in a manifest list.
I understand that having everything in a single tag will be grateful. Here is my proposal to your problem.
A thin CNAB is a bundle.json
file. It can be pushed by oras
as a single manifest. All its referenced images can be pushed by docker
or other tools as individual manifests.
A fat CNAB can be viewed as a collection of the thin CNAB and its referenced images. Naturally, a fat CNAB is a signel manifest list / index of the manifests of the thin CNAB and its referenced images.
manifest index (fat CNAB)
|- oras manifest (thin CNAB)
| |- config
| |- layer (bundle.json)
|- image manifest A
|- image manifest B
|- image manifest C
Overall, the feature we need is to combine multiple manifests to be a single manifest index. However, it's more like a manifest managment feature other than a feature of oras
.
@jdolitsky @sajayantony Any comments?
from oras.
The docker manifest create command handles building of manifest lists. Enabling ORAS to support manifest list does make sense if it fulfills CNABs spec.
The OCI Index may be considered different from a manifest list and by definition is an index of things rather than a list of manifest. I think that’s what CNAB is might be going for and I don’t know the Spec enough to comment.
The one interesting thing to consider is that CNAB pull push should consider moving all elements of the index unlike docker pull push which only gets a single matching architecture.
from oras.
@radu-matei, I believe the ask here is to add Index support?
That will come as part of the Notary v2 work
from oras.
Closing as the issue content seems to be outdated. Please re-open if needed.
from oras.
Related Issues (20)
- improve error message when invalid options given when pushing
- improve error message HOT 5
- oras attach failing for registries that don't support 1.1-RC image media type HOT 16
- Help message is not properly rendered for `oras attach` HOT 1
- Support formatted JSON output for oras copy
- manifest delete is leaking indexes when deleting client-managed referrer HOT 16
- usage output of `oras tag list` is wrong
- improve error message when registry credential config is not valid
- Add mount support for `oras cp`
- Optionally support crane/docker style auth for greater compatibility HOT 3
- add `blob mount` to support mounting a blob across repositories HOT 1
- couldn't upload qcow2 images to harbor HOT 7
- `oras manifest fetch` will panic if `--platform` flag is used on certain index/manifest list HOT 1
- --debug should redact Location headers HOT 2
- oras blob fetch failed to output to stdout in TTY mode HOT 2
- Support OCI image-spec v1.1.0
- bump: update golang to `1.22` HOT 1
- Test fail on ARM with "fatal error: traceback did not unwind completely" HOT 2
- Support auto-generated CLI reference doc HOT 1
- e2e tests failing zot registiry
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from oras.