cache

package
v0.0.0-...-ced0851 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2024 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Destination

func Destination(opts *config.KanikoOptions, cacheKey string) (string, error)

Destination returns the repo where the layer should be stored If no cache is specified, one is inferred from the destination provided

func IsAlreadyCached

func IsAlreadyCached(err error) bool

IsAlreadyCached returns true if the supplied error is of the type AlreadyCachedErr otherwise it returns false.

func IsExpired

func IsExpired(err error) bool

IsExpired returns true if the supplied error is of the type ExpiredErr otherwise it returns false.

func IsNotFound

func IsNotFound(err error) bool

IsNotFound returns true if the supplied error is of the type NotFoundErr otherwise it returns false.

func LocalSource

func LocalSource(opts *config.CacheOptions, cacheKey string) (v1.Image, error)

LocalSource retrieves a source image from a local cache given cacheKey

func ParseDockerfile

func ParseDockerfile(opts *config.WarmerOptions) ([]string, error)

func WarmCache

func WarmCache(opts *config.WarmerOptions) error

WarmCache populates the cache

Types

type AlreadyCachedErr

type AlreadyCachedErr struct {
	// contains filtered or unexported fields
}

AlreadyCachedErr is returned when the Docker image requested for caching is already present in the cache.

func (AlreadyCachedErr) Error

func (a AlreadyCachedErr) Error() string

type ExpiredErr

type ExpiredErr struct {
	// contains filtered or unexported fields
}

ExpiredErr is returned when the requested Docker image is present in the cache, but is expired according to the supplied TTL.

func (ExpiredErr) Error

func (e ExpiredErr) Error() string

type FetchLocalSource

type FetchLocalSource func(*config.CacheOptions, string) (v1.Image, error)

FetchLocalSource retrieves a Docker image manifest from a local source. github.com/GoogleContainerTools/kaniko/cache.LocalSource can be used as this type.

type FetchRemoteImage

type FetchRemoteImage func(image string, opts config.RegistryOptions, customPlatform string) (v1.Image, error)

FetchRemoteImage retrieves a Docker image manifest from a remote source. github.com/GoogleContainerTools/kaniko/image/remote.RetrieveRemoteImage can be used as this type.

type LayerCache

type LayerCache interface {
	RetrieveLayer(string) (v1.Image, error)
}

LayerCache is the layer cache

type LayoutCache

type LayoutCache struct {
	Opts *config.KanikoOptions
}

LayoutCache is the OCI image layout cache

func (*LayoutCache) RetrieveLayer

func (lc *LayoutCache) RetrieveLayer(ck string) (v1.Image, error)

type NotFoundErr

type NotFoundErr struct {
	// contains filtered or unexported fields
}

NotFoundErr is returned when the requested Docker image is not present in the cache.

func (NotFoundErr) Error

func (e NotFoundErr) Error() string

type RegistryCache

type RegistryCache struct {
	Opts *config.KanikoOptions
}

RegistryCache is the registry cache

func (*RegistryCache) RetrieveLayer

func (rc *RegistryCache) RetrieveLayer(ck string) (v1.Image, error)

RetrieveLayer retrieves a layer from the cache given the cache key ck.

type Warmer

type Warmer struct {
	Remote         FetchRemoteImage
	Local          FetchLocalSource
	TarWriter      io.Writer
	ManifestWriter io.Writer
}

Warmer is used to prepopulate the cache with a Docker image

func (*Warmer) Warm

func (w *Warmer) Warm(image string, opts *config.WarmerOptions) (v1.Hash, error)

Warm retrieves a Docker image and populates the supplied buffer with the image content and manifest or returns an AlreadyCachedErr if the image is present in the cache.

Example
tarBuf := new(bytes.Buffer)
manifestBuf := new(bytes.Buffer)
w := &Warmer{
	Remote:         remote.RetrieveRemoteImage,
	Local:          LocalSource,
	TarWriter:      tarBuf,
	ManifestWriter: manifestBuf,
}

options := &config.WarmerOptions{}

digest, err := w.Warm("ubuntu:latest", options)
if err != nil {
	if !IsAlreadyCached(err) {
		log.Fatal(err)
	}
}

log.Printf("digest %v tar len %d\nmanifest:\n%s\n", digest, tarBuf.Len(), manifestBuf.String())
Output:

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL