bundle

package
v0.42.1 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	ImgpkgDir      = ".imgpkg"
	BundlesDir     = "bundles"
	ImagesLockFile = "images.yml"
)
View Source
const (
	LocationFilepath   = "image-locations.yml"
	ImageLocationsKind = "ImageLocations"
	LocationAPIVersion = "imgpkg.carvel.dev/v1alpha1"
)
View Source
const (
	BundleConfigLabel = "dev.carvel.imgpkg.bundle"
)

Variables

This section is empty.

Functions

func IsNotBundleError

func IsNotBundleError(err error) bool

Types

type Bundle

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

Bundle struct that represents a bundle

func NewBundle

func NewBundle(plainImg *plainimg.PlainImage, imagesMetadata ImagesMetadata, imagesLockReader ImagesLockReader, bundleFetcher Fetcher) *Bundle

NewBundle Creates a new Bundle

func NewBundleFromPlainImage

func NewBundleFromPlainImage(plainImg *plainimg.PlainImage, imagesMetadata ImagesMetadata) *Bundle

NewBundleFromPlainImage Creates a new Bundle with a PlainImage and uses Registry Fetcher

func NewBundleFromRef

func NewBundleFromRef(ref string, imagesMetadata ImagesMetadata, imagesLockReader ImagesLockReader, bundleFetcher Fetcher) *Bundle

NewBundleFromRef Creates a new Bundle from an image full reference

func (*Bundle) AllImagesLockRefs

func (o *Bundle) AllImagesLockRefs(concurrency int, logger util.LoggerWithLevels) ([]*Bundle, ImageRefs, error)

AllImagesLockRefs returns a flat list of nested bundles and every image reference for a specific bundle

func (*Bundle) Digest

func (o *Bundle) Digest() string

Digest Bundle Digest

func (*Bundle) DigestRef

func (o *Bundle) DigestRef() string

DigestRef Bundle full location including registry, repository and digest

func (*Bundle) FetchAllImagesRefs

func (o *Bundle) FetchAllImagesRefs(concurrency int, ui Logger, sigFetcher SignatureFetcher) ([]*Bundle, error)

FetchAllImagesRefs returns a flat list of nested bundles and every image reference for a specific bundle

func (*Bundle) ImagesRefsWithErrors

func (o *Bundle) ImagesRefsWithErrors() []ImageRef

ImagesRefsWithErrors Retrieve the references for the Images of this particular bundle including images that imgpkg was not able to retrieve information for

func (*Bundle) IsBundle

func (o *Bundle) IsBundle() (bool, error)

func (*Bundle) NestedBundles

func (o *Bundle) NestedBundles() []GraphNode

NestedBundles Provides information about the Graph of nested bundles associated with the current bundle

func (*Bundle) NoteCopy

func (o *Bundle) NoteCopy(processedImages *imageset.ProcessedImages, reg ImagesMetadataWriter, ui util.LoggerWithLevels) error

NoteCopy writes an image-location representing the bundle / images that have been copied

func (*Bundle) Pull

func (o *Bundle) Pull(outputPath string, logger Logger, pullNestedBundles bool) (bool, error)

Pull Downloads bundle image to disk and checks if it can update the ImagesLock file

func (*Bundle) Repo

func (o *Bundle) Repo() string

Repo Bundle registry and Repository

func (*Bundle) Tag

func (o *Bundle) Tag() string

Tag Bundle Tag

type Contents

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

func NewContents

func NewContents(paths []string, excludedPaths []string, preservePermissions bool) Contents

NewContents creates Contents struct

func (Contents) PresentsAsBundle

func (b Contents) PresentsAsBundle() (bool, error)

PresentsAsBundle checks if the provided folders have the needed structure to be a bundle

func (Contents) Push

func (b Contents) Push(uploadRef regname.Tag, labels map[string]string, registry ImagesMetadataWriter, logger Logger) (string, error)

Push the contents of the bundle to the registry as an OCI Image

type Fetcher

type Fetcher interface {
	// Bundle search for the imgRef Digest
	// only returns the *Bundle if the current image is a bundle, if not the return value will be nil
	Bundle(throttleReq *util.Throttle, imgRef ImageRef) (lockconfig.ImageRef, *Bundle, error)
}

Fetcher Interface that will fetch the bundle

type FetcherFromProcessedImages

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

FetcherFromProcessedImages struct that implements Fetcher and searches for the bundle in preprocessed images

func NewFetcherFromProcessedImages

