Documentation
¶
Overview ¶
Package mirror implements the logic for the mirror commands.
Index ¶
- func Clone(ctx context.Context, opts CloneOptions) error
- func Copy(ctx context.Context, c *Copier) error
- func CopyFilterOnPlatform(ctx context.Context, c *Copier) ([]ocispec.Descriptor, error)
- func DescIsMirrorArtifact(ctx context.Context, desc ocispec.Descriptor, repo oras.GraphTarget) (bool, *ocispec.Index, error)
- func Deserialize(ctx context.Context, opts DeserializeOptions) (ocispec.Descriptor, error)
- func Gather(ctx context.Context, dataToolVersion string, opts GatherOptions) (ocispec.Descriptor, error)
- func ListArtifacts(ctx context.Context, opts DiffOptions) ([][]string, error)
- func Scatter(ctx context.Context, opts ScatterOptions) error
- func Serialize(ctx context.Context, destFile, checkpointFile, dataToolVersion string, ...) error
- type BlockBufOptions
- type ByteTracker
- type CloneOptions
- type Copier
- type DeserializeOptions
- type DiffOptions
- type GatherOptions
- type ResumeFromLedger
- type ScatterOptions
- type SerializeOptions
- type Source
- type WorkTracker
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Clone ¶
func Clone(ctx context.Context, opts CloneOptions) error
Clone will take a list of OCI references and scatter them according to the mapping spec.
func Copy ¶
Copy copies a source target to a destination target while handling cross-repo mounting. It uses the ExtendedCopyGraph function in oras to capture predecessor references.
func CopyFilterOnPlatform ¶
CopyFilterOnPlatform will copy from the root descriptor only the manifests that match the platforms defined.
func DescIsMirrorArtifact ¶
func DescIsMirrorArtifact(ctx context.Context, desc ocispec.Descriptor, repo oras.GraphTarget) (bool, *ocispec.Index, error)
DescIsMirrorArtifact takes a descriptor and a graph target and returns whether the descriptor is a mirror artifact, the index, and/or an error.
func Deserialize ¶
func Deserialize(ctx context.Context, opts DeserializeOptions) (ocispec.Descriptor, error)
Deserialize will extract the oci artifacts from a tar file (generated by ace-dt mirror serialize) to a destination target.
func Gather ¶
func Gather(ctx context.Context, dataToolVersion string, opts GatherOptions) (ocispec.Descriptor, error)
Gather will take the references defined in a SourceFile and consolidate them to a destination target.
func ListArtifacts ¶
func ListArtifacts(ctx context.Context, opts DiffOptions) ([][]string, error)
ListArtifacts handles the logic to list artifacts, expand artifacts, and filter artifacts in the mirror ls command.
Types ¶
type BlockBufOptions ¶
BlockBufOptions define the requirements to serialize with blockbuf.
type ByteTracker ¶
type ByteTracker struct {
Total int64
Deduplicated int64
// contains filtered or unexported fields
}
ByteTracker is an object for tracking digests seen, total bytes seen, and deduplication size.
func (*ByteTracker) AddDescriptor ¶
func (bt *ByteTracker) AddDescriptor(desc ocispec.Descriptor)
AddDescriptor adds a digest to the tracker.
type CloneOptions ¶
type CloneOptions struct {
MappingSpec string
Selectors []string
ConcurrentHTTP int
Platforms []string
Log *slog.Logger
SourceFile string
RootUI *ui.Task
Targeter reg.GraphTargeter
Recursive bool
DryRun bool
ContinueOnError bool
}
CloneOptions define the options required to run a Clone operation.
type Copier ¶
type Copier struct {
// contains filtered or unexported fields
}
Copier represents a copy object for mirror operations.
type DeserializeOptions ¶
type DeserializeOptions struct {
DestStorage content.Storage
DestTargetReference registry.Reference
SourceFile string
BufferSize int
DryRun bool
RootUI *ui.Task
Strict bool
Log *slog.Logger
}
DeserializeOptions specify the requirements to run the mirror deserialize command.
type DiffOptions ¶
type DiffOptions struct {
ExistingImages []string
RootArtifactReference string
Targeter reg.GraphTargeter
Expanded bool
}
DiffOptions represent the necessary options for the mirror ls command.
type GatherOptions ¶
type GatherOptions struct {
Platforms []string
ConcurrentHTTP int
DestStorage content.GraphStorage
Log *slog.Logger
RootUI *ui.Task
SourceFile string
Dest string
Annotations map[string]string
IndexFallback bool
DestReference registry.Reference
Recursive bool
Targeter reg.GraphTargeter
}
GatherOptions specify the requirements to run a mirror gather operation.
type ResumeFromLedger ¶
type ResumeFromLedger struct {
// Path is the path to the local file where the checkpoint ledger is stored
Path string
// Offset number of bytes to resume from. We assume all blobs referenced before this number exist at the destination.
Offset int64
}
ResumeFromLedger contains the data necessary to resume from a checkpoint.
type ScatterOptions ¶
type ScatterOptions struct {
SubsetFile string
Source content.ReadOnlyGraphStorage
SourceDesc ocispec.Descriptor
SourceReference registry.Reference
MappingSpec string
Selectors []string
ConcurrentHTTP int
RootUI *ui.Task
DryRun bool
Recursive bool
Targeter reg.GraphTargeter
}
ScatterOptions specify the requirements to run the mirror scatter command.
type SerializeOptions ¶
type SerializeOptions struct {
BufferOpts BlockBufOptions
ExistingCheckpoints []ResumeFromLedger
ExistingImages []string
Recursive bool
RepoFunc func(context.Context, string) (*remote.Repository, error)
SourceStorage content.ReadOnlyStorage
SourceReference string
Compression string
SourceDesc ocispec.Descriptor
WithManifestJSON bool
}
SerializeOptions define the requirements to run a serialize operation.
type Source ¶
Source represents a single source line in the `sources.list` file. It includes the source reference (name) and any user-defined labels.
func ProcessSourcesFile ¶
func ProcessSourcesFile(ctx context.Context, sourceFile string, sels selectors.LabelSelectorSet, concurrency int, ) ([]Source, error)
ProcessSourcesFile processes the `sources.list` file and returns a slice of Source objects that include the source reference, remote repository, descriptor, and the user-defined labels. If selectors or platforms filters are passed, then the source list will be modified to only include entries that follow those filters.
type WorkTracker ¶
type WorkTracker struct {
// contains filtered or unexported fields
}
WorkTracker is an object for tracking the number of blobs and bytes actually pushed.
func (*WorkTracker) Add ¶
func (wt *WorkTracker) Add(desc ocispec.Descriptor)
Add adds the digest and blob to the work tracker count.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
Package blockbuf implements a functionality similar to "mbuffer".
|
Package blockbuf implements a functionality similar to "mbuffer". |
|
Package encoding implements the protocol used to serialize and deserialize data across the wire.
|
Package encoding implements the protocol used to serialize and deserialize data across the wire. |
|
Package multiplex implements a multiplex and demultiplexer for streams of binary data
|
Package multiplex implements a multiplex and demultiplexer for streams of binary data |
|
Package testing helps generate test data for use in testing telemetry
|
Package testing helps generate test data for use in testing telemetry |