vmnet: Support networks managed by vmnet-broker#22561
vmnet: Support networks managed by vmnet-broker#22561nirs wants to merge 5 commits intokubernetes:masterfrom
Conversation
|
Skipping CI for Draft Pull Request. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: nirs The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
4727b56 to
9196423
Compare
Move the duplicated generateMACAddress() function from vfkit and qemu2 packages to pkg/drivers/common as an exported function. This reduces code duplication and ensures consistent MAC address generation across all drivers.
Extend interfaceInfo struct to parse additional fields from vmnet-helper JSON response and log them for easier debugging. The address range and subnet mask help diagnose network configuration issues.
Add functions to detect vmnet-broker installation and vmnet-helper --network option support: - brokerInstalled(): checks if vmnet-broker launchd plist exists - helperSupportsNetwork(): parses --help output for --network option - SupportsNetwork field in helperInfo for caching detection result This prepares for using vmnet-broker managed networks when available.
Add NetworkName field to Helper struct to specify the vmnet network. The format is "vmnet:name" where name is passed to vmnet-helper --network option when using broker mode. Update drivers: - vfkit: support both "vmnet-shared" (legacy) and "vmnet:<name>" format, normalize legacy format to "vmnet:shared" - krunkit: always use vmnet with default "vmnet:shared" Empty NetworkName is treated as "vmnet:shared" for backward compatibility with machines created by older minikube versions.
Add support for vmnet-broker managed networks. When vmnet-broker is installed and vmnet-helper supports the --network option, minikube uses network mode instead of interface-id mode. Interface-id mode (existing): - Driver generates UUID, passes to vmnet-helper --interface-id - vmnet generates deterministic MAC from UUID - MAC returned in JSON response, stored in driver Network mode (new): - Driver generates random MAC address - vmnet-helper uses --network option with broker - Broker manages shared network across VMs - VMs can communicate with each other The mode is selected automatically based on: - vmnet.GeneratesMACAddress(): returns true when vmnet generates MAC (interface-id mode), false when driver should generate (network mode) - Drivers call this in configure() to decide UUID vs MAC generation - Fallback to interface-id mode if requirements not met
9196423 to
bf3d2a9
Compare
|
The Kubernetes project currently lacks enough contributors to adequately respond to all PRs. This bot triages PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
|
/remove-lifecycle stale |
|
/lifcycle-frozen |
Summary
This PR adds support for using vmnet-broker managed networks with vmnet-helper. When vmnet-broker is installed and vmnet-helper supports the
--networkoption, minikube will use broker-managed networks instead of legacy network (192.168.105.1/24).Benefits
Requirements
To use this feature:
macOS 26 or later
vmnet-helper v0.10.0+ with
--networkoption support.vmnet-broker installed as a launchd daemon
If either requirement is not met, minikube falls back to the current interface-id mode.
Changes
Testing
Testing vfkit
Testing krunkit
VM-to-VM communication
Restart cluster flow
TODO