limayaml

package
v0.6.3 Latest Latest
Warning

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

Go to latest
Published: Sep 4, 2021 License: Apache-2.0 Imports: 19 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DefaultTemplate []byte

Functions

func FillDefault

func FillDefault(y *LimaYAML, filePath string)

func FillPortForwardDefaults

func FillPortForwardDefaults(rule *PortForward)

func MACAddress

func MACAddress(uniqueID string) string

func Validate

func Validate(y LimaYAML) error

Types

type Arch

type Arch = string
const (
	X8664   Arch = "x86_64"
	AARCH64 Arch = "aarch64"
)

type Containerd

type Containerd struct {
	System *bool `yaml:"system,omitempty"` // default: false
	User   *bool `yaml:"user,omitempty"`   // default: true
}

type File

type File struct {
	Location string        `yaml:"location"` // REQUIRED
	Arch     Arch          `yaml:"arch,omitempty"`
	Digest   digest.Digest `yaml:"digest,omitempty"`
}

type Firmware

type Firmware struct {
	// LegacyBIOS disables UEFI if set.
	// LegacyBIOS is ignored for aarch64.
	LegacyBIOS bool `yaml:"legacyBIOS,omitempty"`
}

type LimaYAML

type LimaYAML struct {
	Arch         Arch               `yaml:"arch,omitempty"`
	Images       []File             `yaml:"images"` // REQUIRED
	CPUs         int                `yaml:"cpus,omitempty"`
	Memory       string             `yaml:"memory,omitempty"` // go-units.RAMInBytes
	Disk         string             `yaml:"disk,omitempty"`   // go-units.RAMInBytes
	Mounts       []Mount            `yaml:"mounts,omitempty"`
	SSH          SSH                `yaml:"ssh,omitempty"` // REQUIRED (FIXME)
	Firmware     Firmware           `yaml:"firmware,omitempty"`
	Video        Video              `yaml:"video,omitempty"`
	Provision    []Provision        `yaml:"provision,omitempty"`
	Containerd   Containerd         `yaml:"containerd,omitempty"`
	Probes       []Probe            `yaml:"probes,omitempty"`
	PortForwards []PortForward      `yaml:"portForwards,omitempty"`
	Network      Network            `yaml:"network,omitempty"`
	Env          map[string]*string `yaml:"env,omitempty"` // EXPERIMENAL, see default.yaml
}

func Load

func Load(b []byte, filePath string) (*LimaYAML, error)

Load loads the yaml and fulfills unspecified fields with the default values.

Load does not validate. Use Validate for validation.

type Mount

type Mount struct {
	Location string `yaml:"location"` // REQUIRED
	Writable bool   `yaml:"writable,omitempty"`
}

type Network

type Network struct {
	VDE []VDE `yaml:"vde,omitempty"`
}

type PortForward

type PortForward struct {
	GuestIP        net.IP `yaml:"guestIP,omitempty"`
	GuestPort      int    `yaml:"guestPort,omitempty"`
	GuestPortRange [2]int `yaml:"guestPortRange,omitempty"`
	HostIP         net.IP `yaml:"hostIP,omitempty"`
	HostPort       int    `yaml:"hostPort,omitempty"`
	HostPortRange  [2]int `yaml:"hostPortRange,omitempty"`
	Proto          Proto  `yaml:"proto,omitempty"`
	Ignore         bool   `yaml:"ignore,omitempty"`
}

type Probe

type Probe struct {
	Mode        ProbeMode // default: "readiness"
	Description string
	Script      string
	Hint        string
}

type ProbeMode

type ProbeMode = string
const (
	ProbeModeReadiness ProbeMode = "readiness"
)

type Proto

type Proto = string
const (
	TCP Proto = "tcp"
)

type Provision

type Provision struct {
	Mode   ProvisionMode `yaml:"mode"` // default: "system"
	Script string        `yaml:"script"`
}

type ProvisionMode

type ProvisionMode = string
const (
	ProvisionModeSystem ProvisionMode = "system"
	ProvisionModeUser   ProvisionMode = "user"
)

type SSH

type SSH struct {
	LocalPort int `yaml:"localPort,omitempty"` // REQUIRED (FIXME: auto assign)

	// LoadDotSSHPubKeys loads ~/.ssh/*.pub in addition to $LIMA_HOME/_config/user.pub .
	// Default: true
	LoadDotSSHPubKeys *bool `yaml:"loadDotSSHPubKeys,omitempty"`
}

type VDE

type VDE struct {
	// VNL is a Virtual Network Locator (https://github.com/rd235/vdeplug4/commit/089984200f447abb0e825eb45548b781ba1ebccd).
	// On macOS, only VDE2-compatible form (optionally with vde:// prefix) is supported.
	VNL        string `yaml:"vnl,omitempty"`
	SwitchPort uint16 `yaml:"switchPort,omitempty"` // VDE Switch port, not TCP/UDP port
	MACAddress string `yaml:"macAddress,omitempty"`
	Name       string `yaml:"name,omitempty"`
}

type Video

type Video struct {
	// Display is a QEMU display string
	Display string `yaml:"display,omitempty"`
}

Jump to

Keyboard shortcuts

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