storage

package
v2.5.0 Latest Latest
Warning

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

Go to latest
Published: Jun 7, 2024 License: Apache-2.0 Imports: 29 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LocalStage_ImageRepoFormat         = "%s"
	LocalStage_ImageFormatWithUniqueID = "%s:%s-%d"
	LocalStage_ImageFormat             = "%s:%s"

	LocalImportMetadata_ImageNameFormat = "werf-import-metadata/%s"
	LocalImportMetadata_TagFormat       = "%s"

	LocalClientIDRecord_ImageNameFormat = "werf-client-id/%s"
	LocalClientIDRecord_ImageFormat     = "werf-client-id/%s:%s-%d"

	ImageDeletionFailedDueToUsedByContainerErrorTip = "Use --force option to remove all containers that are based on deleting werf docker images"
)
View Source
const (
	RepoStage_ImageFormatWithUniqueID = "%s:%s-%d"
	RepoStage_ImageFormat             = "%s:%s"

	RepoManagedImageRecord_ImageTagPrefix  = "managed-image-"
	RepoManagedImageRecord_ImageNameFormat = "%s:managed-image-%s"

	RepoRejectedStageImageRecord_ImageTagSuffix  = "-rejected"
	RepoRejectedStageImageRecord_ImageNameFormat = "%s:%s-%d-rejected"

	RepoImageMetadataByCommitRecord_ImageTagPrefix = "meta-"
	RepoImageMetadataByCommitRecord_TagFormat      = "meta-%s_%s_%s"

	RepoCustomTagMetadata_ImageTagPrefix  = "custom-tag-meta-"
	RepoCustomTagMetadata_ImageNameFormat = "%s:custom-tag-meta-%s"

	RepoImportMetadata_ImageTagPrefix  = "import-metadata-"
	RepoImportMetadata_ImageNameFormat = "%s:import-metadata-%s"

	RepoClientIDRecord_ImageTagPrefix  = "client-id-"
	RepoClientIDRecord_ImageNameFormat = "%s:client-id-%s-%d"

	UnexpectedTagFormatErrorPrefix = "unexpected tag format"
)
View Source
const (
	LocalStorageAddress             = ":local"
	DefaultKubernetesStorageAddress = "kubernetes://werf-synchronization"
	NamelessImageRecordTag          = "__nameless__"
)
View Source
const (
	StagesStorageCacheConfigMapKey = "stagesStorageCache"
)

Variables

View Source
var DefaultHttpSynchronizationServer = "https://synchronization.werf.io"
View Source
var ErrBadKubernetesSynchronizationAddress = errors.New("bad kubernetes synchronization address")
View Source
var ErrBrokenImage = errors.New("broken image")

Functions

func IsErrBrokenImage

func IsErrBrokenImage(err error) bool

func IsImageDeletionFailedDueToUsingByContainerErr

func IsImageDeletionFailedDueToUsingByContainerErr(err error) bool

Types

type ClientIDRecord

type ClientIDRecord struct {
	ClientID          string
	TimestampMillisec int64
}

func (*ClientIDRecord) String

func (rec *ClientIDRecord) String() string

type CopyFromStorageOptions

type CopyFromStorageOptions struct {
	IsMultiplatformImage bool
}

type CustomTagMetadata

type CustomTagMetadata struct {
	StageID string
	Tag     string
}

func (*CustomTagMetadata) ToLabels

func (m *CustomTagMetadata) ToLabels() map[string]string

type DeleteImageOptions

type DeleteImageOptions struct {
	RmiForce bool
}

type FileStagesStorageCache

type FileStagesStorageCache struct {
	CacheDir string
}

func NewFileStagesStorageCache

func NewFileStagesStorageCache(cacheDir string) *FileStagesStorageCache

func (*FileStagesStorageCache) DeleteAllStages

func (cache *FileStagesStorageCache) DeleteAllStages(_ context.Context, projectName string) error

func (*FileStagesStorageCache) DeleteStagesByDigest

func (cache *FileStagesStorageCache) DeleteStagesByDigest(ctx context.Context, projectName, digest string) error

func (*FileStagesStorageCache) GetAllStages

func (cache *FileStagesStorageCache) GetAllStages(ctx context.Context, projectName string) (bool, []image.StageID, error)

func (*FileStagesStorageCache) GetStagesByDigest

