Documentation ¶
Index ¶
- func BootedFrom(runner v1.Runner, label string) bool
- func CommandExists(command string) bool
- func CopyFile(fs v1.FS, source string, target string) (err 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 CreateSquashFS(runner v1.Runner, logger v1.Logger, source string, destination string, ...) error
- func DirSize(fs v1.FS, path string) (int64, error)
- func Exists(fs v1.FS, path string) (bool, error)
- func GetAllPartitions() ([]*v1.Partition, 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.RunConfig, source string, destination string) error
- func GetTempDir(config *v1.RunConfig, suffix string) string
- 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 NewSrcGuessingType(c v1.Config, value string) v1.ImageSource
- func RawDiskToFixedVhd(diskFile *os.File)
- func Reboot(runner v1.Runner, delay time.Duration) error
- func RunStage(stage string, cfg *v1.RunConfig) error
- func Shutdown(runner v1.Runner, delay time.Duration) error
- func SyncData(fs v1.FS, source string, target string, excludes ...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
- type Chroot
- type CleanJob
- type CleanStack
- type Grub
- 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 CommandExists ¶
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.
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 ¶
Copies source file to target file using Fs interface
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 GetAllPartitions ¶ added in v0.0.14
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 ¶ added in v0.0.14
GetPartitionFS gets the FS of a partition given
func GetSource ¶ added in v0.0.14
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 GetTempDir ¶ added in v0.0.15
GetTempDir returns the dir for storing related temporal files It will respect TMPDIR and use that if exists, fallback to try the persistent partition if its mounted and finally the default /tmp/ dir suffix is what is appended to the dir name elemental-suffix. If empty it will randomly generate a number
func IsHTTPURI ¶ added in v0.0.14
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 ¶ added in v0.0.14
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 NewSrcGuessingType ¶ added in v0.0.14
func NewSrcGuessingType(c v1.Config, value string) v1.ImageSource
NewSrcGuessingType returns new v1.ImageSource instance guessing its type applying somne heuristic techniques (by order of preference):
- Assume it is Dir/File if value is found as a path in host
- Assume it is a container registry reference if it matches [<domain>/]<repositry>:<tag> (only domain is optional)
- Fallback to a channel source
func RawDiskToFixedVhd ¶ added in v0.0.15
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 SyncData ¶
SyncData rsync's source folder contents to a target folder content, both are expected to exist before hand.
func TempDir ¶ added in v0.0.14
TempDir creates a temp file in the virtual fs Took from afero.FS code and adapted
func TempFile ¶ added in v0.0.14
TempFile creates a temp file in the virtual fs Took from afero.FS code and adapted
func ValidContainerReference ¶ added in v0.0.14
ValidContainerReferece returns true if the given string matches a container registry reference, false otherwise
func ValidTaggedContainerReference ¶ added in v0.0.14
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 Grub ¶
type Grub struct {
// contains filtered or unexported fields
}
Grub is the struct that will allow us to install grub to the target device
type VHDHeader ¶ added in v0.0.15
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. }