Documentation
¶
Index ¶
- func DeprecatedSchema1ImageError(ref reference.Named) error
- func GetRepositories(ctx context.Context, ref reference.Named, config *ImagePullConfig) ([]distribution.Repository, error)
- func Pull(ctx context.Context, ref reference.Named, config *ImagePullConfig, ...) error
- func Push(ctx context.Context, ref reference.Named, config *ImagePushConfig) error
- func Tags(ctx context.Context, ref reference.Named, config *Config) ([]string, error)
- type Config
- type ContentStore
- type ImageConfigStore
- type ImagePullConfig
- type ImagePushConfig
- type PushLayer
- type PushLayerProvider
- type RegistryResolver
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetRepositories ¶
func GetRepositories(ctx context.Context, ref reference.Named, config *ImagePullConfig) ([]distribution.Repository, error)
GetRepositories returns a list of repositories configured for the given reference. Multiple repositories can be returned if the reference is for the default (Docker Hub) registry and a mirror is configured, but it omits registries that were not reachable (pinging the /v2/ endpoint failed).
It returns an error if it was unable to reach any of the registries for the given reference, or if the provided reference is invalid.
func Pull ¶
func Pull(ctx context.Context, ref reference.Named, config *ImagePullConfig, local ContentStore) error
Pull initiates a pull operation. image is the repository name to pull, and tag may be either empty, or indicate a specific tag to pull.
Types ¶
type Config ¶ added in v1.13.0
type Config struct {
// MetaHeaders stores HTTP headers with metadata about the image
MetaHeaders map[string][]string
// AuthConfig holds authentication credentials for authenticating with
// the registry.
AuthConfig *registry.AuthConfig
// ProgressOutput is the interface for showing the status of the pull
// operation.
ProgressOutput progress.Output
// RegistryService is the registry service to use for TLS configuration
// and endpoint lookup.
RegistryService RegistryResolver
// ImageEventLogger notifies events for a given image
ImageEventLogger func(id, name string, action events.Action)
// MetadataStore is the storage backend for distribution-specific
// metadata.
MetadataStore metadata.Store
// ImageStore manages images.
ImageStore ImageConfigStore
// ReferenceStore manages tags. This value is optional, when excluded
// content will not be tagged.
ReferenceStore refstore.Store
}
Config stores configuration for communicating with a registry.
type ContentStore ¶
type ContentStore interface {
content.Ingester
content.Provider
Info(ctx context.Context, dgst digest.Digest) (content.Info, error)
Abort(ctx context.Context, ref string) error
Update(ctx context.Context, info content.Info, fieldpaths ...string) (content.Info, error)
}
ContentStore is the interface used to persist registry blobs
Currently this is only used to persist manifests and manifest lists. It is exported because `distribution.Pull` takes one as an argument.
type ImageConfigStore ¶ added in v1.13.0
type ImageConfigStore interface {
Put(context.Context, []byte) (digest.Digest, error)
Get(context.Context, digest.Digest) ([]byte, error)
}
ImageConfigStore handles storing and getting image configurations by digest. Allows getting an image configurations rootfs from the configuration.
func NewImageConfigStoreFromStore ¶ added in v1.13.0
func NewImageConfigStoreFromStore(is image.Store) ImageConfigStore
NewImageConfigStoreFromStore returns an ImageConfigStore backed by an image.Store for container images.
type ImagePullConfig ¶
type ImagePullConfig struct {
Config
// DownloadManager manages concurrent pulls.
DownloadManager *xfer.LayerDownloadManager
// Schema2Types is an optional list of valid schema2 configuration types
// allowed by the pull operation. If omitted, the default list of accepted
// types is used.
Schema2Types []string
// Platform is the requested platform of the image being pulled
Platform *ocispec.Platform
}
ImagePullConfig stores pull configuration.
type ImagePushConfig ¶
type ImagePushConfig struct {
Config
// ConfigMediaType is the configuration media type for
// schema2 manifests.
ConfigMediaType string
// LayerStores manages layers.
LayerStores PushLayerProvider
// UploadManager dispatches uploads.
UploadManager *xfer.LayerUploadManager
}
ImagePushConfig stores push configuration.
type PushLayer ¶ added in v1.13.0
type PushLayer interface {
ChainID() layer.ChainID
DiffID() layer.DiffID
Parent() PushLayer
Open() (io.ReadCloser, error)
Size() int64
MediaType() string
Release()
}
PushLayer is a pushable layer with metadata about the layer and access to the content of the layer.
type PushLayerProvider ¶ added in v1.13.0
PushLayerProvider provides layers to be pushed by ChainID.
func NewLayerProvidersFromStore ¶
func NewLayerProvidersFromStore(ls layer.Store) PushLayerProvider
NewLayerProvidersFromStore returns layer providers backed by an instance of LayerStore. Only getting layers as gzipped tars is supported.
type RegistryResolver ¶
type RegistryResolver interface {
LookupPushEndpoints(hostname string) (endpoints []registrypkg.APIEndpoint, err error)
LookupPullEndpoints(hostname string) (endpoints []registrypkg.APIEndpoint, err error)
ResolveRepository(name reference.Named) (*registrypkg.RepositoryInfo, error)
}
RegistryResolver is used for TLS configuration and endpoint lookup.