func (cache *FileStagesStorageCache) GetStagesByDigest(ctx context.Context, projectName, digest string) (bool, []image.StageID, error)

func (*FileStagesStorageCache) StoreStagesByDigest

func (cache *FileStagesStorageCache) StoreStagesByDigest(ctx context.Context, projectName, digest string, stages []image.StageID) error

func (*FileStagesStorageCache) String

func (cache *FileStagesStorageCache) String() string

type FilterStagesAndProcessRelatedDataOptions

type FilterStagesAndProcessRelatedDataOptions struct {
	SkipUsedImage            bool
	RmForce                  bool
	RmContainersThatUseImage bool
}

type GenericLockManager

type GenericLockManager struct {
	// Single Locker for all projects
	Locker lockgate.Locker
}

func NewGenericLockManager

func NewGenericLockManager(locker lockgate.Locker) *GenericLockManager

func (*GenericLockManager) LockStage

func (manager *GenericLockManager) LockStage(ctx context.Context, projectName, digest string) (LockHandle, error)

func (*GenericLockManager) LockStageCache

func (manager *GenericLockManager) LockStageCache(ctx context.Context, projectName, digest string) (LockHandle, error)

func (*GenericLockManager) Unlock

func (manager *GenericLockManager) Unlock(ctx context.Context, lock LockHandle) error

type ImageMetadata

type ImageMetadata struct {
	ContentDigest string
}

type ImportMetadata

type ImportMetadata struct {
	ImportSourceID string
	SourceImageID  string
	Checksum       string
}

func (*ImportMetadata) ToLabels

func (m *ImportMetadata) ToLabels() []string

func (*ImportMetadata) ToLabelsMap

func (m *ImportMetadata) ToLabelsMap() map[string]string

type KubernetesLockManager

type KubernetesLockManager struct {
	KubeClient           kubernetes.Interface
	KubeDynamicClient    dynamic.Interface
	Namespace            string
	LockerPerProject     map[string]lockgate.Locker
	GetConfigMapNameFunc func(projectName string) string
	// contains filtered or unexported fields
}

func NewKubernetesLockManager

func NewKubernetesLockManager(namespace string, kubeClient kubernetes.Interface, kubeDynamicClient dynamic.Interface, getConfigMapNameFunc func(projectName string) string) *KubernetesLockManager

func (*KubernetesLockManager) LockStage

func (manager *KubernetesLockManager) LockStage(ctx context.Context, projectName, digest string) (LockHandle, error)

func (*KubernetesLockManager) LockStageCache

func (manager *KubernetesLockManager) LockStageCache(ctx context.Context, projectName, digest string) (LockHandle, error)

func (*KubernetesLockManager) Unlock

func (manager *KubernetesLockManager) Unlock(ctx context.Context, lock LockHandle) error

type KubernetesStagesStorageCache

type KubernetesStagesStorageCache struct {
	KubeClient           kubernetes.Interface
	Namespace            string
	GetConfigMapNameFunc func(projectName string) string
}

func NewKubernetesStagesStorageCache

func NewKubernetesStagesStorageCache(namespace string, kubeClient kubernetes.Interface, getConfigMapNameFunc func(projectName string) string) *KubernetesStagesStorageCache

func (*KubernetesStagesStorageCache) DeleteAllStages

func (cache *KubernetesStagesStorageCache) DeleteAllStages(ctx context.Context, projectName string) error

func (*KubernetesStagesStorageCache) DeleteStagesByDigest

func (cache *KubernetesStagesStorageCache) DeleteStagesByDigest(ctx context.Context, projectName, digest string) error

func (*KubernetesStagesStorageCache) GetAllStages

func (cache *KubernetesStagesStorageCache) GetAllStages(ctx context.Context, projectName string) (bool, []image.StageID, error)

func (*KubernetesStagesStorageCache) GetStagesByDigest

func (cache *KubernetesStagesStorageCache) GetStagesByDigest(ctx context.Context, projectName, digest string) (bool, []image.StageID, error)

func (*KubernetesStagesStorageCache) StoreStagesByDigest

func (cache *KubernetesStagesStorageCache) StoreStagesByDigest(ctx context.Context, projectName, digest string, stages []image.StageID) error

func (*KubernetesStagesStorageCache) String