func NewFetcherFromProcessedImages(processedImages []imageset.ProcessedImage, imgRetriever ImagesMetadata, imagesLockReader ImagesLockReader) *FetcherFromProcessedImages

NewFetcherFromProcessedImages Creates a bundle Fetcher that reads the information from previously processed images

func (*FetcherFromProcessedImages) Bundle

Bundle search for the imgRef Digest on the preprocessed images only returns the *Bundle if the current image is a bundle, if not the return value will be nil

type GraphNode

type GraphNode struct {
	Path          string
	ImageRef      string
	NestedBundles []GraphNode
}

GraphNode Node information of a Bundle

type ImageLocation

type ImageLocation struct {
	Image    string `json:"image"`    // This generated yaml, but due to lib we need to use `json`
	IsBundle bool   `json:"isBundle"` // This generated yaml, but due to lib we need to use `json`
}

type ImageLocationsConfig

type ImageLocationsConfig struct {
	APIVersion string          `json:"apiVersion"` // This generated yaml, but due to lib we need to use `json`
	Kind       string          `json:"kind"`       // This generated yaml, but due to lib we need to use `json`
	Images     []ImageLocation `json:"images"`     // This generated yaml, but due to lib we need to use `json`
}

func NewLocationConfigFromBytes

func NewLocationConfigFromBytes(data []byte) (ImageLocationsConfig, error)

func NewLocationConfigFromPath

func NewLocationConfigFromPath(path string) (ImageLocationsConfig, error)

func (ImageLocationsConfig) AsBytes

func (c ImageLocationsConfig) AsBytes() ([]byte, error)

func (ImageLocationsConfig) Validate

func (c ImageLocationsConfig) Validate() error

func (ImageLocationsConfig) WriteToPath

func (c ImageLocationsConfig) WriteToPath(path string) error

type ImageRef

type ImageRef struct {
	lockconfig.ImageRef
	IsBundle  *bool
	Copiable  bool
	ImageType ImageType
	Error     string
}

func NewBundleImageRef

func NewBundleImageRef(imgRef lockconfig.ImageRef) ImageRef

NewBundleImageRef Constructs a new ImageRef for Bundle

func NewContentImageRef

func NewContentImageRef(imgRef lockconfig.ImageRef) ImageRef

NewContentImageRef Constructs a new ImageRef for Image

func NewImageRefWithType

func NewImageRefWithType(imgRef lockconfig.ImageRef, imageType ImageType) ImageRef

NewImageRefWithType Constructs a new ImageRef based on the ImageType

func NewImageRefWithTypeAndError

func NewImageRefWithTypeAndError(imgRef lockconfig.ImageRef, imageType ImageType, err string) ImageRef

NewImageRefWithTypeAndError Constructs a new ImageRef based on the ImageType that failed to fetch

func (ImageRef) DeepCopy

func (i ImageRef) DeepCopy() ImageRef

func (ImageRef) Digest

func (i ImageRef) Digest() string

Digest Image Digest

type ImageRefLocationsConfig

type ImageRefLocationsConfig interface {
	Config() (ImageLocationsConfig, error)
}

type ImageRefs

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

func NewImageRefs

func NewImageRefs() ImageRefs

func NewImageRefsFromImagesLock

func NewImageRefsFromImagesLock(imagesLock lockconfig.ImagesLock, imageRefsLocationConfig ImageRefLocationsConfig) (ImageRefs, error)

NewImageRefsFromImagesLock Create a new ImageRefs from the provided lockconfig.ImagesLock and ImageLocationsConfig

func (*ImageRefs) AddImagesRef

func (i *ImageRefs) AddImagesRef(refs ...ImageRef)

func (*ImageRefs) Find

func (i *ImageRefs) Find(ref string) (ImageRef, bool)

func (ImageRefs) ImageRefs

func (i ImageRefs) ImageRefs() []ImageRef

func (ImageRefs) ImagesLock

func (i ImageRefs) ImagesLock() lockconfig.ImagesLock

func (*ImageRefs) LocalizeToRepo

func (i *ImageRefs) LocalizeToRepo(relativeToRepo string)

func (*ImageRefs) MarkAsBundle

func (i *ImageRefs) MarkAsBundle(image string, isBundle bool)

func (*ImageRefs) UpdateRelativeToRepo

func (i *ImageRefs) UpdateRelativeToRepo(imgRetriever ImagesMetadata, relativeToRepo string) (bool, error)

type ImageType

type ImageType string

