Skip to content

Commit

Permalink
kvm: Make CPU model configurable
Browse files Browse the repository at this point in the history
The previous patch introduced the passthrough mode.
This patch makes this option configurable using the
`--kvm-cpu-model` flag. The value to be used for nesting
is `host-passthrough`.

Signed-off-by: Fabian Deutsch <[email protected]>
  • Loading branch information
fabiand committed Feb 16, 2018
1 parent e8d3bad commit 781101c
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 1 deletion.
3 changes: 3 additions & 0 deletions cmd/minikube/cmd/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ const (
networkPlugin = "network-plugin"
hypervVirtualSwitch = "hyperv-virtual-switch"
kvmNetwork = "kvm-network"
kvmCPUModel = "kvm-cpu-model"
keepContext = "keep-context"
createMount = "mount"
featureGates = "feature-gates"
Expand Down Expand Up @@ -145,6 +146,7 @@ func runStart(cmd *cobra.Command, args []string) {
HostOnlyCIDR: viper.GetString(hostOnlyCIDR),
HypervVirtualSwitch: viper.GetString(hypervVirtualSwitch),
KvmNetwork: viper.GetString(kvmNetwork),
KvmCPUModel: viper.GetString(kvmCPUModel),
Downloader: pkgutil.DefaultDownloader{},
DisableDriverMounts: viper.GetBool(disableDriverMounts),
UUID: viper.GetString(uuid),
Expand Down Expand Up @@ -379,6 +381,7 @@ func init() {
startCmd.Flags().String(hostOnlyCIDR, "192.168.99.1/24", "The CIDR to be used for the minikube VM (only supported with Virtualbox driver)")
startCmd.Flags().String(hypervVirtualSwitch, "", "The hyperv virtual switch name. Defaults to first found. (only supported with HyperV driver)")
startCmd.Flags().String(kvmNetwork, "default", "The KVM network name. (only supported with KVM driver)")
startCmd.Flags().String(kvmCPUModel, "custom", "The KVM CPU model name. (only supported with KVM driver)")
startCmd.Flags().String(xhyveDiskDriver, "ahci-hd", "The disk driver to use [ahci-hd|virtio-blk] (only supported with xhyve driver)")
startCmd.Flags().StringSlice(NFSShare, []string{}, "Local folders to share with Guest via NFS mounts (Only supported on with hyperkit now)")
startCmd.Flags().String(NFSSharesRoot, "/nfsshares", "Where to root the NFS Shares (defaults to /nfsshares, only supported with hyperkit now)")
Expand Down
2 changes: 1 addition & 1 deletion pkg/drivers/kvm/domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const domainTmpl = `
<apic/>
<pae/>
</features>
<cpu mode='host-passthrough'></cpu>
<cpu mode='{{.CPUModel}}'/>
<os>
<type>hvm</type>
<boot dev='cdrom'/>
Expand Down
4 changes: 4 additions & 0 deletions pkg/drivers/kvm/kvm.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,9 @@ type Driver struct {
// How many cpus to allocate to the VM
CPU int

// What CPU model to expose
CPUModel string

// The name of the default network
Network string

Expand Down Expand Up @@ -83,6 +86,7 @@ func NewDriver(hostName, storePath string) *Driver {
CommonDriver: &pkgdrivers.CommonDriver{},
Boot2DockerURL: constants.DefaultIsoUrl,
CPU: constants.DefaultCPUS,
CPUModel: constants.DefaultCPUModel,
DiskSize: util.CalculateDiskSizeInMB(constants.DefaultDiskSize),
Memory: constants.DefaultMemory,
PrivateNetwork: defaultPrivateNetworkName,
Expand Down
1 change: 1 addition & 0 deletions pkg/minikube/cluster/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ type MachineConfig struct {
HostOnlyCIDR string // Only used by the virtualbox driver
HypervVirtualSwitch string
KvmNetwork string // Only used by the KVM driver
KvmCPUModel string // Only used by the KVM driver
Downloader util.ISODownloader `json:"-"`
DockerOpt []string // Each entry is formatted as KEY=VALUE.
DisableDriverMounts bool // Only used by virtualbox and xhyve
Expand Down
1 change: 1 addition & 0 deletions pkg/minikube/constants/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ const (
ShaSuffix = ".sha256"
DefaultMemory = 2048
DefaultCPUS = 2
DefaultCPUModel = "custom"
DefaultDiskSize = "20g"
MinimumDiskSizeMB = 2000
DefaultVMDriver = "virtualbox"
Expand Down

0 comments on commit 781101c

Please sign in to comment.