converter

package
v0.3.0-rc.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 18, 2022 License: Apache-2.0 Imports: 24 Imported by: 8

Documentation

Index

Constants

View Source
const (
	ManifestOSFeatureNydus   = "nydus.remoteimage.v1"
	MediaTypeNydusBlob       = "application/vnd.oci.image.layer.nydus.blob.v1"
	BootstrapFileNameInLayer = "image/image.boot"

	ManifestNydusCache = "containerd.io/snapshot/nydus-cache"

	LayerAnnotationFSVersion          = "containerd.io/snapshot/nydus-fs-version"
	LayerAnnotationNydusBlob          = "containerd.io/snapshot/nydus-blob"
	LayerAnnotationNydusBlobDigest    = "containerd.io/snapshot/nydus-blob-digest"
	LayerAnnotationNydusBlobSize      = "containerd.io/snapshot/nydus-blob-size"
	LayerAnnotationNydusBlobIDs       = "containerd.io/snapshot/nydus-blob-ids"
	LayerAnnotationNydusBootstrap     = "containerd.io/snapshot/nydus-bootstrap"
	LayerAnnotationNydusSourceChainID = "containerd.io/snapshot/nydus-source-chainid"

	LayerAnnotationNydusReferenceBlobIDs = "containerd.io/snapshot/nydus-reference-blob-ids"

	LayerAnnotationUncompressed = "containerd.io/uncompressed"
)

Variables

This section is empty.

Functions

func ConvertHookFunc added in v0.3.0

func ConvertHookFunc(opt PackOption) converter.ConvertHookFunc

ConvertHookFunc returns a function which will be used as a callback called for each blob after conversion is done. The function only hooks the manifest conversion and merges all the nydus blob layers into a nydus bootstrap layer and update the image config.

func LayerConvertFunc added in v0.3.0

func LayerConvertFunc(opt PackOption) converter.ConvertFunc

LayerConvertFunc returns a function which converts an OCI image layer to a nydus blob layer, and set the media type to "application/vnd.oci.image.layer.nydus.blob.v1".

func Merge

func Merge(ctx context.Context, layers []Layer, dest io.Writer, opt MergeOption) error

Merge multiple nydus bootstraps (from each layer of image) to a final bootstrap.

func Pack added in v0.3.0

func Pack(ctx context.Context, dest io.Writer, opt PackOption) (io.WriteCloser, error)

Pack converts an OCI tar stream to nydus formatted stream with a tar-like structure that arranges the data as follows:

`blob_data | blob_tar_header | bootstrap_data | bootstrap_tar_header`

The caller should write OCI tar stream into the returned `io.WriteCloser`, then the Pack method will write the nydus formatted stream to `dest` provided by the caller.

Important: the caller must check `io.WriteCloser.Close() == nil` to ensure the conversion workflow is finished.

func Unpack added in v0.3.0

func Unpack(ctx context.Context, ia content.ReaderAt, dest io.Writer, opt UnpackOption) error

Types

type Backend added in v0.3.0

type Backend interface {
	// Push pushes specified blob file to remote storage backend.
	Push(ctx context.Context, ra content.ReaderAt, blobDigest digest.Digest) error
	// Check checks whether a blob exists in remote storage backend,
	// blob exists -> return (blobPath, nil)
	// blob not exists -> return ("", err)
	Check(blobDigest digest.Digest) (string, error)
	// Type returns backend type name.
	Type() string
}

Backend uploads blobs generated by nydus-image builder to a backend storage such as: - oss: A object storage backend, which uses its SDK to upload blob file.

type Layer

type Layer struct {
	// Digest represents the hash of whole tar blob.
	Digest digest.Digest
	// ReaderAt holds the reader of whole tar blob.
	ReaderAt content.ReaderAt
}

type MergeOption

type MergeOption struct {
	// WorkDir is used as the work directory during layer merge.
	WorkDir string
	// BuilderPath holds the path of `nydus-image` binary tool.
	BuilderPath string
	// ChunkDictPath holds the bootstrap path of chunk dict image.
	ChunkDictPath string
	// PrefetchPatterns holds file path pattern list want to prefetch.
	PrefetchPatterns string
	// WithTar puts bootstrap into a tar stream (no gzip).
	WithTar bool
}

type PackOption added in v0.3.0

type PackOption struct {
	// WorkDir is used as the work directory during layer pack.
	WorkDir string
	// BuilderPath holds the path of `nydus-image` binary tool.
	BuilderPath string
	// FsVersion specifies nydus RAFS format version, possible
	// values: `5`, `6` (EROFS-compatible), default is `5`.
	FsVersion string
	// ChunkDictPath holds the bootstrap path of chunk dict image.
	ChunkDictPath string
	// PrefetchPatterns holds file path pattern list want to prefetch.
	PrefetchPatterns string
	// Compressor specifies nydus blob compression algorithm.
	Compressor string
	// Backend uploads blobs generated by nydus-image builder to a backend storage.
	Backend Backend
}

type UnpackOption added in v0.3.0

type UnpackOption struct {
	// WorkDir is used as the work directory during layer unpack.
	WorkDir string
	// BuilderPath holds the path of `nydus-image` binary tool.
	BuilderPath string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL