Documentation ¶
Index ¶
- func BootedFrom(runner v1.Runner, label string) bool
- func CalcFileChecksum(fs v1.FS, fileName string) (string, error)
- func ChrootedCallback(cfg *v1.Config, path string, bindMounts map[string]string, ...) error
- func ConcatFiles(fs v1.FS, sources []string, target string) (err error)
- func CopyFile(fs v1.FS, source string, target string) error
- func CosignVerify(fs v1.FS, runner v1.Runner, image string, publicKey string, debug bool) (string, error)
- func CreateDirStructure(fs v1.FS, target string) error
- func CreateRAWFile(fs v1.FS, filename string, size uint) error
- func CreateSquashFS(runner v1.Runner, logger v1.Logger, source string, destination string, ...) error
- func DirSize(fs v1.FS, path string) (int64, error)
- func DirSizeMB(fs v1.FS, path string) (uint, error)
- func Exists(fs v1.FS, path string, noFollow ...bool) (bool, error)
- func FindFile(vfs v1.FS, rootDir string, patterns ...string) (string, error)
- func FindInitrd(fs v1.FS, rootDir string) (string, error)
- func FindKernel(fs v1.FS, rootDir string) (string, string, error)
- func FindKernelInitrd(fs v1.FS, rootDir string) (kernel string, initrd string, err error)
- func GetAllPartitions() (v1.PartitionList, error)
- func GetDeviceByLabel(runner v1.Runner, label string, attempts int) (string, error)
- func GetFullDeviceByLabel(runner v1.Runner, label string, attempts int) (*v1.Partition, error)
- func GetPartitionFS(partition string) (string, error)
- func GetSource(config v1.Config, source string, destination string) error
- func IsDir(fs v1.FS, path string) (bool, error)
- func IsHTTPURI(uri string) (bool, error)
- func IsLocalURI(uri string) (bool, error)
- func LoadEnvFile(fs v1.FS, file string) (map[string]string, error)
- func MkdirAll(fs v1.FS, name string, mode os.FileMode) (err error)
- func RawDiskToFixedVhd(diskFile *os.File)
- func Reboot(runner v1.Runner, delay time.Duration) error
- func ResolveLink(vfs v1.FS, path string, rootDir string, depth int) (string, error)
- func RunStage(cfg *v1.Config, stage string, strict bool, cloudInitPaths ...string) error
- func Shutdown(runner v1.Runner, delay time.Duration) error
- func SyncData(log v1.Logger, runner v1.Runner, fs v1.FS, source string, target string, ...) error
- func TempDir(fs v1.FS, dir, prefix string) (name string, err error)
- func TempFile(fs v1.FS, dir, pattern string) (f *os.File, err error)
- func ValidContainerReference(ref string) bool
- func ValidTaggedContainerReference(ref string) bool
- func WalkDirFs(fs v1.FS, root string, fn fs.WalkDirFunc) error
- type Chroot
- type CleanJob
- type CleanStack
- type VHDHeader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BootedFrom ¶
BootedFrom will check if we are booting from the given label
func CalcFileChecksum ¶
CalcFileChecksum opens the given file and returns the sha256 checksum of it.
func ChrootedCallback ¶
func ChrootedCallback(cfg *v1.Config, path string, bindMounts map[string]string, callback func() error) error
ChrootedCallback runs the given callback in a chroot environment
func ConcatFiles ¶
ConcatFiles Copies source files to target file using Fs interface. Source files are concatenated into target file in the given order. If target is a directory source is copied into that directory using 1st source name file. The result keeps the file mode of the 1st source.
func CopyFile ¶
CopyFile Copies source file to target file using Fs interface. If target is directory source is copied into that directory using source name file. File mode is preserved
func CosignVerify ¶
func CosignVerify(fs v1.FS, runner v1.Runner, image string, publicKey string, debug bool) (string, error)
CosignVerify runs a cosign validation for the give image and given public key. If no key is provided then it attempts a keyless validation (experimental feature).
func CreateDirStructure ¶
CreateDirStructure creates essentials directories under the root tree that might not be present within a container image (/dev, /run, etc.)
func CreateRAWFile ¶ added in v1.1.0
CreateRAWFile creates raw file of the given size in MB
func CreateSquashFS ¶
func CreateSquashFS(runner v1.Runner, logger v1.Logger, source string, destination string, options []string) error
CreateSquashFS creates a squash file at destination from a source, with options TODO: Check validity of source maybe?
func Exists ¶
Check if a file or directory exists. noFollow flag determines to not follow symlinks to check files existance.
func FindFile ¶ added in v1.2.0
FindFile attempts to find a file from a list of patterns on top of a given root path. Returns first match if any and returns error otherwise.
func FindInitrd ¶ added in v1.2.0
FindInitrd finds for initrd files inside a given root tree path. It assumes initrd files match certain patterns
func FindKernel ¶ added in v1.2.0
FindKernel finds for kernel files inside a given root tree path. Returns kernel file and version. It assumes kernel files match certain patterns
func FindKernelInitrd ¶ added in v1.2.0
FindKernelInitrd finds for kernel and intird files inside a given root tree path. It assumes kernel and initrd files match certain patterns. This is a comodity method of a combination of FindKernel and FindInitrd.
func GetAllPartitions ¶
func GetAllPartitions() (v1.PartitionList, error)
GetAllPartitions returns all partitions in the system for all disks
func GetDeviceByLabel ¶
GetDeviceByLabel will try to return the device that matches the given label. attempts value sets the number of attempts to find the device, it waits a second between attempts.
func GetFullDeviceByLabel ¶
GetFullDeviceByLabel works like GetDeviceByLabel, but it will try to get as much info as possible from the existing partition and return a v1.Partition object
func GetPartitionFS ¶
GetPartitionFS gets the FS of a partition given
func GetSource ¶
GetSource copies given source to destination, if source is a local path it simply copies files, if source is a remote URL it tries to download URL to destination.
func IsHTTPURI ¶
IsHTTPURI returns true if the uri has "http" or "https" scheme, returns false otherwise. Error is not nil only if the url can't be parsed.
func IsLocalURI ¶
IsLocalURI returns true if the uri has "file" scheme or no scheme and URI is not prefixed with a domain (container registry style). Returns false otherwise. Error is not nil only if the url can't be parsed.
func LoadEnvFile ¶
LoadEnvFile will try to parse the file given and return a map with the kye/values
func RawDiskToFixedVhd ¶
RawDiskToFixedVhd will write the proper header to a given os.File to convert it from a simple raw disk to a Fixed VHD RawDiskToFixedVhd makes no effort into opening/closing/checking if the file exists
func ResolveLink ¶ added in v1.2.0
ResolveLink attempts to resolve a symlink, if any. Returns the original given path if not a symlink or if it can't be resolved.
func SyncData ¶
func SyncData(log v1.Logger, runner v1.Runner, fs v1.FS, source string, target string, excludes ...string) error
SyncData rsync's source folder contents to a target folder content, both are expected to exist before hand.
func ValidContainerReference ¶
ValidContainerReferece returns true if the given string matches a container registry reference, false otherwise
func ValidTaggedContainerReference ¶
ValidTaggedContainerReferece returns true if the given string matches a container registry reference including a tag, false otherwise.
Types ¶
type Chroot ¶
type Chroot struct {
// contains filtered or unexported fields
}
Chroot represents the struct that will allow us to run commands inside a given chroot
func (*Chroot) Prepare ¶
Prepare will mount the defaultMounts as bind mounts, to be ready when we run chroot
func (*Chroot) RunCallback ¶
RunCallback runs the given callback in a chroot environment
func (*Chroot) SetExtraMounts ¶
Sets additional bind mounts for the chroot enviornment. They are represented in a map where the key is the path outside the chroot and the value is the path inside the chroot.
type CleanStack ¶
type CleanStack struct {
// contains filtered or unexported fields
}
Stack is a basic LIFO stack that resizes as needed.
func (*CleanStack) Cleanup ¶
func (clean *CleanStack) Cleanup(err error) error
Cleanup runs the whole cleanup stack. In case of error it runs all jobs and returns the first error occurrence.
func (*CleanStack) Pop ¶
func (clean *CleanStack) Pop() CleanJob
Pop removes and returns a node from the stack in last to first order.
type VHDHeader ¶
type VHDHeader struct { Cookie [8]byte // Cookies are used to uniquely identify the original creator of the hard disk image Features [4]byte // This is a bit field used to indicate specific feature support. // Can be 0x00000000 (no features), 0x00000001 (Temporary, candidate for deletion on shutdown) or 0x00000002 (Reserved) FileFormatVersion [4]byte // Divided into a major/minor version and matches the version of the specification used in creating the file. DataOffset [8]byte // For fixed disks, this field should be set to 0xFFFFFFFF. Timestamp [4]byte // Sstores the creation time of a hard disk image. This is the number of seconds since January 1, 2000 12:00:00 AM in UTC/GMT. CreatorApplication [4]byte // Used to document which application created the hard disk. CreatorVersion [4]byte // This field holds the major/minor version of the application that created the hard disk image. CreatorHostOS [4]byte // This field stores the type of host operating system this disk image is created on. OriginalSize [8]byte // This field stores the size of the hard disk in bytes, from the perspective of the virtual machine, at creation time. Info only CurrentSize [8]byte // This field stores the current size of the hard disk, in bytes, from the perspective of the virtual machine. DiskGeometry [4]byte // This field stores the cylinder, heads, and sectors per track value for the hard disk. DiskType [4]byte // Fixed = 2, Dynamic = 3, Differencing = 4 Checksum [4]byte // This field holds a basic checksum of the hard disk footer. It is just a one’s complement of the sum of all the bytes in the footer without the checksum field. UniqueID [16]byte // This is a 128-bit universally unique identifier (UUID). SavedState [1]byte // This field holds a one-byte flag that describes whether the system is in saved state. If the hard disk is in the saved state the value is set to 1 Reserved [427]byte // This field contains zeroes. }