Skip to content

Commit

Permalink
Add explicit kvm2 flag for hidden KVM signature
Browse files Browse the repository at this point in the history
  • Loading branch information
afbjorklund committed Mar 24, 2019
1 parent 702d471 commit 6491e35
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 0 deletions.
6 changes: 6 additions & 0 deletions cmd/minikube/cmd/start.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ const (
vpnkitSock = "hyperkit-vpnkit-sock"
vsockPorts = "hyperkit-vsock-ports"
gpu = "gpu"
hidden = "hidden"
embedCerts = "embed-certs"
noVTXCheck = "no-vtx-check"
)
Expand Down Expand Up @@ -143,6 +144,7 @@ func init() {
startCmd.Flags().String(vpnkitSock, "", "Location of the VPNKit socket used for networking. If empty, disables Hyperkit VPNKitSock, if 'auto' uses Docker for Mac VPNKit connection, otherwise uses the specified VSock.")
startCmd.Flags().StringSlice(vsockPorts, []string{}, "List of guest VSock ports that should be exposed as sockets on the host (Only supported on with hyperkit now).")
startCmd.Flags().Bool(gpu, false, "Enable experimental NVIDIA GPU support in minikube (works only with kvm2 driver on Linux)")
startCmd.Flags().Bool(hidden, false, "Hide the hypervisor signature from the guest in minikube (works only with kvm2 driver on Linux)")
startCmd.Flags().Bool(noVTXCheck, false, "Disable checking for the availability of hardware virtualization before the vm is started (virtualbox)")
viper.BindPFlags(startCmd.Flags())
RootCmd.AddCommand(startCmd)
Expand Down Expand Up @@ -238,6 +240,9 @@ func validateConfig() {
if viper.GetBool(gpu) && viper.GetString(vmDriver) != "kvm2" {
exit.Usage("Sorry, the --gpu feature is currently only supported with --vm-driver=kvm2")
}
if viper.GetBool(hidden) && viper.GetString(vmDriver) != "kvm2" {
exit.Usage("Sorry, the --hidden feature is currently only supported with --vm-driver=kvm2")
}
}

// beginCacheImages caches Docker images in the background
Expand Down Expand Up @@ -303,6 +308,7 @@ func generateConfig(cmd *cobra.Command, k8sVersion string) (cfg.Config, error) {
DisableDriverMounts: viper.GetBool(disableDriverMounts),
UUID: viper.GetString(uuid),
GPU: viper.GetBool(gpu),
Hidden: viper.GetBool(hidden),
NoVTXCheck: viper.GetBool(noVTXCheck),
},
KubernetesConfig: cfg.KubernetesConfig{
Expand Down
2 changes: 2 additions & 0 deletions pkg/drivers/kvm/domain.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,11 @@ const domainTmpl = `
<acpi/>
<apic/>
<pae/>
{{if .Hidden}}
<kvm>
<hidden state='on'/>
</kvm>
{{end}}
</features>
<cpu mode='host-passthrough'/>
<os>
Expand Down
3 changes: 3 additions & 0 deletions pkg/drivers/kvm/kvm.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ type Driver struct {
// Whether to passthrough GPU devices from the host to the VM.
GPU bool

// Whether to hide the KVM hypervisor signature from the guest
Hidden bool

// XML that needs to be added to passthrough GPU devices.
DevicesXML string
}
Expand Down
1 change: 1 addition & 0 deletions pkg/minikube/config/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ type MachineConfig struct {
NFSSharesRoot string
UUID string // Only used by hyperkit to restore the mac address
GPU bool // Only used by kvm2
Hidden bool // Only used by kvm2
NoVTXCheck bool // Only used by virtualbox
}

Expand Down
2 changes: 2 additions & 0 deletions pkg/minikube/drivers/kvm2/driver.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ type kvmDriver struct {
Boot2DockerURL string
DiskPath string
GPU bool
Hidden bool
}

func createKVM2Host(config cfg.MachineConfig) interface{} {
Expand All @@ -68,5 +69,6 @@ func createKVM2Host(config cfg.MachineConfig) interface{} {
DiskPath: filepath.Join(constants.GetMinipath(), "machines", cfg.GetMachineName(), fmt.Sprintf("%s.rawdisk", cfg.GetMachineName())),
ISO: filepath.Join(constants.GetMinipath(), "machines", cfg.GetMachineName(), "boot2docker.iso"),
GPU: config.GPU,
Hidden: config.Hidden,
}
}

0 comments on commit 6491e35

Please sign in to comment.