Documentation ¶
Index ¶
- Constants
- Variables
- func NewLocalCredentials() auth.CredentialStore
- func NewRetryRepository(repo distribution.Repository, retries int, interval time.Duration) distribution.Repository
- type BasicCredentials
- type Context
- type ErrNotV2Registry
- type ImageStreamImporter
- type ImageStreamLayerCache
- type Interface
- type RepositoryRetriever
- type SecretCredentialStore
Constants ¶
const ContextKeyV1RegistryClient = "v1-registry-client"
Add a dockerregistry.Client to the passed context with this key to support v1 Docker registry importing
const (
DefaultImageStreamLayerCacheSize = 2048
)
Variables ¶
var (
NoCredentials auth.CredentialStore = &noopCredentialStore{}
)
Functions ¶
func NewLocalCredentials ¶
func NewLocalCredentials() auth.CredentialStore
func NewRetryRepository ¶
func NewRetryRepository(repo distribution.Repository, retries int, interval time.Duration) distribution.Repository
NewRetryRepository wraps a distribution.Repository with helpers that will retry authentication failures over a limited time window and duration. This primarily avoids a DockerHub issue where public images unexpectedly return a 401 error due to the JWT token created by the hub being created at the same second, but another server being in the previous second.
Types ¶
type BasicCredentials ¶
type BasicCredentials struct {
// contains filtered or unexported fields
}
func NewBasicCredentials ¶
func NewBasicCredentials() *BasicCredentials
func (*BasicCredentials) Add ¶
func (c *BasicCredentials) Add(url *url.URL, username, password string)
func (*BasicCredentials) RefreshToken ¶
func (c *BasicCredentials) RefreshToken(url *url.URL, service string) string
func (*BasicCredentials) SetRefreshToken ¶
func (c *BasicCredentials) SetRefreshToken(url *url.URL, service string, token string)
type Context ¶
type Context struct { Transport http.RoundTripper InsecureTransport http.RoundTripper Challenges auth.ChallengeManager }
func NewContext ¶
func NewContext(transport, insecureTransport http.RoundTripper) Context
NewContext is capable of creating RepositoryRetrievers.
func (Context) WithCredentials ¶
func (c Context) WithCredentials(credentials auth.CredentialStore) RepositoryRetriever
type ErrNotV2Registry ¶
type ErrNotV2Registry struct {
Registry string
}
ErrNotV2Registry is returned when the server does not report itself as a V2 Docker registry
func (*ErrNotV2Registry) Error ¶
func (e *ErrNotV2Registry) Error() string
type ImageStreamImporter ¶
type ImageStreamImporter struct {
// contains filtered or unexported fields
}
ImageStreamImport implements an import strategy for Docker images. It keeps a cache of images per distinct auth context to reduce duplicate loads. This type is not thread safe.
func NewImageStreamImporter ¶
func NewImageStreamImporter(retriever RepositoryRetriever, maximumTagsPerRepo int, limiter flowcontrol.RateLimiter, cache *ImageStreamLayerCache) *ImageStreamImporter
NewImageStreamImport creates an importer that will load images from a remote Docker registry into an ImageStreamImport object. Limiter may be nil.
func (*ImageStreamImporter) Import ¶
func (i *ImageStreamImporter) Import(ctx gocontext.Context, isi *imageapi.ImageStreamImport) error
Import tries to complete the provided isi object with images loaded from remote registries.
type ImageStreamLayerCache ¶
type ImageStreamLayerCache struct {
*lru.Cache
}
func NewImageStreamLayerCache ¶
func NewImageStreamLayerCache(size int) (ImageStreamLayerCache, error)
ImageStreamLayerCache creates a new LRU cache of layer digests
type Interface ¶
type Interface interface {
Import(ctx gocontext.Context, isi *imageapi.ImageStreamImport) error
}
Interface loads images into an image stream import request.
type RepositoryRetriever ¶
type RepositoryRetriever interface { // Repository returns a properly authenticated distribution.Repository for the given registry, repository // name, and insecure toleration behavior. Repository(ctx gocontext.Context, registry *url.URL, repoName string, insecure bool) (distribution.Repository, error) }
RepositoryRetriever fetches a Docker distribution.Repository.
type SecretCredentialStore ¶
type SecretCredentialStore struct {
// contains filtered or unexported fields
}
func NewCredentialsForSecrets ¶
func NewCredentialsForSecrets(secrets []kapi.Secret) *SecretCredentialStore
func NewLazyCredentialsForSecrets ¶
func NewLazyCredentialsForSecrets(secretsFn func() ([]kapi.Secret, error)) *SecretCredentialStore
func (*SecretCredentialStore) Basic ¶
func (s *SecretCredentialStore) Basic(url *url.URL) (string, string)
func (*SecretCredentialStore) Err ¶
func (s *SecretCredentialStore) Err() error
func (*SecretCredentialStore) RefreshToken ¶
func (s *SecretCredentialStore) RefreshToken(url *url.URL, service string) string
func (*SecretCredentialStore) SetRefreshToken ¶
func (s *SecretCredentialStore) SetRefreshToken(url *url.URL, service string, token string)