func (cache *KubernetesStagesStorageCache) String() string

type KubernetesStagesStorageCacheData

type KubernetesStagesStorageCacheData struct {
	StagesByDigest map[string][]image.StageID `json:"stagesByDigest"`
}

type KubernetesStagesStorageCacheOptions

type KubernetesStagesStorageCacheOptions struct {
	GetConfigMapNameFunc func(projectName string) string
}

type KubernetesSynchronizationParams

type KubernetesSynchronizationParams struct {
	ConfigContext       string
	ConfigPath          string
	ConfigDataBase64    string
	ConfigPathMergeList []string
	Namespace           string
}

func ParseKubernetesSynchronization

func ParseKubernetesSynchronization(address string) (*KubernetesSynchronizationParams, error)

type LocalStagesStorage

type LocalStagesStorage struct {
	ContainerBackend container_backend.ContainerBackend
}

func NewLocalStagesStorage

func NewLocalStagesStorage(containerBackend container_backend.ContainerBackend) *LocalStagesStorage

func (*LocalStagesStorage) AddManagedImage

func (storage *LocalStagesStorage) AddManagedImage(ctx context.Context, projectName, imageNameOrManagedImageName string) error

func (*LocalStagesStorage) AddStageCustomTag

func (storage *LocalStagesStorage) AddStageCustomTag(ctx context.Context, stageDescription *image.StageDescription, tag string) error

func (*LocalStagesStorage) Address

func (storage *LocalStagesStorage) Address() string

func (*LocalStagesStorage) CheckStageCustomTag

func (storage *LocalStagesStorage) CheckStageCustomTag(ctx context.Context, stageDescription *image.StageDescription, tag string) error

func (*LocalStagesStorage) ConstructStageImageName

func (storage *LocalStagesStorage) ConstructStageImageName(projectName, digest string, uniqueID int64) string

func (*LocalStagesStorage) CopyFromStorage

func (storage *LocalStagesStorage) CopyFromStorage(ctx context.Context, src StagesStorage, projectName string, stageID image.StageID, opts CopyFromStorageOptions) (*image.StageDescription, error)

func (*LocalStagesStorage) CreateRepo

func (storage *LocalStagesStorage) CreateRepo(ctx context.Context) error

func (*LocalStagesStorage) DeleteRepo

func (storage *LocalStagesStorage) DeleteRepo(ctx context.Context) error

func (*LocalStagesStorage) DeleteStage

func (storage *LocalStagesStorage) DeleteStage(ctx context.Context, stageDescription *image.StageDescription, options DeleteImageOptions) error

func (*LocalStagesStorage) DeleteStageCustomTag

func (storage *LocalStagesStorage) DeleteStageCustomTag(ctx context.Context, tag string) error

func (*LocalStagesStorage) ExportStage

func (storage *LocalStagesStorage) ExportStage(ctx context.Context, stageDescription *image.StageDescription, destinationReference string, mutateConfigFunc func(config v1.Config) (v1.Config, error)) error

func (*LocalStagesStorage) FetchImage

func (*LocalStagesStorage) FilterStagesAndProcessRelatedData

func (storage *LocalStagesStorage) FilterStagesAndProcessRelatedData(ctx context.Context, stageDescriptions []*image.StageDescription, opts FilterStagesAndProcessRelatedDataOptions) ([]*image.StageDescription, error)

func (*LocalStagesStorage) GetAllAndGroupImageMetadataByImageName

func (storage *LocalStagesStorage) GetAllAndGroupImageMetadataByImageName(ctx context.Context, projectName string, imageNameOrManagedImageList []string, opts ...Option) (map[string]map[string][]string, map[string]map[string][]string, error)

func (*LocalStagesStorage) GetClientIDRecords

func (storage *LocalStagesStorage) GetClientIDRecords(ctx context.Context, projectName string, opts ...Option) ([]*ClientIDRecord, error)

func (*LocalStagesStorage) GetImportMetadata

func (storage *LocalStagesStorage) GetImportMetadata(ctx context.Context, projectName, id string) (*ImportMetadata, error)

func (*LocalStagesStorage) GetImportMetadataIDs

func (storage *LocalStagesStorage) GetImportMetadataIDs(ctx context.Context, projectName string, opts ...Option) ([]string, error)

func (*LocalStagesStorage) GetManagedImages

