package builder

import "github.com/containerd/accelerated-container-image/cmd/convertor/builder"

Index

Constants

const (
	ArtifactTypeOverlaybd = "application/vnd.containerd.overlaybd.native.v1+json"
	ArtifactTypeTurboOCI  = "application/vnd.containerd.overlaybd.turbo.v1+json"
)

Functions

func Build

func Build(ctx context.Context, opt BuilderOptions) error

func NewOverlayBDBuilderEngine

func NewOverlayBDBuilderEngine(base *builderEngineBase) builderEngine

func NewTurboOCIBuilderEngine

func NewTurboOCIBuilderEngine(base *builderEngineBase) builderEngine

Types

type BuilderEngineType

type BuilderEngineType int
const (
	Overlaybd BuilderEngineType = iota
	TurboOCI
)

func (BuilderEngineType) ArtifactType

func (engine BuilderEngineType) ArtifactType() string

type BuilderOptions

type BuilderOptions struct {
	Ref       string
	TargetRef string
	Auth      string
	PlainHTTP bool
	WorkDir   string
	OCI       bool
	FsType    string
	Mkfs      bool
	Vsize     int
	DB        database.ConversionDatabase
	Engine    BuilderEngineType
	CertOption
	Reserve      bool
	NoUpload     bool
	DumpManifest bool

	// ConcurrencyLimit limits the number of manifests that can be built at once
	// 0 means no limit
	ConcurrencyLimit int

	// disable sparse file when converting overlaybd
	DisableSparse bool

	// Push manifests with subject
	Referrer bool
}

type CertOption

type CertOption struct {
	CertDirs    []string
	RootCAs     []string
	ClientCerts []string
	Insecure    bool
}

-------------------- certification --------------------

type Deduplicateable

type Deduplicateable interface {
	// deduplication functions
	// finds already converted layer in db and validates presence in registry
	CheckForConvertedLayer(ctx context.Context, idx int) (specs.Descriptor, error)

	// downloads the already converted layer
	DownloadConvertedLayer(ctx context.Context, idx int, desc specs.Descriptor) error

	// store chainID -> converted layer mapping for layer deduplication
	StoreConvertedLayerDetails(ctx context.Context, idx int) error

	// store manifest digest -> converted manifest to avoid re-conversion
	CheckForConvertedManifest(ctx context.Context) (specs.Descriptor, error)

	// tag a converted manifest -> converted manifest to avoid re-conversion
	TagPreviouslyConvertedManifest(ctx context.Context, desc specs.Descriptor) error

	// store manifest digest -> converted manifest to avoid re-conversion
	StoreConvertedManifestDetails(ctx context.Context) error
}

Deduplicateable provides a number of functions to avoid duplicating work when converting images It is used by the builderEngine to avoid re-converting layers and manifests

Source Files

builder.go builder_engine.go builder_utils.go overlaybd_builder.go turboOCI_builder.go

Version
v1.3.0 (latest)
Published
Feb 13, 2025
Platform
linux/amd64
Imports
41 packages
Last checked
12 hours ago

Tools for package owners.