Documentation ¶
Index ¶
- func CreateV2Manifest(name, tag string, img *image.Image, fsLayers map[layer.DiffID]digest.Digest) (*schema1.Manifest, error)
- func NewV2Repository(repoInfo *registry.RepositoryInfo, endpoint registry.APIEndpoint, ...) (distribution.Repository, error)
- func Pull(ctx context.Context, ref reference.Named, imagePullConfig *ImagePullConfig) error
- func Push(ctx context.Context, ref reference.Named, imagePushConfig *ImagePushConfig) error
- type ImagePullConfig
- type ImagePushConfig
- type Puller
- type Pusher
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CreateV2Manifest ¶
func CreateV2Manifest(name, tag string, img *image.Image, fsLayers map[layer.DiffID]digest.Digest) (*schema1.Manifest, error)
CreateV2Manifest creates a V2 manifest from an image config and set of FSLayer digests. FIXME: This should be moved to the distribution repo, since it will also be useful for converting new manifests to the old format.
func NewV2Repository ¶
func NewV2Repository(repoInfo *registry.RepositoryInfo, endpoint registry.APIEndpoint, metaHeaders http.Header, authConfig *types.AuthConfig, actions ...string) (distribution.Repository, error)
NewV2Repository returns a repository (v2 only). It creates a HTTP transport providing timeout settings and authentication support, and also verifies the remote API version.
Types ¶
type ImagePullConfig ¶
type ImagePullConfig struct { // MetaHeaders stores HTTP headers with metadata about the image // (DockerHeaders with prefix X-Meta- in the request). MetaHeaders map[string][]string // AuthConfig holds authentication credentials for authenticating with // the registry. AuthConfig *types.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 *registry.Service // EventsService is the events service to use for logging. EventsService *events.Events // MetadataStore is the storage backend for distribution-specific // metadata. MetadataStore metadata.Store // ImageStore manages images. ImageStore image.Store // TagStore manages tags. TagStore tag.Store // DownloadManager manages concurrent pulls. DownloadManager *xfer.LayerDownloadManager }
ImagePullConfig stores pull configuration.
type ImagePushConfig ¶
type ImagePushConfig struct { // MetaHeaders store HTTP headers with metadata about the image // (DockerHeaders with prefix X-Meta- in the request). MetaHeaders map[string][]string // AuthConfig holds authentication credentials for authenticating with // the registry. AuthConfig *types.AuthConfig // ProgressOutput is the interface for showing the status of the push // operation. ProgressOutput progress.Output // RegistryService is the registry service to use for TLS configuration // and endpoint lookup. RegistryService *registry.Service // EventsService is the events service to use for logging. EventsService *events.Events // MetadataStore is the storage backend for distribution-specific // metadata. MetadataStore metadata.Store // LayerStore manages layers. LayerStore layer.Store // ImageStore manages images. ImageStore image.Store // TagStore manages tags. TagStore tag.Store // TrustKey is the private key for legacy signatures. This is typically // an ephemeral key, since these signatures are no longer verified. TrustKey libtrust.PrivateKey // UploadManager dispatches uploads. UploadManager *xfer.LayerUploadManager }
ImagePushConfig stores push configuration.
type Puller ¶
type Puller interface { // Pull tries to pull the image referenced by `tag` // Pull returns an error if any, as well as a boolean that determines whether to retry Pull on the next configured endpoint. // Pull(ctx context.Context, ref reference.Named) (fallback bool, err error) }
Puller is an interface that abstracts pulling for different API versions.
type Pusher ¶
type Pusher interface { // Push tries to push the image configured at the creation of Pusher. // Push returns an error if any, as well as a boolean that determines whether to retry Push on the next configured endpoint. // // TODO(tiborvass): have Push() take a reference to repository + tag, so that the pusher itself is repository-agnostic. Push(ctx context.Context) (fallback bool, err error) }
Pusher is an interface that abstracts pushing for different API versions.
func NewPusher ¶
func NewPusher(ref reference.Named, endpoint registry.APIEndpoint, repoInfo *registry.RepositoryInfo, imagePushConfig *ImagePushConfig) (Pusher, error)
NewPusher creates a new Pusher interface that will push to either a v1 or v2 registry. The endpoint argument contains a Version field that determines whether a v1 or v2 pusher will be created. The other parameters are passed through to the underlying pusher implementation for use during the actual push operation.