qemu

package
v0.0.0-...-740a631 Latest Latest
Warning

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

Go to latest
Published: Oct 9, 2023 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CreateVM

func CreateVM(ctx context.Context, cfg Config) (*exec.Cmd, error)

func ExecutableAndArgs

func ExecutableAndArgs(cfg Config) (string, []string, error)

Types

type Config

type Config struct {
	TmpFileLoc string `env:"TMP_FILE_LOC" envDefault:"tmp"`
	UseSudo    bool   `env:"USE_SUDO" envDefault:"false"`
	EnableSEV  bool   `env:"ENABLE_SEV" envDefault:"true"`

	EnableKVM bool `env:"ENABLE_KVM" envDefault:"true"`

	// machine, CPU, RAM
	Machine  string `env:"MACHINE" envDefault:"q35"`
	CPU      string `env:"CPU" envDefault:"EPYC"`
	SmpCount int    `env:"SMP_COUNT" envDefault:"4"`
	MaxCpus  int    `env:"SMP_MAXCPUS" envDefault:"64"`
	MemoryConfig

	// OVMF
	OVMFCodeConfig
	OVMFVarsConfig

	// network
	NetDevConfig
	VirtioNetPciConfig

	// disk
	VirtioScsiPciConfig
	DiskImgConfig

	// SEV
	SevConfig

	// display
	NoGraphic bool   `env:"NO_GRAPHIC" envDefault:"true"`
	Monitor   string `env:"MONITOR" envDefault:"pty"`
}

type DiskImgConfig

type DiskImgConfig struct {
	File   string `env:"DISK_IMG_FILE" envDefault:"img/focal-server-cloudimg-amd64.img"`
	If     string `env:"DISK_IMG_IF" envDefault:"none"`
	ID     string `env:"DISK_IMG_ID" envDefault:"disk0"`
	Format string `env:"DISK_IMG_FORMAT" envDefault:"qcow2"`
}

type MemoryConfig

type MemoryConfig struct {
	Size  string `env:"MEMORY_SIZE" envDefault:"2048M"`
	Slots int    `env:"MEMORY_SLOTS" envDefault:"5"`
	Max   string `env:"MAX_MEMORY" envDefault:"30G"`
}

type NetDevConfig

type NetDevConfig struct {
	ID        string `env:"NETDEV_ID" envDefault:"vmnic"`
	HostFwd1  int    `env:"HOST_FWD_1" envDefault:"2222"`
	GuestFwd1 int    `env:"GUEST_FWD_1" envDefault:"22"`
	HostFwd2  int    `env:"HOST_FWD_2" envDefault:"9301"`
	GuestFwd2 int    `env:"GUEST_FWD_2" envDefault:"9031"`
	HostFwd3  int    `env:"HOST_FWD_3" envDefault:"7020"`
	GuestFwd3 int    `env:"GUEST_FWD_3" envDefault:"7002"`
}

type OVMFCodeConfig

type OVMFCodeConfig struct {
	If       string `env:"OVMF_CODE_IF" envDefault:"pflash"`
	Format   string `env:"OVMF_CODE_FORMAT" envDefault:"raw"`
	Unit     int    `env:"OVMF_CODE_UNIT" envDefault:"0"`
	File     string `env:"OVMF_CODE_FILE" envDefault:"/usr/share/OVMF/OVMF_CODE.fd"`
	ReadOnly string `env:"OVMF_CODE_READONLY" envDefault:"on"`
}

type OVMFVarsConfig

type OVMFVarsConfig struct {
	If     string `env:"OVMF_VARS_IF" envDefault:"pflash"`
	Format string `env:"OVMF_VARS_FORMAT" envDefault:"raw"`
	Unit   int    `env:"OVMF_VARS_UNIT" envDefault:"1"`
	File   string `env:"OVMF_VARS_FILE" envDefault:"/usr/share/OVMF/OVMF_VARS.fd"`
}

type SevConfig

type SevConfig struct {
	ID              string `env:"SEV_ID" envDefault:"sev0"`
	CBitPos         int    `env:"SEV_CBITPOS" envDefault:"51"`
	ReducedPhysBits int    `env:"SEV_REDUCED_PHYS_BITS" envDefault:"1"`
}

type VirtioNetPciConfig

type VirtioNetPciConfig struct {
	DisableLegacy string `env:"VIRTIO_NET_PCI_DISABLE_LEGACY" envDefault:"on"`
	IOMMUPlatform bool   `env:"VIRTIO_NET_PCI_IOMMU_PLATFORM" envDefault:"true"`
	ROMFile       string `env:"VIRTIO_NET_PCI_ROMFILE"`
}

type VirtioScsiPciConfig

type VirtioScsiPciConfig struct {
	ID            string `env:"VIRTIO_SCSI_PCI_ID" envDefault:"scsi"`
	DisableLegacy string `env:"VIRTIO_SCSI_PCI_DISABLE_LEGACY" envDefault:"on"`
	IOMMUPlatform bool   `env:"VIRTIO_SCSI_PCI_IOMMU_PLATFORM" envDefault:"true"`
}

Jump to

Keyboard shortcuts

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