ImageType defines the type of Image. This is an evolving list that might grow with time

const (
	// BundleImage Image that represents a Bundle
	BundleImage ImageType = "Bundle"
	// ContentImage Image that is part of the Bundle
	ContentImage ImageType = "Image"
	// SignatureImage Image that contains a signature
	SignatureImage ImageType = "Signature"
	// InternalImage Image that contains a signature
	InternalImage ImageType = "Internal"
)

type ImagesLockReader

type ImagesLockReader interface {
	Read(img regv1.Image) (lockconfig.ImagesLock, error)
}

type ImagesMetadata

type ImagesMetadata interface {
	Get(regname.Reference) (*regremote.Descriptor, error)
	Image(regname.Reference) (regv1.Image, error)
	Digest(regname.Reference) (regv1.Hash, error)
	FirstImageExists(digests []string) (string, error)
}

type ImagesMetadataWriter

type ImagesMetadataWriter interface {
	ImagesMetadata
	WriteImage(regname.Reference, regv1.Image, chan regv1.Update) error
	WriteTag(ref regname.Tag, taggagle regremote.Taggable) error
	CloneWithLogger(logger util.ProgressLogger) registry.Registry
}

type LocationImageReader

type LocationImageReader interface {
	Read(img regv1.Image) (ImageLocationsConfig, error)
}

type LocationsConfig

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

func (LocationsConfig) Config

type LocationsConfigs

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

func NewLocations

func NewLocations(ui util.LoggerWithLevels) *LocationsConfigs

NewLocations constructor for creating a LocationsConfigs

func NewLocationsWithReader

func NewLocationsWithReader(reader LocationImageReader, ui util.LoggerWithLevels) *LocationsConfigs

NewLocationsWithReader constructor for LocationsConfigs

func (*LocationsConfigs) Fetch

func (r *LocationsConfigs) Fetch(registry ImagesMetadata, bundleRef name.Digest) (ImageLocationsConfig, error)

Fetch Retrieve the ImageLocationsConfig for a particular Bundle

func (LocationsConfigs) LocationsImageDigest

func (r LocationsConfigs) LocationsImageDigest(registry ImagesMetadata, bundleRef name.Digest) (name.Digest, error)

LocationsImageDigest Retrieve the Locations OCI Image Digest

func (LocationsConfigs) Save

func (r LocationsConfigs) Save(reg ImagesMetadataWriter, bundleRef name.Digest, config ImageLocationsConfig, logger Logger) error

Save the locations information for the bundle in the registry This function will create an OCI Image that contains the Location information of all the images that are part of the Bundle

type LocationsNotFound

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

func (LocationsNotFound) Error

func (n LocationsNotFound) Error() string

type Logger

type Logger interface {
	Errorf(msg string, args ...interface{})
	Warnf(msg string, args ...interface{})
	Debugf(msg string, args ...interface{})
	Tracef(msg string, args ...interface{})
	Logf(msg string, args ...interface{})
}

Logger Interface used for logging

type NotFoundLocationsConfig

type NotFoundLocationsConfig struct{}

NotFoundLocationsConfig Noop Locations Configuration retrieval

func (NotFoundLocationsConfig) Config

Config Returns a LocationsNotFound error

type RegistryFetcher

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

RegistryFetcher struct that implements Fetcher and searches for the bundle in the registry

func NewRegistryFetcher

func NewRegistryFetcher(imgRetriever ImagesMetadata, imagesLockReader ImagesLockReader) *RegistryFetcher

NewRegistryFetcher Creates a bundle Fetcher that talks to the registry

func (*RegistryFetcher) Bundle

func (r *RegistryFetcher) Bundle(throttleReq *util.Throttle, imgRef ImageRef) (lockconfig.ImageRef, *Bundle, error)

Bundle search for the imgRef Digest on the registry only returns the *Bundle if the current image is a bundle, if not the return value will be nil

type SignatureFetcher

type SignatureFetcher interface {
	FetchForImageRefs(images []lockconfig.ImageRef) ([]lockconfig.ImageRef, error)
}

SignatureFetcher Interface to retrieve signatures associated with Images

type SingleLayerReader

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

SingleLayerReader Reads the ImagesLock from an image and caches the result

func NewImagesLockReader

func NewImagesLockReader() *SingleLayerReader

NewImagesLockReader Creates a SingleLayerReader

func (*SingleLayerReader) Read

Read the ImagesLock from the provided img

Directories

Path Synopsis
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

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