func (storage *LocalStagesStorage) GetManagedImages(ctx context.Context, projectName string, opts ...Option) ([]string, error)

func (*LocalStagesStorage) GetStageCustomTagMetadata

func (storage *LocalStagesStorage) GetStageCustomTagMetadata(ctx context.Context, tagOrID string) (*CustomTagMetadata, error)

func (*LocalStagesStorage) GetStageCustomTagMetadataIDs

func (storage *LocalStagesStorage) GetStageCustomTagMetadataIDs(ctx context.Context, opts ...Option) ([]string, error)

func (*LocalStagesStorage) GetStageDescription

func (storage *LocalStagesStorage) GetStageDescription(ctx context.Context, projectName string, stageID image.StageID) (*image.StageDescription, error)

func (*LocalStagesStorage) GetStagesIDs

func (storage *LocalStagesStorage) GetStagesIDs(ctx context.Context, projectName string, opts ...Option) ([]image.StageID, error)

func (*LocalStagesStorage) GetStagesIDsByDigest

func (storage *LocalStagesStorage) GetStagesIDsByDigest(ctx context.Context, projectName, digest string, opts ...Option) ([]image.StageID, error)

func (*LocalStagesStorage) IsImageMetadataExist

func (storage *LocalStagesStorage) IsImageMetadataExist(ctx context.Context, projectName, imageNameOrManagedImageName, commit, stageID string, opts ...Option) (bool, error)

func (*LocalStagesStorage) IsManagedImageExist

func (storage *LocalStagesStorage) IsManagedImageExist(ctx context.Context, projectName, imageNameOrManagedImageName string, opts ...Option) (bool, error)

func (*LocalStagesStorage) PostClientIDRecord

func (storage *LocalStagesStorage) PostClientIDRecord(ctx context.Context, projectName string, rec *ClientIDRecord) error

func (*LocalStagesStorage) PostMultiplatformImage

func (storage *LocalStagesStorage) PostMultiplatformImage(ctx context.Context, projectName, tag string, allPlatformsImages []*image.Info) error

func (*LocalStagesStorage) PutImageMetadata

func (storage *LocalStagesStorage) PutImageMetadata(ctx context.Context, projectName, imageNameOrManagedImageName, commit, stageID string) error

func (*LocalStagesStorage) PutImportMetadata

func (storage *LocalStagesStorage) PutImportMetadata(ctx context.Context, projectName string, metadata *ImportMetadata) error

func (*LocalStagesStorage) RegisterStageCustomTag

func (storage *LocalStagesStorage) RegisterStageCustomTag(ctx context.Context, projectName string, stageDescription *image.StageDescription, tag string) error

func (*LocalStagesStorage) RejectStage

func (storage *LocalStagesStorage) RejectStage(ctx context.Context, projectName, digest string, uniqueID int64) error

func (*LocalStagesStorage) RmImageMetadata

func (storage *LocalStagesStorage) RmImageMetadata(ctx context.Context, projectName, imageNameOrManagedImageNameOrImageMetadataID, commit, stageID string) error

func (*LocalStagesStorage) RmImportMetadata

func (storage *LocalStagesStorage) RmImportMetadata(ctx context.Context, projectName, id string) error

func (*LocalStagesStorage) RmManagedImage

func (storage *LocalStagesStorage) RmManagedImage(ctx context.Context, projectName, imageNameOrManagedImageName string) error

func (*LocalStagesStorage) ShouldFetchImage

func (storage *LocalStagesStorage) ShouldFetchImage(ctx context.Context, img container_backend.LegacyImageInterface) (bool, error)

func (*LocalStagesStorage) StoreImage

func (*LocalStagesStorage) String

func (storage *LocalStagesStorage) String() string

func (*LocalStagesStorage) UnregisterStageCustomTag

func (storage *LocalStagesStorage) UnregisterStageCustomTag(ctx context.Context, tag string) error

type LockHandle

type LockHandle struct {
	ProjectName    string              `json:"projectName"`
	LockgateHandle lockgate.LockHandle `json:"lockgateHandle"`
}

type LockManager

type LockManager interface {
	LockStage(ctx context.Context, projectName, digest string) (LockHandle, error)
	Unlock(ctx context.Context, lockHandle LockHandle) error
}

type LockStagesAndImagesOptions

