bundle

package
v0.38.2 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2023 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 added in v0.37.0

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

NewBundleFromRef Creates a new Bundle from an image full reference

func (*Bundle) AllImagesLockRefs added in v0.26.0

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 added in v0.27.0

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 added in v0.26.0

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 added in v0.37.0

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 added in v0.31.0

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 added in v0.37.0

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 added in v0.37.0

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

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

func NewFetcherFromProcessedImages added in v0.37.0

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 added in v0.37.0

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 added in v0.31.0

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 added in v0.26.0

func NewBundleImageRef(imgRef lockconfig.ImageRef) ImageRef

NewBundleImageRef Constructs a new ImageRef for Bundle

func NewContentImageRef added in v0.26.0

func NewContentImageRef(imgRef lockconfig.ImageRef) ImageRef

NewContentImageRef Constructs a new ImageRef for Image

func NewImageRefWithType added in v0.26.0

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

NewImageRefWithType Constructs a new ImageRef based on the ImageType

func NewImageRefWithTypeAndError added in v0.34.0

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 added in v0.27.0

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 added in v0.26.0

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 added in v0.26.0

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 added in v0.26.0

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 added in v0.23.1

type NotFoundLocationsConfig struct{}

NotFoundLocationsConfig Noop Locations Configuration retrieval

func (NotFoundLocationsConfig) Config added in v0.23.1

Config Returns a LocationsNotFound error

type RegistryFetcher added in v0.37.0

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

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

func NewRegistryFetcher added in v0.37.0

func NewRegistryFetcher(imgRetriever ImagesMetadata, imagesLockReader ImagesLockReader) *RegistryFetcher

NewRegistryFetcher Creates a bundle Fetcher that talks to the registry

func (*RegistryFetcher) Bundle added in v0.37.0

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 added in v0.26.0

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

SignatureFetcher Interface to retrieve signatures associated with Images

type SingleLayerReader added in v0.37.0

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

SingleLayerReader Reads the ImagesLock from an image and caches the result

func NewImagesLockReader added in v0.37.0

func NewImagesLockReader() *SingleLayerReader

NewImagesLockReader Creates a SingleLayerReader

func (*SingleLayerReader) Read added in v0.37.0

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