Skip to content

Commit 609e52d

Browse files
committed
kvm2 driver: add dedicated network & static ip
1 parent 02bd568 commit 609e52d

File tree

4 files changed

+26
-9
lines changed

4 files changed

+26
-9
lines changed

cmd/minikube/cmd/start_flags.go

+17-2
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ const (
6262
hypervUseExternalSwitch = "hyperv-use-external-switch"
6363
hypervExternalAdapter = "hyperv-external-adapter"
6464
kvmNetwork = "kvm-network"
65+
kvmPrivateNetwork = "kvm-private-network"
6566
kvmQemuURI = "kvm-qemu-uri"
6667
kvmGPU = "kvm-gpu"
6768
kvmHidden = "kvm-hidden"
@@ -191,7 +192,8 @@ func initDriverFlags() {
191192
startCmd.Flags().Bool("vm", false, "Filter to use only VM Drivers")
192193

193194
// kvm2
194-
startCmd.Flags().String(kvmNetwork, "default", "The KVM network name. (kvm2 driver only)")
195+
startCmd.Flags().String(kvmNetwork, "default", "The KVM default network name. (kvm2 driver only)")
196+
startCmd.Flags().String(kvmPrivateNetwork, "", "The KVM private network name. (kvm2 driver only) (default: 'mk-<cluster_name>')")
195197
startCmd.Flags().String(kvmQemuURI, "qemu:///system", "The KVM QEMU connection URI. (kvm2 driver only)")
196198
startCmd.Flags().Bool(kvmGPU, false, "Enable experimental NVIDIA GPU support in minikube")
197199
startCmd.Flags().Bool(kvmHidden, false, "Hide the hypervisor signature from the guest in minikube (kvm2 driver only)")
@@ -342,6 +344,7 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
342344
HypervUseExternalSwitch: viper.GetBool(hypervUseExternalSwitch),
343345
HypervExternalAdapter: viper.GetString(hypervExternalAdapter),
344346
KVMNetwork: viper.GetString(kvmNetwork),
347+
KVMPrivateNetwork: viper.GetString(kvmPrivateNetwork),
345348
KVMQemuURI: viper.GetString(kvmQemuURI),
346349
KVMGPU: viper.GetBool(kvmGPU),
347350
KVMHidden: viper.GetBool(kvmHidden),
@@ -380,6 +383,10 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
380383
},
381384
MultiNodeRequested: viper.GetInt(nodes) > 1,
382385
}
386+
// if KVMPrivateNetwork is not user-defined, defaults to "mk-<cluster_name>"
387+
if cc.KVMPrivateNetwork == "" {
388+
cc.KVMPrivateNetwork = fmt.Sprintf("mk-%s", cc.KubernetesConfig.ClusterName)
389+
}
383390
cc.VerifyComponents = interpretWaitFlag(*cmd)
384391
if viper.GetBool(createMount) && driver.IsKIC(drvName) {
385392
cc.ContainerVolumeMounts = []string{viper.GetString(mountString)}
@@ -554,7 +561,15 @@ func updateExistingConfigFromFlags(cmd *cobra.Command, existing *config.ClusterC
554561
}
555562

556563
if cmd.Flags().Changed(kvmNetwork) {
557-
cc.KVMNetwork = viper.GetString(kvmNetwork)
564+
if cc.KVMNetwork != viper.GetString(kvmNetwork) {
565+
out.WarningT("You cannot change the KVM Default Network name for an exiting minikube cluster. Please first delete the cluster.")
566+
}
567+
}
568+
569+
if cmd.Flags().Changed(kvmPrivateNetwork) {
570+
if cc.KVMPrivateNetwork != viper.GetString(kvmPrivateNetwork) {
571+
out.WarningT("You cannot change the KVM Private Network name for an exiting minikube cluster. Please first delete the cluster.")
572+
}
558573
}
559574

560575
if cmd.Flags().Changed(kvmQemuURI) {

pkg/minikube/config/types.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,12 @@ type ClusterConfig struct {
5252
HypervVirtualSwitch string
5353
HypervUseExternalSwitch bool
5454
HypervExternalAdapter string
55-
KVMNetwork string // Only used by the KVM driver
56-
KVMQemuURI string // Only used by kvm2
57-
KVMGPU bool // Only used by kvm2
58-
KVMHidden bool // Only used by kvm2
59-
KVMNUMACount int // Only used by kvm2
55+
KVMNetwork string // Only used by the KVM2 driver
56+
KVMPrivateNetwork string // Only used by the KVM2 driver
57+
KVMQemuURI string // Only used by the KVM2 driver
58+
KVMGPU bool // Only used by the KVM2 driver
59+
KVMHidden bool // Only used by the KVM2 driver
60+
KVMNUMACount int // Only used by the KVM2 driver
6061
DockerOpt []string // Each entry is formatted as KEY=VALUE.
6162
DisableDriverMounts bool // Only used by virtualbox
6263
NFSShare []string

pkg/minikube/registry/drvs/kvm2/kvm2.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ func configure(cc config.ClusterConfig, n config.Node) (interface{}, error) {
8383
Memory: cc.Memory,
8484
CPU: cc.CPUs,
8585
Network: cc.KVMNetwork,
86-
PrivateNetwork: "minikube-net",
86+
PrivateNetwork: cc.KVMPrivateNetwork,
8787
Boot2DockerURL: download.LocalISOResource(cc.MinikubeISO),
8888
DiskSize: cc.DiskSize,
8989
DiskPath: filepath.Join(localpath.MiniPath(), "machines", name, fmt.Sprintf("%s.rawdisk", name)),

site/content/en/docs/commands/start.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@ minikube start [flags]
6969
--kubernetes-version string The Kubernetes version that the minikube VM will use (ex: v1.2.3, 'stable' for v1.20.2, 'latest' for v1.20.5-rc.0). Defaults to 'stable'.
7070
--kvm-gpu Enable experimental NVIDIA GPU support in minikube
7171
--kvm-hidden Hide the hypervisor signature from the guest in minikube (kvm2 driver only)
72-
--kvm-network string The KVM network name. (kvm2 driver only) (default "default")
72+
--kvm-network string The KVM default network name. (kvm2 driver only) (default "default")
7373
--kvm-numa-count int Simulate numa node count in minikube, supported numa node count range is 1-8 (kvm2 driver only) (default 1)
74+
--kvm-private-network string The KVM private network name. (kvm2 driver only) (default: 'mk-<cluster_name>')
7475
--kvm-qemu-uri string The KVM QEMU connection URI. (kvm2 driver only) (default "qemu:///system")
7576
--listen-address string IP Address to use to expose ports (docker and podman driver only)
7677
--memory string Amount of RAM to allocate to Kubernetes (format: <number>[<unit>], where unit = b, k, m or g).

0 commit comments

Comments
 (0)