type LockStagesAndImagesOptions struct {
	GetOrCreateImagesOnly bool `json:"getOrCreateImagesOnly"`
}

type Option

type Option func(*Options)

func WithCache

func WithCache() Option

type Options

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

type PrimaryStagesStorage

type PrimaryStagesStorage interface {
	StagesStorage

	GetStageCustomTagMetadataIDs(ctx context.Context, opts ...Option) ([]string, error)
	GetStageCustomTagMetadata(ctx context.Context, tagOrID string) (*CustomTagMetadata, error)
	RegisterStageCustomTag(ctx context.Context, projectName string, stageDescription *image.StageDescription, tag string) error
	UnregisterStageCustomTag(ctx context.Context, tag string) error
}

type RepoStagesStorage

type RepoStagesStorage struct {
	RepoAddress      string
	DockerRegistry   docker_registry.Interface
	ContainerBackend container_backend.ContainerBackend
}

func NewRepoStagesStorage

func NewRepoStagesStorage(repoAddress string, containerBackend container_backend.ContainerBackend, dockerRegistry docker_registry.Interface) *RepoStagesStorage

func (*RepoStagesStorage) AddManagedImage

func (storage *RepoStagesStorage) AddManagedImage(ctx context.Context, projectName, imageNameOrManagedImageName string) error

func (*RepoStagesStorage) AddStageCustomTag

func (storage *RepoStagesStorage) AddStageCustomTag(ctx context.Context, stageDescription *image.StageDescription, tag string) error

func (*RepoStagesStorage) Address

func (storage *RepoStagesStorage) Address() string

func (*RepoStagesStorage) CheckStageCustomTag

func (storage *RepoStagesStorage) CheckStageCustomTag(ctx context.Context, stageDescription *image.StageDescription, tag string) error

func (*RepoStagesStorage) ConstructStageImageName

func (storage *RepoStagesStorage) ConstructStageImageName(_, digest string, uniqueID int64) string

func (*RepoStagesStorage) CopyFromStorage

func (storage *RepoStagesStorage) CopyFromStorage(ctx context.Context, src StagesStorage, projectName string, stageID image.StageID, opts CopyFromStorageOptions) (*image.StageDescription, error)

func (*RepoStagesStorage) CreateRepo

func (storage *RepoStagesStorage) CreateRepo(ctx context.Context) error

func (*RepoStagesStorage) DeleteRepo

func (storage *RepoStagesStorage) DeleteRepo(ctx context.Context) error

func (*RepoStagesStorage) DeleteStage

func (storage *RepoStagesStorage) DeleteStage(ctx context.Context, stageDescription *image.StageDescription, _ DeleteImageOptions) error

func (*RepoStagesStorage) DeleteStageCustomTag

func (storage *RepoStagesStorage) DeleteStageCustomTag(ctx context.Context, tag string) error

func (*RepoStagesStorage) ExportStage

func (storage *RepoStagesStorage) ExportStage(ctx context.Context, stageDescription *image.StageDescription, destinationReference string, mutateConfigFunc func(config v1.Config) (v1.Config, error)) error

func (*RepoStagesStorage) FetchImage

func (*RepoStagesStorage) FilterStagesAndProcessRelatedData

func (storage *RepoStagesStorage) FilterStagesAndProcessRelatedData(ctx context.Context, stageDescriptions []*image.StageDescription, options FilterStagesAndProcessRelatedDataOptions) ([]*image.StageDescription, error)

func (*RepoStagesStorage) GetAllAndGroupImageMetadataByImageName

func (storage *RepoStagesStorage) GetAllAndGroupImageMetadataByImageName(ctx context.Context, projectName string, imageNameOrManagedImageList []string, opts ...Option) (map[string]map[string][]string, map[string]map[string][]string, error)

func (*RepoStagesStorage) GetClientIDRecords

func (storage *RepoStagesStorage) GetClientIDRecords(ctx context.Context, projectName string, opts ...Option) ([]*ClientIDRecord, error)

func (*RepoStagesStorage) GetImportMetadata

func (storage *RepoStagesStorage) GetImportMetadata(ctx context.Context, _, id string) (*ImportMetadata, error)

func (*RepoStagesStorage) GetImportMetadataIDs

func (storage *RepoStagesStorage) GetImportMetadataIDs(ctx context.Context, _ string, opts ...Option) ([]string, error)

