Documentation
¶
Index ¶
- Variables
- func Cname(host string) string
- func FillDefault(y, d, o *LimaYAML, filePath string)
- func FillPortForwardDefaults(rule *PortForward, instDir string)
- func IsNativeArch(arch Arch) bool
- func MACAddress(uniqueID string) string
- func Validate(y LimaYAML, warn bool) error
- type Arch
- type Containerd
- type File
- type Firmware
- type HostResolver
- type LimaYAML
- type Mount
- type Network
- type NetworkDeprecated
- type PortForward
- type Probe
- type ProbeMode
- type Proto
- type Provision
- type ProvisionMode
- type SSH
- type SSHFS
- type VDEDeprecated
- type Video
Constants ¶
This section is empty.
Variables ¶
View Source
var DefaultTemplate []byte
Functions ¶
func FillDefault ¶
FillDefault updates undefined fields in y with defaults from d (or built-in default), and overwrites with values from o. Both d and o may be empty.
Maps (`Env`) are being merged: first populated from d, overwritten by y, and again overwritten by o. Slices (e.g. `Mounts`, `Provision`) are appended, starting with o, followed by y, and finally d. This makes sure o takes priority over y over d, in cases it matters (e.g. `PortForwards`, where the first matching rule terminates the search).
Exceptions:
- Mounts are appended in d, y, o order, but "merged" when the Location matches a previous entry; the highest priority Writable setting wins.
- DNS are picked from the highest priority where DNS is not empty.
func FillPortForwardDefaults ¶
func FillPortForwardDefaults(rule *PortForward, instDir string)
func IsNativeArch ¶ added in v0.8.3
func MACAddress ¶
Types ¶
type Containerd ¶
type Firmware ¶
type Firmware struct {
// LegacyBIOS disables UEFI if set.
// LegacyBIOS is ignored for aarch64.
LegacyBIOS *bool `yaml:"legacyBIOS,omitempty" json:"legacyBIOS,omitempty"`
}
type HostResolver ¶ added in v0.8.1
type LimaYAML ¶
type LimaYAML struct {
Arch *Arch `yaml:"arch,omitempty" json:"arch,omitempty"`
Images []File `yaml:"images" json:"images"` // REQUIRED
CPUType map[Arch]string `yaml:"cpuType,omitempty" json:"cpuType,omitempty"`
CPUs *int `yaml:"cpus,omitempty" json:"cpus,omitempty"`
Memory *string `yaml:"memory,omitempty" json:"memory,omitempty"` // go-units.RAMInBytes
Disk *string `yaml:"disk,omitempty" json:"disk,omitempty"` // go-units.RAMInBytes
Mounts []Mount `yaml:"mounts,omitempty" json:"mounts,omitempty"`
SSH SSH `yaml:"ssh,omitempty" json:"ssh,omitempty"` // REQUIRED (FIXME)
Firmware Firmware `yaml:"firmware,omitempty" json:"firmware,omitempty"`
Video Video `yaml:"video,omitempty" json:"video,omitempty"`
Provision []Provision `yaml:"provision,omitempty" json:"provision,omitempty"`
Containerd Containerd `yaml:"containerd,omitempty" json:"containerd,omitempty"`
Probes []Probe `yaml:"probes,omitempty" json:"probes,omitempty"`
PortForwards []PortForward `yaml:"portForwards,omitempty" json:"portForwards,omitempty"`
Message string `yaml:"message,omitempty" json:"message,omitempty"`
Networks []Network `yaml:"networks,omitempty" json:"networks,omitempty"`
Network NetworkDeprecated `yaml:"network,omitempty" json:"network,omitempty"` // DEPRECATED, use `networks` instead
Env map[string]string `yaml:"env,omitempty" json:"env,omitempty"`
DNS []net.IP `yaml:"dns,omitempty" json:"dns,omitempty"`
HostResolver HostResolver `yaml:"hostResolver,omitempty" json:"hostResolver,omitempty"`
UseHostResolver *bool `yaml:"useHostResolver,omitempty" json:"useHostResolver,omitempty"` // DEPRECATED, use `HostResolver.Enabled` instead
PropagateProxyEnv *bool `yaml:"propagateProxyEnv,omitempty" json:"propagateProxyEnv,omitempty"`
}
type Network ¶
type Network struct {
// `Lima` and `VNL` are mutually exclusive; exactly one is required
Lima string `yaml:"lima,omitempty" json:"lima,omitempty"`
// 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" json:"vnl,omitempty"`
SwitchPort uint16 `yaml:"switchPort,omitempty" json:"switchPort,omitempty"` // VDE Switch port, not TCP/UDP port (only used by VDE networking)
MACAddress string `yaml:"macAddress,omitempty" json:"macAddress,omitempty"`
Interface string `yaml:"interface,omitempty" json:"interface,omitempty"`
}
type NetworkDeprecated ¶ added in v0.7.0
type NetworkDeprecated struct {
VDEDeprecated []VDEDeprecated `yaml:"vde,omitempty" json:"vde,omitempty"`
// contains filtered or unexported fields
}
type PortForward ¶
type PortForward struct {
GuestIPMustBeZero bool `yaml:"guestIPMustBeZero,omitempty" json:"guestIPMustBeZero,omitempty"`
GuestIP net.IP `yaml:"guestIP,omitempty" json:"guestIP,omitempty"`
GuestPort int `yaml:"guestPort,omitempty" json:"guestPort,omitempty"`
GuestPortRange [2]int `yaml:"guestPortRange,omitempty" json:"guestPortRange,omitempty"`
GuestSocket string `yaml:"guestSocket,omitempty" json:"guestSocket,omitempty"`
HostIP net.IP `yaml:"hostIP,omitempty" json:"hostIP,omitempty"`
HostPort int `yaml:"hostPort,omitempty" json:"hostPort,omitempty"`
HostPortRange [2]int `yaml:"hostPortRange,omitempty" json:"hostPortRange,omitempty"`
HostSocket string `yaml:"hostSocket,omitempty" json:"hostSocket,omitempty"`
Proto Proto `yaml:"proto,omitempty" json:"proto,omitempty"`
Ignore bool `yaml:"ignore,omitempty" json:"ignore,omitempty"`
}
type Provision ¶
type Provision struct {
Mode ProvisionMode `yaml:"mode" json:"mode"` // default: "system"
Script string `yaml:"script" json:"script"`
}
type ProvisionMode ¶
type ProvisionMode = string
const ( ProvisionModeSystem ProvisionMode = "system" ProvisionModeUser ProvisionMode = "user" )
type SSH ¶
type SSH struct {
LocalPort *int `yaml:"localPort,omitempty" json:"localPort,omitempty"`
// LoadDotSSHPubKeys loads ~/.ssh/*.pub in addition to $LIMA_HOME/_config/user.pub .
LoadDotSSHPubKeys *bool `yaml:"loadDotSSHPubKeys,omitempty" json:"loadDotSSHPubKeys,omitempty"` // default: true
ForwardAgent *bool `yaml:"forwardAgent,omitempty" json:"forwardAgent,omitempty"` // default: false
}
type VDEDeprecated ¶ added in v0.7.0
type VDEDeprecated struct {
VNL string `yaml:"vnl,omitempty" json:"vnl,omitempty"`
SwitchPort uint16 `yaml:"switchPort,omitempty" json:"switchPort,omitempty"` // VDE Switch port, not TCP/UDP port
MACAddress string `yaml:"macAddress,omitempty" json:"macAddress,omitempty"`
Name string `yaml:"name,omitempty" json:"name,omitempty"`
}
Click to show internal directories.
Click to hide internal directories.