pkg

package
v0.0.0-...-c7d747a Latest Latest
Warning

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

Go to latest
Published: Nov 22, 2023 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package pkg defines the concept of a kpt package.

Index

Constants

View Source
const CurDir = "."
View Source
const ParentDir = ".."

Variables

View Source
var DeprecatedKptfileVersions = []schema.GroupVersionKind{
	kptfilev1.KptFileGVK().GroupKind().WithVersion("v1alpha1"),
	kptfilev1.KptFileGVK().GroupKind().WithVersion("v1alpha2"),
}

MatchAllKRM represents set of glob pattern to match all KRM resources including Kptfile.

View Source
var SupportedKptfileVersions = []schema.GroupVersionKind{
	kptfilev1.KptFileGVK(),
}

Functions

func CheckKptfileVersion

func CheckKptfileVersion(content []byte) error

CheckKptfileVersion verifies the apiVersion and kind of the resource within the Kptfile. If the legacy version is found, the DeprecatedKptfileError is returned. If the currently supported apiVersion and kind is found, no error is returned.

func DecodeKptfile

func DecodeKptfile(in io.Reader) (*kptfilev1.KptFile, error)

func DecodeRGFile

func DecodeRGFile(in io.Reader) (*rgfilev1alpha1.ResourceGroup, error)

DecodeRGFile converts a string reader into structured a ResourceGroup object.

func GetPkgPathAnnotation

func GetPkgPathAnnotation(rn *yaml.RNode) (string, error)

GetPkgPathAnnotation returns the package path annotation on a given resource.

func IsPackageDir

func IsPackageDir(fsys filesys.FileSystem, path string) (bool, error)

IsPackageDir checks if there exists a Kptfile on the provided path, i.e. whether the provided path is the root of a package.

func IsPackageUnfetched

func IsPackageUnfetched(path string) (bool, error)

IsPackageUnfetched returns true if a package has Upstream information, but no UpstreamLock. For local packages that doesn't have Upstream information, it will always return false. If a Kptfile is not found on the provided path, an error will be returned.

func ReadKptfile

func ReadKptfile(fs filesys.FileSystem, p string) (*kptfilev1.KptFile, error)

ReadKptfile reads the KptFile in the given pkg. TODO(droot): This method exists for current version of Kptfile. Need to reconcile with the team how we want to handle multiple versions of Kptfile in code. One option is to follow Kubernetes approach to have an internal version of Kptfile that all the code uses. In that case, we will have to implement pieces for IO/Conversion with right interfaces.

func ReadRGFile

func ReadRGFile(pkgPath, rgfile string) (*rgfilev1alpha1.ResourceGroup, error)

ReadRGFile reads the resourcegroup inventory in the given pkg.

func RemovePkgPathAnnotation

func RemovePkgPathAnnotation(rn *yaml.RNode) error

RemovePkgPathAnnotation removes the package path on a given resource.

func SetPkgPathAnnotation

func SetPkgPathAnnotation(rn *yaml.RNode, pkgPath types.UniquePath) error

SetPkgPathAnnotation sets package path on a given resource.

func Subpackages

func Subpackages(fsys filesys.FileSystem, rootPath string, matcher SubpackageMatcher, recursive bool) ([]string, error)

Subpackages returns a slice of paths to any subpackages of the provided path. The matcher parameter decides the types of subpackages should be considered(ALL/LOCAL/REMOTE/NONE), and the recursive parameter determines if only direct subpackages are considered. All returned paths will be relative to the provided rootPath. The top level package is not considered a subpackage. If the provided path doesn't exist, an empty slice will be returned. Symlinks are ignored. TODO: For now this accepts the path as a string type. See if we can leverage the package type here.

Types

type DeprecatedKptfileError

type DeprecatedKptfileError struct {
	Version string
}

DeprecatedKptfileError is an implementation of the error interface that is returned whenever kpt encounters a Kptfile using the legacy format.

func (*DeprecatedKptfileError) Error

func (e *DeprecatedKptfileError) Error() string

type InvInfoInvalid

type InvInfoInvalid struct{}

func (*InvInfoInvalid) Error

func (e *InvInfoInvalid) Error() string

type KptfileError

type KptfileError struct {
	Path types.UniquePath
	Err  error
}

KptfileError records errors regarding reading or parsing of a Kptfile.

func (*KptfileError) Error

func (k *KptfileError) Error() string

func (*KptfileError) Unwrap

func (k *KptfileError) Unwrap() error

type MultipleInventoryInfoError

type MultipleInventoryInfoError struct{}

MultipleInventoryInfoError is the error returned if there are multiple inventories provided in a stream or package contained with both Kptfile and ResourceGroup objects.

func (*MultipleInventoryInfoError) Error

type MultipleKfInv

type MultipleKfInv struct{}

MultipleKfInv is the error returned if there are multiple inventories provided in a stream or package as ResourceGroup objects.

func (*MultipleKfInv) Error

