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

Store artifact image as oci-dir #108

Merged
merged 62 commits into from
May 9, 2024
Merged

Store artifact image as oci-dir #108

merged 62 commits into from
May 9, 2024

Conversation

termoshtt
Copy link
Owner

@termoshtt termoshtt commented Apr 15, 2024

  • image::{Artifact, Builder} are introduced to represent ocipkg's artifact and its builder.
    • This supports application/vnd.ocipkg.v1.artifact and old style artifact used in 0.2.x. It is called v0 format.
  • The manifest and blobs stored in local storage by Store Manifest JSON and blobs #107 has been changed also in this PR. They are stored as usual oci-dir format:
.
├── libocipkg_static_rust.a
└── .oci-dir
    ├── blobs
    │   └── sha256
    │       ├── 7299ae02d5a3ac14e45c62670341d869f4cb3b41eebbfa59acbcfdc6e864288a
    │       ├── b9a51607f9fbe50601a623cf5060506dee43798db9e1ccc014404edffd2b5c2b
    │       └── 2aedb7a0fd572b2cd4dd3408f7f83642f76ced60308db082470c76ed52d3845c
    └── index.json

@termoshtt termoshtt self-assigned this Apr 15, 2024
@termoshtt termoshtt changed the title OCI Artifact support OCI Artifact support based on OCI image spec 1. Apr 15, 2024
@termoshtt termoshtt changed the title OCI Artifact support based on OCI image spec 1. OCI Artifact support based on OCI image spec 1.1 Apr 15, 2024
termoshtt added a commit that referenced this pull request Apr 25, 2024
Split from #108 

This PR introduces three media types,
`application/vnd.ocipkg.v1.{artifact,config+json,layer.tar+gzip}`:

- `application/vnd.ocipkg.v1.artifact` is set as `artifactType` in [OCI
Image
Manifest](https://github.com/opencontainers/image-spec/blob/v1.1.0/manifest.md).
Manifest with this type must satisfying followings:
- `config` must be `application/vnd.ocipkg.v1.config+json`. This is a
map from the digest of layer to file path list contained the layer like:
    ```json
    {
      "layers": {

"sha256:9b56444eec38adba2fbf7381ed832de98489045c6b322e36388b8ba29ebac595":
[
          "test/Dockerfile",
          "test/fixture.sh"
        ]
      }
    }
    ```
- `layers` must be a list of descriptors with
`application/vnd.ocipkg.v1.layer.tar+gzip` media type
termoshtt added a commit that referenced this pull request May 7, 2024
…rtifact` (#126)

Split from #108 

- `ArtifactBuilder` will be used for building ocipkg artifact instead of
OCI Artifact in #108
@termoshtt termoshtt marked this pull request as ready for review May 9, 2024 11:57
@termoshtt termoshtt merged commit 8c30a0d into main May 9, 2024
14 checks passed
@termoshtt termoshtt deleted the oci-artifact branch May 9, 2024 11:58
@termoshtt termoshtt added the change Change existing functionality. label May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
change Change existing functionality.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant