On darwin bootp uses non-standard MAC address format[1]:
"8e:1:99:9c:54:b1" instead of "8e:01:99:9c:54:b1". We fixed this by
trimming leading "0" in the string before looking up the IP address.
There are several issues with the current code:
- Fragile, will break if bootp changes the format (unlikely)
- Fixing the wrong place, the drivers should not care about the MAC
address format.
- The tests were confusing, showing that we can match standard MAC
addresses while the actual code could match only non-standard bootp
addresses.
- Logging wrong MAC address since we trimmed leading zeros before
logging
This change replace trimming leading zeros with parsing MAC address
strings and comparing the bytes. The test includes now both standard and
non-standard MAC addresses.
[1] https://openradar.appspot.com/FB15382970
* Remove all minikube dependencies in driver code
* removing all default config
* okay we need some defaults
* code comments
* hyperkit builds now
* sleep for an appropriate amount of time
* remove constant in favor of string
* try goproxy for travis
* try goproxy for travis
* try goproxy for travis
* let's not try goproxy for now
* let's try goproxy once again
* maybe use the correct url for the proxy
* fix go mod
Previously we were mixed between the two forms. This commit picks %v,
which is consistent with the Kubernetes code base. They both effectively
do the same thing in this case, though %v works with any object, and %s
only with string objects.
The purpose of these changes is to enhance Hyperkit support from the
minikube command line for better integration with enterprise networks
behind a VPN.
uuid: Provide VM UUID to restore MAC address (only supported with
Hyperkit driver).
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."
vsockPorts: List of guest VSock ports that should be exposed as sockets
on the host (Only supported on with hyperkit now).
Note:
tests pass but file:
`vendor/github.com/google/certificate-transparency/go/x509/root_darwin.go`
has to be edited to correct an issue - not committed since this is in
the vendor directory.
This allows us to use the hyperkit Driver struct in minikube, without
needing CGO_ENABLED=1. For the hyperkit driver binary, the
CGO_ENABLED=1 function will work.
Share most of the disk image setup between hyperkit and kvm drivers.
Move and remove a lot of shared configuration between all the in-tree
drivers: kvm, hyperkit, none.