cache

package
v0.61.2 Latest Latest
Warning

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

Go to latest
Published: Mar 29, 2025 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CalcKey

func CalcKey(id string, analyzerVersions analyzer.Versions, hookVersions map[string]int, artifactOpt artifact.Option) (string, error)

func DefaultDir

func DefaultDir() string

DefaultDir returns/creates the cache-dir to be used for tunnel operations

func GetTLSConfig

func GetTLSConfig(caCertPath, certPath, keyPath string) (*x509.CertPool, tls.Certificate, error)

GetTLSConfig gets tls config from CA, Cert and Key file

Types

type ArtifactCache

type ArtifactCache interface {
	// MissingBlobs returns missing blob IDs such as layer IDs in cache
	MissingBlobs(artifactID string, blobIDs []string) (missingArtifact bool, missingBlobIDs []string, err error)

	// PutArtifact stores artifact information such as image metadata in cache
	PutArtifact(artifactID string, artifactInfo types.ArtifactInfo) (err error)

	// PutBlob stores blob information such as layer information in local cache
	PutBlob(blobID string, blobInfo types.BlobInfo) (err error)

	// DeleteBlobs removes blobs by IDs
	DeleteBlobs(blobIDs []string) error
}

ArtifactCache uses local or remote cache

type Cache

type Cache interface {
	ArtifactCache
	LocalArtifactCache
}

func New

func New(opts Options) (Cache, func(), error)

New returns a new cache client

type FSCache

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

func NewFSCache

func NewFSCache(cacheDir string) (FSCache, error)

func (FSCache) Clear

func (fs FSCache) Clear() error

Clear removes the database

func (FSCache) Close

func (fs FSCache) Close() error

Close closes the database

func (FSCache) DeleteBlobs

func (fs FSCache) DeleteBlobs(blobIDs []string) error

DeleteBlobs removes blobs by IDs

func (FSCache) GetArtifact

func (fs FSCache) GetArtifact(artifactID string) (types.ArtifactInfo, error)

GetArtifact gets artifact information such as image metadata from local cache

func (FSCache) GetBlob

func (fs FSCache) GetBlob(blobID string) (types.BlobInfo, error)

GetBlob gets blob information such as layer data from local cache

func (FSCache) MissingBlobs

func (fs FSCache) MissingBlobs(artifactID string, blobIDs []string) (bool, []string, error)

MissingBlobs returns missing blob IDs such as layer IDs

func (FSCache) PutArtifact

func (fs FSCache) PutArtifact(artifactID string, artifactInfo types.ArtifactInfo) (err error)

PutArtifact stores artifact information such as image metadata in local cache

func (FSCache) PutBlob

func (fs FSCache) PutBlob(blobID string, blobInfo types.BlobInfo) error

PutBlob stores blob information such as layer information in local cache

type LocalArtifactCache

type LocalArtifactCache interface {
	// GetArtifact gets artifact information such as image metadata from local cache
	GetArtifact(artifactID string) (artifactInfo types.ArtifactInfo, err error)

	// GetBlob gets blob information such as layer data from local cache
	GetBlob(blobID string) (blobInfo types.BlobInfo, err error)

	// Close closes the local database
	Close() (err error)

	// Clear deletes the local database
	Clear() (err error)
}

LocalArtifactCache always uses local cache

type MemoryCache

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

func NewMemoryCache

func NewMemoryCache() *MemoryCache

func (*MemoryCache) BlobIDs added in v0.61.1

func (c *MemoryCache) BlobIDs() []string

BlobIDs returns all the blob IDs in the memory cache for testing

func (*MemoryCache) Clear

func (c *MemoryCache) Clear() error

Clear clears the artifact and blob information from the memory cache

func (*MemoryCache) Close

func (c *MemoryCache) Close() error

Close clears the artifact and blob information from the memory cache

func (*MemoryCache) DeleteBlobs

func (c *MemoryCache) DeleteBlobs(blobIDs []string) error

DeleteBlobs removes the specified blobs from the memory cache

func (*MemoryCache) GetArtifact

func (c *MemoryCache) GetArtifact(artifactID string) (types.ArtifactInfo, error)

GetArtifact retrieves the artifact information from the memory cache

func (*MemoryCache) GetBlob

func (c *MemoryCache) GetBlob(blobID string) (types.BlobInfo, error)

GetBlob retrieves the blob information from the memory cache

