Documentation
¶
Overview ¶
Package scheme defines the interface for various reference schemes.
Index ¶
- func ReferrerFilter(config ReferrerConfig, rlIn referrer.ReferrerList) referrer.ReferrerList
- type API
- type Closer
- type GCLocker
- type ManifestConfig
- type ManifestOpts
- type ReferrerConfig
- type ReferrerOpts
- func WithReferrerAT(at string) ReferrerOptsdeprecated
- func WithReferrerAnnotations(annotations map[string]string) ReferrerOptsdeprecated
- func WithReferrerMatchOpt(mo descriptor.MatchOpt) ReferrerOpts
- func WithReferrerPlatform(p string) ReferrerOpts
- func WithReferrerSort(annotation string, desc bool) ReferrerOptsdeprecated
- func WithReferrerSource(r ref.Ref) ReferrerOpts
- type RepoConfig
- type RepoOpts
- type TagConfig
- type TagOpts
- type Throttler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ReferrerFilter ¶ added in v0.4.6
func ReferrerFilter(config ReferrerConfig, rlIn referrer.ReferrerList) referrer.ReferrerList
ReferrerFilter filters the referrer list according to the config.
Types ¶
type API ¶
type API interface {
// BlobDelete removes a blob from the repository.
BlobDelete(ctx context.Context, r ref.Ref, d descriptor.Descriptor) error
// BlobGet retrieves a blob, returning a reader.
BlobGet(ctx context.Context, r ref.Ref, d descriptor.Descriptor) (blob.Reader, error)
// BlobHead verifies the existence of a blob, the reader contains the headers but no body to read.
BlobHead(ctx context.Context, r ref.Ref, d descriptor.Descriptor) (blob.Reader, error)
// BlobMount attempts to perform a server side copy of the blob.
BlobMount(ctx context.Context, refSrc ref.Ref, refTgt ref.Ref, d descriptor.Descriptor) error
// BlobPut sends a blob to the repository, returns the digest and size when successful.
BlobPut(ctx context.Context, r ref.Ref, d descriptor.Descriptor, rdr io.Reader) (descriptor.Descriptor, error)
// ManifestDelete removes a manifest, including all tags that point to that manifest.
ManifestDelete(ctx context.Context, r ref.Ref, opts ...ManifestOpts) error
// ManifestGet retrieves a manifest from a repository.
ManifestGet(ctx context.Context, r ref.Ref) (manifest.Manifest, error)
// ManifestHead gets metadata about the manifest (existence, digest, mediatype, size).
ManifestHead(ctx context.Context, r ref.Ref) (manifest.Manifest, error)
// ManifestPut sends a manifest to the repository.
ManifestPut(ctx context.Context, r ref.Ref, m manifest.Manifest, opts ...ManifestOpts) error
// Ping verifies access to a registry or equivalent.
Ping(ctx context.Context, r ref.Ref) (ping.Result, error)
// ReferrerList returns a list of referrers to a given reference.
ReferrerList(ctx context.Context, r ref.Ref, opts ...ReferrerOpts) (referrer.ReferrerList, error)
// TagDelete removes a tag from the repository.
TagDelete(ctx context.Context, r ref.Ref) error
// TagList returns a list of tags from the repository.
TagList(ctx context.Context, r ref.Ref, opts ...TagOpts) (*tag.List, error)
}
API is used to interface between different methods to store images.
type GCLocker ¶ added in v0.5.0
type GCLocker interface {
// GCLock a reference to prevent GC from triggering during a put, locks are not exclusive.
GCLock(r ref.Ref)
// GCUnlock a reference to allow GC (once all locks are released).
// The reference should be closed after this step and unlock should only be called once per each Lock call.
GCUnlock(r ref.Ref)
}
GCLocker is used to indicate locking is available for GC management.
type ManifestConfig ¶
type ManifestConfig struct {
CheckReferrers bool
Child bool // used when pushing a child of a manifest list, skips indexing in ocidir
Manifest manifest.Manifest
}
ManifestConfig is used by schemes to import ManifestOpts.
type ManifestOpts ¶
type ManifestOpts func(*ManifestConfig)
ManifestOpts is used to set options on manifest APIs.
func WithManifest ¶ added in v0.4.5
func WithManifest(m manifest.Manifest) ManifestOpts
WithManifest is used to pass the manifest to a method to avoid an extra GET request. This is used on a delete to check for referrers.
func WithManifestCheckReferrers ¶ added in v0.4.5
func WithManifestCheckReferrers() ManifestOpts
WithManifestCheckReferrers is used when deleting a manifest. It indicates the manifest should be fetched and referrers should be deleted if defined.
func WithManifestChild ¶
func WithManifestChild() ManifestOpts
WithManifestChild indicates the API call is on a child manifest. This is used internally when copying multi-platform manifests. This bypasses tracking of an untagged digest in ocidir which is needed for garbage collection.
type ReferrerConfig ¶ added in v0.4.3
type ReferrerConfig struct {
MatchOpt descriptor.MatchOpt // filter/sort results
Platform string // get referrers for a specific platform
SrcRepo ref.Ref // repo used to query referrers
}
ReferrerConfig is used by schemes to import ReferrerOpts.
type ReferrerOpts ¶ added in v0.4.3
type ReferrerOpts func(*ReferrerConfig)
ReferrerOpts is used to set options on referrer APIs.
func WithReferrerAT
deprecated
added in
v0.4.5
func WithReferrerAT(at string) ReferrerOpts
WithReferrerAT filters by a specific artifactType value.
Deprecated: replace with WithReferrerMatchOpt.
func WithReferrerAnnotations
deprecated
added in
v0.4.5
func WithReferrerAnnotations(annotations map[string]string) ReferrerOpts
WithReferrerAnnotations filters by a list of annotations, all of which must match.
Deprecated: replace with WithReferrerMatchOpt.
func WithReferrerMatchOpt ¶ added in v0.5.2
func WithReferrerMatchOpt(mo descriptor.MatchOpt) ReferrerOpts
WithReferrerMatchOpt filters results using descriptor.MatchOpt.
func WithReferrerPlatform ¶ added in v0.4.6
func WithReferrerPlatform(p string) ReferrerOpts
WithReferrerPlatform gets referrers for a single platform from a multi-platform manifest. Note that this is implemented by [regclient.ReferrerList] and not the individual scheme implementations.
func WithReferrerSort
deprecated
added in
v0.5.0
func WithReferrerSort(annotation string, desc bool) ReferrerOpts
WithReferrerSort orders the resulting referrers listing according to a specified annotation.
Deprecated: replace with WithReferrerMatchOpt.
func WithReferrerSource ¶ added in v0.8.0
func WithReferrerSource(r ref.Ref) ReferrerOpts
WithReferrerSource pulls referrers from a separate source. Note that this is implemented by [regclient.ReferrerList] and not the individual scheme implementations.
type RepoConfig ¶
RepoConfig is used by schemes to import RepoOpts.
type RepoOpts ¶
type RepoOpts func(*RepoConfig)
RepoOpts is used to set options on repo APIs.
func WithRepoLast ¶
WithRepoLast passes the last received repository for requesting the next batch of repositories. Registries may ignore this.
func WithRepoLimit ¶
WithRepoLimit passes a maximum number of repositories to return to the repository list API. Registries may ignore this.
type TagOpts ¶
type TagOpts func(*TagConfig)
TagOpts is used to set options on tag APIs.
func WithTagLast ¶
WithTagLast passes the last received tag for requesting the next batch of tags. Registries may ignore this.
func WithTagLimit ¶
WithTagLimit passes a maximum number of tags to return to the tag list API. Registries may ignore this.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package ocidir implements the OCI Image Layout scheme with a directory (not packed in a tar)
|
Package ocidir implements the OCI Image Layout scheme with a directory (not packed in a tar) |
|
Package reg implements the OCI registry scheme used by most images (host:port/repo:tag)
|
Package reg implements the OCI registry scheme used by most images (host:port/repo:tag) |