Documentation ¶
Index ¶
- Constants
- Variables
- func AddToDefaultIgnoreList(entry IgnoreListEntry)
- func AddToIgnoreList(entry IgnoreListEntry)
- func AddVolumePathToIgnoreList(path string)
- func CacheHasher() func(string) (string, error)
- func CheckCleanedPathAgainstIgnoreList(path string) bool
- func CheckCleanedPathAgainstProvidedIgnoreList(path string, wl []IgnoreListEntry) bool
- func CheckIgnoreList(path string) bool
- func ContainsWildcards(paths []string) bool
- func CopyDir(src, dest string, context FileContext, uid, gid int64, chmod fs.FileMode, ...) ([]string, error)
- func CopyFile(src, dest string, context FileContext, uid, gid int64, chmod fs.FileMode, ...) (bool, error)
- func CopyFileOrSymlink(src string, destDir string, root string) error
- func CopyOwnership(src string, destDir string, root string) error
- func CopySymlink(src, dest string, context FileContext) (bool, error)
- func CreateFile(path string, reader io.Reader, perm os.FileMode, uid uint32, gid uint32) error
- func CreateTarballOfDirectory(pathToDir string, f io.Writer) error
- func CreateTargetTarfile(tarpath string) (*os.File, error)
- func DeleteFilesystem() error
- func DestinationFilepath(src, dest, cwd string) (string, error)
- func DetectFilesystemIgnoreList(path string) error
- func DetermineTargetFileOwnership(fi os.FileInfo, uid, gid int64) (int64, int64)
- func DockerConfLocation() string
- func DownloadFileToDest(rawurl, dest string, uid, gid int64, chmod fs.FileMode) error
- func EvalSymLink(path string) (string, error)
- func ExtractFile(dest string, hdr *tar.Header, cleanedName string, tr io.Reader) error
- func FilepathExists(path string) bool
- func GetChmod(chmodStr string, env []string) (chmod fs.FileMode, useDefault bool, err error)
- func GetFSFromImage(root string, img v1.Image, extract ExtractFunction) ([]string, error)
- func GetFSFromLayers(root string, layers []v1.Layer, opts ...FSOpt) ([]string, error)
- func GetFSInfoMap(dir string, existing map[string]os.FileInfo) (map[string]os.FileInfo, []string)
- func GetInputFrom(r io.Reader) ([]byte, error)
- func GetSymLink(path string) (string, error)
- func GetUserGroup(chownStr string, env []string) (int64, int64, error)
- func HasFilepathPrefix(path, prefix string, prefixMatchOnly bool) bool
- func Hasher() func(string) (string, error)
- func InitIgnoreList() error
- func IsDestDir(path string) bool
- func IsFileLocalTarArchive(src string) bool
- func IsInIgnoreList(path string) bool
- func IsInProvidedIgnoreList(path string, wl []IgnoreListEntry) bool
- func IsSrcRemoteFileURL(rawurl string) bool
- func IsSrcsValid(srcsAndDest instructions.SourcesAndDest, resolvedSources []string, ...) error
- func IsSymlink(fi os.FileInfo) bool
- func Lgetxattr(path string, attr string) ([]byte, error)
- func LookupUser(userStr string) (*user.User, error)
- func MakeTransport(opts config.RegistryOptions, registryName string) (http.RoundTripper, error)
- func MkdirAllWithPermissions(path string, mode os.FileMode, uid, gid int64) error
- func MtimeHasher() func(string) (string, error)
- func ParentDirectories(path string) []string
- func ParentDirectoriesWithoutLeadingSlash(path string) []string
- func RedoHasher() func(string) (string, error)
- func RelativeFiles(fp string, root string) ([]string, error)
- func ResolveEnvAndWildcards(sd instructions.SourcesAndDest, fileContext FileContext, envs []string) ([]string, string, error)
- func ResolveEnvironmentReplacement(value string, envs []string, isFilepath bool) (string, error)
- func ResolveEnvironmentReplacementList(values, envs []string, isFilepath bool) ([]string, error)
- func ResolveSources(srcs []string, root string) ([]string, error)
- func Retry(operation retryFunc, retryCount int, initialDelayMilliseconds int) error
- func RetryWithResult[T any](operation func() (T, error), retryCount int, initialDelayMilliseconds int) (result T, err error)
- func SHA256(r io.Reader) (string, error)
- func SyscallCredentials(userStr string) (*syscall.Credential, error)
- func URLDestinationFilepath(rawurl, dest, cwd string, envs []string) (string, error)
- func UnTar(r io.Reader, dest string) ([]string, error)
- func UnpackCompressedTar(path, dir string) error
- func UnpackLocalTarArchive(path, dest string) ([]string, error)
- func UpdateConfigEnv(envVars []instructions.KeyValuePair, config *v1.Config, ...) error
- func ValidAzureBlobStorageHost(context string) bool
- func Volumes() []string
- func WalkFS(dir string, existingPaths map[string]struct{}, ...) ([]string, map[string]struct{})
- type CertPool
- type ExtractFunction
- type FSConfig
- type FSOpt
- type FileContext
- type IgnoreListEntry
- type KeyPairLoader
- type Tar
- type X509CertPool
- type X509KeyPairLoader
Constants ¶
const ( DoNotChangeUID = -1 DoNotChangeGID = -1 )
Variables ¶
var ErrNotSymLink = fmt.Errorf("not a symlink")
Functions ¶
func AddToDefaultIgnoreList ¶
func AddToDefaultIgnoreList(entry IgnoreListEntry)
func AddToIgnoreList ¶
func AddToIgnoreList(entry IgnoreListEntry)
func AddVolumePathToIgnoreList ¶
func AddVolumePathToIgnoreList(path string)
AddVolumePath adds the given path to the volume ignorelist.
func CacheHasher ¶
CacheHasher takes into account everything the regular hasher does except for mtime
func CheckCleanedPathAgainstProvidedIgnoreList ¶
func CheckCleanedPathAgainstProvidedIgnoreList(path string, wl []IgnoreListEntry) bool
func CheckIgnoreList ¶
func ContainsWildcards ¶
ContainsWildcards returns true if any entry in paths contains wildcards
func CopyDir ¶
func CopyDir(src, dest string, context FileContext, uid, gid int64, chmod fs.FileMode, useDefaultChmod bool) ([]string, error)
CopyDir copies the file or directory at src to dest It returns a list of files it copied over
func CopyFile ¶
func CopyFile(src, dest string, context FileContext, uid, gid int64, chmod fs.FileMode, useDefaultChmod bool) (bool, error)
CopyFile copies the file at src to dest
func CopyFileOrSymlink ¶
For cross stage dependencies kaniko must persist the referenced path so that it can be used in the dependent stage. For symlinks we copy the target path because copying the symlink would result in a dead link
func CopyOwnership ¶
CopyOwnership copies the file or directory ownership recursively at src to dest
func CopySymlink ¶
func CopySymlink(src, dest string, context FileContext) (bool, error)
CopySymlink copies the symlink at src to dest.
func CreateFile ¶
CreateFile creates a file at path and copies over contents from the reader
func CreateTargetTarfile ¶
CreateTargetTarfile creates target tar file for downloading the context file. Make directory if directory does not exist
func DeleteFilesystem ¶
func DeleteFilesystem() error
DeleteFilesystem deletes the extracted image file system
func DestinationFilepath ¶
DestinationFilepath returns the destination filepath from the build context to the image filesystem If source is a file:
If dest is a dir, copy it to /dest/relpath If dest is a file, copy directly to dest
If source is a dir:
Assume dest is also a dir, and copy to dest/
If dest is not an absolute filepath, add /cwd to the beginning
func DetectFilesystemIgnoreList ¶
Get ignorelist from roots of mounted files Each line of /proc/self/mountinfo is in the form: 36 35 98:0 /mnt1 /mnt2 rw,noatime master:1 - ext3 /dev/root rw,errors=continue (1)(2)(3) (4) (5) (6) (7) (8) (9) (10) (11) Where (5) is the mount point relative to the process's root From: https://www.kernel.org/doc/Documentation/filesystems/proc.txt
func DetermineTargetFileOwnership ¶
DetermineTargetFileOwnership returns the user provided uid/gid combination. If they are set to -1, the uid/gid from the original file is used.
func DockerConfLocation ¶
func DockerConfLocation() string
DockerConfLocation returns the file system location of the Docker configuration file under the directory set in the DOCKER_CONFIG environment variable. If that variable is not set, it returns the OS-equivalent of "/kaniko/.docker/config.json".
func DownloadFileToDest ¶
DownloadFileToDest downloads the file at rawurl to the given dest for the ADD command From add command docs:
- If <src> is a remote file URL: - destination will have permissions of 0600 by default if not specified with chmod - If remote file has HTTP Last-Modified header, we set the mtime of the file to that timestamp
func EvalSymLink ¶
func ExtractFile ¶
func FilepathExists ¶
FilepathExists returns true if the path exists
func GetFSFromImage ¶
GetFSFromImage extracts the layers of img to root It returns a list of all files extracted
func GetFSFromLayers ¶
func GetFSInfoMap ¶
GetFSInfoMap given a directory gets a map of FileInfo for all files
func GetInputFrom ¶
GetInputFrom returns Reader content
func GetSymLink ¶
func HasFilepathPrefix ¶
HasFilepathPrefix checks if the given file path begins with prefix
func Hasher ¶
Hasher returns a hash function, used in snapshotting to determine if a file has changed
func InitIgnoreList ¶
func InitIgnoreList() error
InitIgnoreList will initialize the ignore list using: - defaultIgnoreList - mounted paths via DetectFilesystemIgnoreList()
func IsFileLocalTarArchive ¶
IsFileLocalTarArchive returns true if the file is a local tar archive
func IsInIgnoreList ¶
func IsInProvidedIgnoreList ¶
func IsInProvidedIgnoreList(path string, wl []IgnoreListEntry) bool
func IsSrcRemoteFileURL ¶
func IsSrcsValid ¶
func IsSrcsValid(srcsAndDest instructions.SourcesAndDest, resolvedSources []string, fileContext FileContext) error
func LookupUser ¶
LookupUser will try to lookup the userStr inside the passwd file. If the user does not exists, the function will fallback to parsing the userStr as an uid.
func MakeTransport ¶
func MakeTransport(opts config.RegistryOptions, registryName string) (http.RoundTripper, error)
func MkdirAllWithPermissions ¶
func MtimeHasher ¶
MtimeHasher returns a hash function, which only looks at mtime to determine if a file has changed. Note that the mtime can lag, so it's possible that a file will have changed but the mtime may look the same.
func ParentDirectories ¶
ParentDirectories returns a list of paths to all parent directories Ex. /some/temp/dir -> [/, /some, /some/temp, /some/temp/dir]
func ParentDirectoriesWithoutLeadingSlash ¶
ParentDirectoriesWithoutLeadingSlash returns a list of paths to all parent directories all subdirectories do not contain a leading / Ex. /some/temp/dir -> [/, some, some/temp, some/temp/dir]
func RedoHasher ¶
RedoHasher returns a hash function, which looks at mtime, size, filemode, owner uid and gid Note that the mtime can lag, so it's possible that a file will have changed but the mtime may look the same.
func RelativeFiles ¶
RelativeFiles returns a list of all files at the filepath relative to root
func ResolveEnvAndWildcards ¶
func ResolveEnvAndWildcards(sd instructions.SourcesAndDest, fileContext FileContext, envs []string) ([]string, string, error)
func ResolveEnvironmentReplacement ¶
ResolveEnvironmentReplacement resolves replacing env variables in some text from envs It takes in a string representation of the command, the value to be resolved, and a list of envs (config.Env) Ex: value = $foo/newdir, envs = [foo=/foodir], then this should return /foodir/newdir The dockerfile/shell package handles processing env values It handles escape characters and supports expansion from the config.Env array Shlex handles some of the following use cases (these and more are tested in integration tests) ""a'b'c"" -> "a'b'c" "Rex\ The\ Dog \" -> "Rex The Dog" "a\"b" -> "a"b"
func ResolveEnvironmentReplacementList ¶
ResolveEnvironmentReplacementList resolves a list of values by calling resolveEnvironmentReplacement
func ResolveSources ¶
ResolveSources resolves the given sources if the sources contains wildcards It returns a list of resolved sources
func RetryWithResult ¶
func RetryWithResult[T any](operation func() (T, error), retryCount int, initialDelayMilliseconds int) (result T, err error)
Retry retries an operation with a return value
func SyscallCredentials ¶
func SyscallCredentials(userStr string) (*syscall.Credential, error)
func URLDestinationFilepath ¶
URLDestinationFilepath gives the destination a file from a remote URL should be saved to
func UnTar ¶
UnTar returns a list of files that have been extracted from the tar archive at r to the path at dest
func UnpackCompressedTar ¶
UnpackCompressedTar unpacks the compressed tar at path to dir
func UnpackLocalTarArchive ¶
UnpackLocalTarArchive unpacks the tar archive at path to the directory dest Returns the files extracted from the tar archive
func UpdateConfigEnv ¶
func UpdateConfigEnv(envVars []instructions.KeyValuePair, config *v1.Config, replacementEnvs []string) error
func ValidAzureBlobStorageHost ¶
Validate if the host url provided is with correct suffix for AzureCloud, AzureChinaCloud, AzureGermanCloud and AzureUSGovernment RegEX for supported suffix defined in constants.AzureBlobStorageHostRegEx
func WalkFS ¶
func WalkFS( dir string, existingPaths map[string]struct{}, changeFunc func(string) (bool, error), ) ([]string, map[string]struct{})
WalkFS given a directory dir and list of existing files existingPaths, returns a list of changed files determined by `changeFunc` and a list of deleted files. Input existingPaths is changed inside this function and returned as deleted files map. It timesout after 90 mins which can be configured via setting an environment variable SNAPSHOT_TIMEOUT in the kaniko pod definition.
Types ¶
type FSOpt ¶
type FSOpt func(*FSConfig)
func ExtractFunc ¶
func ExtractFunc(extractFunc ExtractFunction) FSOpt
func IncludeWhiteout ¶
func IncludeWhiteout() FSOpt
type FileContext ¶
func NewFileContextFromDockerfile ¶
func NewFileContextFromDockerfile(dockerfilePath, buildcontext string) (FileContext, error)
func (FileContext) ExcludesFile ¶
func (c FileContext) ExcludesFile(path string) bool
ExcludesFile returns true if the file context specified this file should be ignored. Usually this is specified via .dockerignore
type IgnoreListEntry ¶
func IgnoreList ¶
func IgnoreList() []IgnoreListEntry
type KeyPairLoader ¶
type KeyPairLoader interface {
// contains filtered or unexported methods
}
type Tar ¶
type Tar struct {
// contains filtered or unexported fields
}
Tar knows how to write files to a tar file.
func (*Tar) AddFileToTar ¶
AddFileToTar adds the file at path p to the tar
type X509CertPool ¶
type X509CertPool struct {
// contains filtered or unexported fields
}
type X509KeyPairLoader ¶
type X509KeyPairLoader struct { }