func (*MemoryCache) MissingBlobs

func (c *MemoryCache) MissingBlobs(artifactID string, blobIDs []string) (bool, []string, error)

MissingBlobs determines the missing artifact and blob information in the memory cache

func (*MemoryCache) PutArtifact

func (c *MemoryCache) PutArtifact(artifactID string, artifactInfo types.ArtifactInfo) error

PutArtifact stores the artifact information in the memory cache

func (*MemoryCache) PutBlob

func (c *MemoryCache) PutBlob(blobID string, blobInfo types.BlobInfo) error

PutBlob stores the blob information in the memory cache

type NopCache

type NopCache struct{}

func NewNopCache

func NewNopCache() NopCache

func (NopCache) Clear

func (NopCache) Clear() error

func (NopCache) Close

func (NopCache) Close() error

func (NopCache) GetArtifact

func (NopCache) GetArtifact(string) (types.ArtifactInfo, error)

func (NopCache) GetBlob

func (NopCache) GetBlob(string) (types.BlobInfo, error)

type Options

type Options struct {
	Backend     string
	CacheDir    string
	RedisCACert string
	RedisCert   string
	RedisKey    string
	RedisTLS    bool
	TTL         time.Duration
}

type RedisCache

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

func NewRedisCache

func NewRedisCache(backend, caCertPath, certPath, keyPath string, enableTLS bool, ttl time.Duration) (RedisCache, error)

func (RedisCache) Clear

func (c RedisCache) Clear() error

func (RedisCache) Close

func (c RedisCache) Close() error

func (RedisCache) DeleteBlobs

func (c RedisCache) DeleteBlobs(blobIDs []string) error

func (RedisCache) GetArtifact

func (c RedisCache) GetArtifact(artifactID string) (types.ArtifactInfo, error)

func (RedisCache) GetBlob

func (c RedisCache) GetBlob(blobID string) (types.BlobInfo, error)

func (RedisCache) MissingBlobs

func (c RedisCache) MissingBlobs(artifactID string, blobIDs []string) (bool, []string, error)

func (RedisCache) PutArtifact

func (c RedisCache) PutArtifact(artifactID string, artifactConfig types.ArtifactInfo) error

func (RedisCache) PutBlob

func (c RedisCache) PutBlob(blobID string, blobInfo types.BlobInfo) error

type RedisOptions

type RedisOptions struct {
	Backend    string
	TLS        bool
	TLSOptions RedisTLSOptions
}

func NewRedisOptions

func NewRedisOptions(backend, caCert, cert, key string, enableTLS bool) (RedisOptions, error)

func (*RedisOptions) BackendMasked

func (o *RedisOptions) BackendMasked() string

BackendMasked returns the redis connection string masking credentials

type RedisTLSOptions

type RedisTLSOptions struct {
	CACert string
	Cert   string
	Key    string
}

RedisTLSOptions holds the options for redis cache

func NewRedisTLSOptions

func NewRedisTLSOptions(caCert, cert, key string) (RedisTLSOptions, error)

type RemoteCache

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

RemoteCache implements remote cache

func NewRemoteCache

func NewRemoteCache(opts RemoteOptions) *RemoteCache

NewRemoteCache is the factory method for RemoteCache

func (RemoteCache) DeleteBlobs

func (c RemoteCache) DeleteBlobs(blobIDs []string) error

DeleteBlobs removes blobs by IDs from RemoteCache

func (RemoteCache) MissingBlobs

func (c RemoteCache) MissingBlobs(imageID string, layerIDs []string) (bool, []string, error)

MissingBlobs fetches missing blobs from RemoteCache

func (RemoteCache) PutArtifact

func (c RemoteCache) PutArtifact(imageID string, artifactInfo types.ArtifactInfo) error

PutArtifact sends artifact to remote client

func (RemoteCache) PutBlob

func (c RemoteCache) PutBlob(diffID string, blobInfo types.BlobInfo) error

PutBlob sends blobInfo to remote client

type RemoteOptions

type RemoteOptions struct {
	ServerAddr    string
	CustomHeaders http.Header
	Insecure      bool
	PathPrefix    string
}

type Type

type Type string
const (
	TypeUnknown Type = "unknown"
	TypeFS      Type = "fs"
	TypeRedis   Type = "redis"
	TypeMemory  Type = "memory"
)

func NewType

func NewType(backend string) Type

Jump to

Keyboard shortcuts

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