Documentation ¶
Index ¶
- 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 ¶
This section is empty.
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.