distribution package - github.com/distribution/distribution - Go Packages
Package distribution will define the interfaces for the components of docker distribution. The goal is to allow users to reliably package, ship and store content related to docker images.
This is currently a work in progress. More details are available in the README.md.
- Variables
- func ManifestMediaTypes() (mediaTypes []string)
- func RegisterManifestSchema(mediaType string, u UnmarshalFunc) error
- func UnmarshalManifest(ctHeader string, p []byte) (Manifest, Descriptor, error)
- type BlobCreateOption
- type BlobDeleter
- type BlobDescriptorService
- type BlobDescriptorServiceFactory
- type BlobEnumerator
- type BlobIngester
- type BlobProvider
- type BlobServer
- type BlobService
- type BlobStatter
- type BlobStore
- type BlobWriter
- type CreateOptions
- type Describable
- type Descriptor
- type ErrBlobInvalidDigest
- type ErrBlobMounted
- type ErrManifestBlobUnknown
- type ErrManifestNameInvalid
- type ErrManifestUnknown
- type ErrManifestUnknownRevision
- type ErrManifestUnverified
- type ErrManifestVerification
- type ErrRepositoryNameInvalid
- type ErrRepositoryUnknown
- type ErrTagUnknown
- type Manifest
- type ManifestBuilder
- type ManifestEnumerator
- type ManifestService
- type ManifestServiceOption
- type Namespace
- type ReadSeekCloser
- type Repository
- type RepositoryEnumerator
- type RepositoryRemover
- type Scope
- type TagService
- type UnmarshalFunc
- type WithManifestMediaTypesOption
- type WithTagOption
This section is empty.
var ( ErrBlobExists = errors.New("blob exists") ErrBlobDigestUnsupported = errors.New("unsupported blob digest") ErrBlobUnknown = errors.New("unknown blob") ErrBlobUploadUnknown = errors.New("blob upload unknown") ErrBlobInvalidLength = errors.New("blob invalid length") )
ErrAccessDenied is returned when an access to a requested resource is denied.
ErrManifestNotModified is returned when a conditional manifest GetByTag returns nil due to the client indicating it has the latest version
ErrSchemaV1Unsupported is returned when a client tries to upload a schema v1 manifest but the registry is configured to reject it
ErrUnsupported is returned when an unimplemented or unsupported action is performed
GlobalScope represents the full namespace scope which contains all other scopes.
func ManifestMediaTypes() (mediaTypes []string)
ManifestMediaTypes returns the supported media types for manifests.
RegisterManifestSchema registers an UnmarshalFunc for a given schema type. This should be called from specific
UnmarshalManifest looks up manifest unmarshal functions based on MediaType
type BlobCreateOption interface {
Apply(interface{}) error
}
BlobCreateOption is a general extensible function argument for blob creation methods. A BlobIngester may choose to honor any or none of the given BlobCreateOptions, which can be specific to the implementation of the BlobIngester receiving them. TODO (brianbland): unify this with ManifestServiceOption in the future
BlobDeleter enables deleting blobs from storage.
BlobDescriptorService manages metadata about a blob by digest. Most implementations will not expose such an interface explicitly. Such mappings should be maintained by interacting with the BlobIngester. Hence, this is left off of BlobService and BlobStore.
type BlobDescriptorServiceFactory interface {
BlobAccessController(svc BlobDescriptorService) BlobDescriptorService
}
BlobDescriptorServiceFactory creates middleware for BlobDescriptorService.
BlobEnumerator enables iterating over blobs from storage
BlobIngester ingests blob data.
BlobProvider describes operations for getting blob data.
BlobServer can serve blobs via http.
type BlobService interface {
BlobStatter
BlobProvider
BlobIngester
}
BlobService combines the operations to access, read and write blobs. This can be used to describe remote blob services.
BlobStatter makes blob descriptors available by digest. The service may provide a descriptor of a different digest if the provided digest is not canonical.
type BlobStore interface {
BlobService
BlobServer
BlobDeleter
}
BlobStore represent the entire suite of blob related operations. Such an implementation can access, read, write, delete and serve blobs.
BlobWriter provides a handle for inserting data into a blob store. Instances should be obtained from BlobWriteService.Writer and BlobWriteService.Resume. If supported by the store, a writer can be recovered with the id.
CreateOptions is a collection of blob creation modifiers relevant to general blob storage intended to be configured by the BlobCreateOption.Apply method.
type Describable interface {
Descriptor() Descriptor
}
Describable is an interface for descriptors
type Descriptor struct {
MediaType string `json:"mediaType,omitempty"`
Size int64 `json:"size,omitempty"`
Digest digest.Digest `json:"digest,omitempty"`
URLs []string `json:"urls,omitempty"`
Annotations map[string]string `json:"annotations,omitempty"`
Platform *v1.Platform `json:"platform,omitempty"`
}
Descriptor describes targeted content. Used in conjunction with a blob store, a descriptor can be used to fetch, store and target any kind of blob. The struct also describes the wire protocol format. Fields should only be added but never changed.
func (d Descriptor) Descriptor() Descriptor
Descriptor returns the descriptor, to make it satisfy the Describable interface. Note that implementations of Describable are generally objects which can be described, not simply descriptors; this exception is in place to make it more convenient to pass actual descriptors to functions that expect Describable objects.
ErrBlobInvalidDigest returned when digest check fails.
ErrBlobMounted returned when a blob is mounted from another repository instead of initiating an upload session.
ErrManifestBlobUnknown returned when a referenced blob cannot be found.
ErrManifestNameInvalid should be used to denote an invalid manifest name. Reason may set, indicating the cause of invalidity.
ErrManifestUnknown is returned if the manifest is not known by the registry.
ErrManifestUnknownRevision is returned when a manifest cannot be found by revision within a repository.
type ErrManifestUnverified struct{}
ErrManifestUnverified is returned when the registry is unable to verify the manifest.
type ErrManifestVerification []error
ErrManifestVerification provides a type to collect errors encountered during manifest verification. Currently, it accepts errors of all types, but it may be narrowed to those involving manifest verification.
ErrRepositoryNameInvalid should be used to denote an invalid repository name. Reason may set, indicating the cause of invalidity.
type ErrRepositoryUnknown struct {
Name string
}
ErrRepositoryUnknown is returned if the named repository is not known by the registry.
type ErrTagUnknown struct {
Tag string
}
ErrTagUnknown is returned if the given tag is not known by the tag service
type Manifest interface {
References() []Descriptor
Payload() (mediaType string, payload []byte, err error)
}
Manifest represents a registry object specifying a set of references and an optional target
ManifestBuilder creates a manifest allowing one to include dependencies. Instances can be obtained from a version-specific manifest package. Manifest specific data is passed into the function which creates the builder.
ManifestEnumerator enables iterating over manifests
ManifestService describes operations on image manifests.
type ManifestServiceOption interface {
Apply(ManifestService) error
}
ManifestServiceOption is a function argument for Manifest Service methods
func WithManifestMediaTypes(mediaTypes []string) ManifestServiceOption
WithManifestMediaTypes lists the media types the client wishes the server to provide.
WithTag allows a tag to be passed into Put
Namespace represents a collection of repositories, addressable by name. Generally, a namespace is backed by a set of one or more services, providing facilities such as registry access, trust, and indexing.
ReadSeekCloser is the primary reader type for blob data, combining io.ReadSeeker with io.Closer.
Repository is a named collection of manifests and layers.
RepositoryEnumerator describes an operation to enumerate repositories
RepositoryRemover removes given repository
Scope defines the set of items that match a namespace.
TagService provides access to information about tagged objects.
UnmarshalFunc implements manifest unmarshalling a given MediaType
type WithManifestMediaTypesOption struct{ MediaTypes []string }
WithManifestMediaTypesOption holds a list of accepted media types
Apply conforms to the ManifestServiceOption interface
type WithTagOption struct{ Tag string }
WithTagOption holds a tag
Apply conforms to the ManifestServiceOption interface