func (*RepoStagesStorage) GetManagedImages

func (storage *RepoStagesStorage) GetManagedImages(ctx context.Context, projectName string, opts ...Option) ([]string, error)

func (*RepoStagesStorage) GetStageCustomTagMetadata

func (storage *RepoStagesStorage) GetStageCustomTagMetadata(ctx context.Context, tagOrID string) (*CustomTagMetadata, error)

func (*RepoStagesStorage) GetStageCustomTagMetadataIDs

func (storage *RepoStagesStorage) GetStageCustomTagMetadataIDs(ctx context.Context, opts ...Option) ([]string, error)

func (*RepoStagesStorage) GetStageDescription

func (storage *RepoStagesStorage) GetStageDescription(ctx context.Context, projectName string, stageID image.StageID) (*image.StageDescription, error)

NOTE: Do we need a special option for multiplatform image description getter? NOTE: go-containerregistry has a special method to get an v1.ImageIndex manifest, instead of v1.Image, NOTE: should we utilize this method in GetStageDescription also? NOTE: Current version always tries to get v1.Image manifest and it works without errors though.

func (*RepoStagesStorage) GetStagesIDs

func (storage *RepoStagesStorage) GetStagesIDs(ctx context.Context, _ string, opts ...Option) ([]image.StageID, error)

func (*RepoStagesStorage) GetStagesIDsByDigest

func (storage *RepoStagesStorage) GetStagesIDsByDigest(ctx context.Context, _, digest string, opts ...Option) ([]image.StageID, error)

func (*RepoStagesStorage) IsImageMetadataExist

func (storage *RepoStagesStorage) IsImageMetadataExist(ctx context.Context, projectName, imageNameOrManagedImageName, commit, stageID string, opts ...Option) (bool, error)

func (*RepoStagesStorage) IsManagedImageExist

func (storage *RepoStagesStorage) IsManagedImageExist(ctx context.Context, _, imageNameOrManagedImageName string, opts ...Option) (bool, error)

func (*RepoStagesStorage) PostClientIDRecord

func (storage *RepoStagesStorage) PostClientIDRecord(ctx context.Context, projectName string, rec *ClientIDRecord) error

func (*RepoStagesStorage) PostMultiplatformImage

func (storage *RepoStagesStorage) PostMultiplatformImage(ctx context.Context, projectName, tag string, allPlatformsImages []*image.Info) error

func (*RepoStagesStorage) PutImageMetadata

func (storage *RepoStagesStorage) PutImageMetadata(ctx context.Context, projectName, imageNameOrManagedImageName, commit, stageID string) error

func (*RepoStagesStorage) PutImportMetadata

func (storage *RepoStagesStorage) PutImportMetadata(ctx context.Context, projectName string, metadata *ImportMetadata) error

func (*RepoStagesStorage) RegisterStageCustomTag

func (storage *RepoStagesStorage) RegisterStageCustomTag(ctx context.Context, projectName string, stageDescription *image.StageDescription, tag string) error

func (*RepoStagesStorage) RejectStage

func (storage *RepoStagesStorage) RejectStage(ctx context.Context, projectName, digest string, uniqueID int64) error

func (*RepoStagesStorage) RmImageMetadata

func (storage *RepoStagesStorage) RmImageMetadata(ctx context.Context, projectName, imageNameOrManagedImageNameOrImageMetadataID, commit, stageID string) error

func (*RepoStagesStorage) RmImportMetadata

func (storage *RepoStagesStorage) RmImportMetadata(ctx context.Context, _, id string) error

func (*RepoStagesStorage) RmManagedImage

func (storage *RepoStagesStorage) RmManagedImage(ctx context.Context, projectName, imageNameOrManagedImageName string) error

func (*RepoStagesStorage) ShouldFetchImage

func (storage *RepoStagesStorage) ShouldFetchImage(ctx context.Context, img container_backend.LegacyImageInterface) (bool, error)

func (*RepoStagesStorage) StoreImage

FIXME(stapel-to-buildah): use ImageInterface instead of LegacyImageInterface FIXME(stapel-to-buildah): possible optimization would be to push buildah container directly into registry wihtout committing a local image

func (*RepoStagesStorage) String

func (storage *RepoStagesStorage) String() string