func (e *MultipleKfInv) Error() string

type MultipleResourceGroupsError

type MultipleResourceGroupsError struct{}

MultipleResourceGroupsError is the error returned if there are multiple inventories provided in a stream or package as ResourceGroup objects.

func (*MultipleResourceGroupsError) Error

type NoInvInfoError

type NoInvInfoError struct{}

NoInvInfoError is the error returned if there are no inventory information provided in either a stream or locally.

func (*NoInvInfoError) Error

func (e *NoInvInfoError) Error() string

type Pkg

type Pkg struct {

	// UniquePath represents absolute unique OS-defined path to the package directory on the filesystem.
	UniquePath types.UniquePath

	// DisplayPath represents Slash-separated path to the package directory on the filesystem relative
	// to parent directory of root package on which the command is invoked.
	// root package is defined as the package on which the command is invoked by user
	// This is not guaranteed to be unique (e.g. in presence of symlinks) and should only
	// be used for display purposes and is subject to change.
	DisplayPath types.DisplayPath
	// contains filtered or unexported fields
}

Pkg represents a kpt package with a one-to-one mapping to a directory on the local filesystem.

func New

func New(fs filesys.FileSystem, path string) (*Pkg, error)

New returns a pkg given an absolute OS-defined path. Use ReadKptfile or ReadPipeline on the return value to read meta resources from filesystem.

func (*Pkg) DirectSubpackages

func (p *Pkg) DirectSubpackages() ([]*Pkg, error)

DirectSubpackages returns subpackages of a pkg. It will return all direct subpackages, i.e. subpackages that aren't nested inside other subpackages under the current package. It will return packages that are nested inside directories of the current package. TODO: This does not support symlinks, so we need to figure out how we should support that with kpt.

func (*Pkg) Kptfile

func (p *Pkg) Kptfile() (*kptfilev1.KptFile, error)

Kptfile returns the Kptfile meta resource by lazy loading it from the filesytem. A nil value represents an implicit package.

func (*Pkg) LocalInventory

func (p *Pkg) LocalInventory() (kptfilev1.Inventory, error)

LocalInventory returns the package inventory stored within a package. If more than one, or no inventories are found, an error is returned instead.

func (*Pkg) LocalResources

func (p *Pkg) LocalResources() (resources []*yaml.RNode, err error)

LocalResources returns resources that belong to this package excluding the subpackage resources.

func (*Pkg) Pipeline

func (p *Pkg) Pipeline() (*kptfilev1.Pipeline, error)

Pipeline returns the Pipeline section of the pkg's Kptfile. if pipeline is not specified in a Kptfile, it returns Zero value of the pipeline.

func (*Pkg) ReadRGFile

func (p *Pkg) ReadRGFile(rgfile string) (*rgfilev1alpha1.ResourceGroup, error)

ReadRGFile returns the resourcegroup object by lazy loading it from the filesytem.

func (*Pkg) RelativePathTo

func (p *Pkg) RelativePathTo(ancestorPkg *Pkg) (string, error)

RelativePathTo returns current package's path relative to a given package. It returns an error if relative path doesn't exist. In a nested package chain, one can use this method to get the relative path of a subpackage relative to an ancestor package up the chain. Example: rel, _ := subpkg.RelativePathTo(rootPkg) The returned relative path is compatible with the target operating system-defined file paths.

func (*Pkg) String

func (p *Pkg) String() string

String returns the slash-separated relative path to the package.

func (*Pkg) ValidatePipeline

func (p *Pkg) ValidatePipeline() error

Validates the package pipeline.

type RGError

type RGError struct {
	Path types.UniquePath
	Err  error
}

RGError is an implementation of the error interface that is returned whenever kpt encounters errors reading a resourcegroup object file.

func (*RGError) Error

func (rg *RGError) Error() string

func (*RGError) Unwrap

func (rg *RGError) Unwrap() error

type RemoteKptfileError

type RemoteKptfileError struct {
	RepoSpec *git.RepoSpec
	Err      error
}

RemoteKptfileError records errors regarding reading or parsing of a Kptfile in a remote repo.

func (*RemoteKptfileError) Error

func (e *RemoteKptfileError) Error() string

func (*RemoteKptfileError) Unwrap

func (e *RemoteKptfileError) Unwrap() error

type SubpackageMatcher

type SubpackageMatcher string

SubpackageMatcher is type for specifying the types of subpackages which should be included when listing them.

const (
	// All means all types of subpackages will be returned.
	All SubpackageMatcher = "ALL"
	// Local means only local subpackages will be returned.
	Local SubpackageMatcher = "LOCAL"
	// remote means only remote subpackages will be returned.
	Remote SubpackageMatcher = "REMOTE"
	// None means that no subpackages will be returned.
	None SubpackageMatcher = "NONE"
)

type UnknownKptfileResourceError

type UnknownKptfileResourceError struct {
	GVK schema.GroupVersionKind
}

func (*UnknownKptfileResourceError) Error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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