Expand description
APIs for “unencapsulating” OSTree commits from container images
This code only operates on container images that were created via
encapsulate.
§External dependency on container-image-proxy
This code requires https://github.com/cgwalters/container-image-proxy installed as a binary in $PATH.
The rationale for this is that while there exist Rust crates to speak the Docker distribution API, the Go library https://github.com/containers/image/ supports key things we want for production use like:
- Image mirroring and remapping; effectively
man containers-registries.confFor example, we need to support an administrator mirroring an ostree-container into a disconnected registry, without changing all the pull specs. - Signing
Additionally, the proxy “upconverts” manifests into OCI, so we don’t need to care about parsing the Docker manifest format (as used by most registries still).
Structs§
- Import
- The result of an import operation
- Progress
Reader 🔒 - A read wrapper that updates the download progress.
Functions§
- fetch_
layer 🔒 - A wrapper for [
get_blob] which fetches a layer and decompresses it. - fetch_
manifest - Download the manifest for a target image and its sha256 digest.
- fetch_
manifest_ and_ config - Download the manifest for a target image and its sha256 digest, as well as the image configuration.
- fetch_
manifest_ 🔒impl - join_
fetch 🔒 - Use this to process potential errors from a worker and a driver. This is really a brutal hack around the fact that an error can occur on either our side or in the proxy. But if an error occurs on our side, then we will close the pipe, which will also cause the proxy to error out.
- unencapsulate
- Fetch a container image and import its embedded OSTree commit.
Type Aliases§
- Progress 🔒