func (*RepoStagesStorage) UnregisterStageCustomTag

func (storage *RepoStagesStorage) UnregisterStageCustomTag(ctx context.Context, tag string) error

type StagesStorage

type StagesStorage interface {
	GetStagesIDs(ctx context.Context, projectName string, opts ...Option) ([]image.StageID, error)
	GetStagesIDsByDigest(ctx context.Context, projectName, digest string, opts ...Option) ([]image.StageID, error)
	GetStageDescription(ctx context.Context, projectName string, stageID image.StageID) (*image.StageDescription, error)
	ExportStage(ctx context.Context, stageDescription *image.StageDescription, destinationReference string, mutateConfigFunc func(config v1.Config) (v1.Config, error)) error
	DeleteStage(ctx context.Context, stageDescription *image.StageDescription, options DeleteImageOptions) error

	AddStageCustomTag(ctx context.Context, stageDescription *image.StageDescription, tag string) error
	CheckStageCustomTag(ctx context.Context, stageDescription *image.StageDescription, tag string) error
	DeleteStageCustomTag(ctx context.Context, tag string) error

	RejectStage(ctx context.Context, projectName, digest string, uniqueID int64) error

	ConstructStageImageName(projectName, digest string, uniqueID int64) string

	// FetchImage will create a local image in the container-runtime
	FetchImage(ctx context.Context, img container_backend.LegacyImageInterface) error
	// StoreImage will store a local image into the container-runtime, local built image should exist prior running store
	StoreImage(ctx context.Context, img container_backend.LegacyImageInterface) error
	ShouldFetchImage(ctx context.Context, img container_backend.LegacyImageInterface) (bool, error)
	CopyFromStorage(ctx context.Context, src StagesStorage, projectName string, stageID image.StageID, opts CopyFromStorageOptions) (*image.StageDescription, error)

	CreateRepo(ctx context.Context) error
	DeleteRepo(ctx context.Context) error

	// AddManagedImage adds managed image.
	AddManagedImage(ctx context.Context, projectName, imageNameOrManagedImageName string) error
	// RmManagedImage removes managed image by imageName or managedImageName.
	// Typically, the managedImageName is the same as the imageName, but may be different
	// if the name contains unsupported special characters, or
	// if the name exceeds the docker tag limit.
	RmManagedImage(ctx context.Context, projectName, imageNameOrManagedImageName string) error
	IsManagedImageExist(ctx context.Context, projectName, imageNameOrManagedImageName string, opts ...Option) (bool, error)
	// GetManagedImages returns the list of managedImageName.
	GetManagedImages(ctx context.Context, projectName string, opts ...Option) ([]string, error)

	PutImageMetadata(ctx context.Context, projectName, imageNameOrManagedImageName, commit, stageID string) error
	RmImageMetadata(ctx context.Context, projectName, imageNameOrManagedImageNameOrImageMetadataID, commit, stageID string) error
	IsImageMetadataExist(ctx context.Context, projectName, imageNameOrManagedImageName, commit, stageID string, opts ...Option) (bool, error)
	GetAllAndGroupImageMetadataByImageName(ctx context.Context, projectName string, imageNameOrManagedImageList []string, opts ...Option) (map[string]map[string][]string, map[string]map[string][]string, error)

	GetImportMetadata(ctx context.Context, projectName, id string) (*ImportMetadata, error)
	PutImportMetadata(ctx context.Context, projectName string, metadata *ImportMetadata) error
	RmImportMetadata(ctx context.Context, projectName, id string) error
	GetImportMetadataIDs(ctx context.Context, projectName string, opts ...Option) ([]string, error)

	GetClientIDRecords(ctx context.Context, projectName string, opts ...Option) ([]*ClientIDRecord, error)
	PostClientIDRecord(ctx context.Context, projectName string, rec *ClientIDRecord) error
	PostMultiplatformImage(ctx context.Context, projectName, tag string, allPlatformsImages []*image.Info) error
	FilterStagesAndProcessRelatedData(ctx context.Context, stageDescriptions []*image.StageDescription, options FilterStagesAndProcessRelatedDataOptions) ([]*image.StageDescription, error)

	String() string
	Address() string
}

type StagesStorageCacheRecord

type StagesStorageCacheRecord struct {
	Stages []image.StageID `json:"stages"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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