* Separate start args from args passed to every command. This is so
that we can call `minikube logs` and `minikube status` with the proper
flags (for the bootstrapper)
* Add a NewMinikubeRunner function to make getting a minikube runner
easier.
This PR introduces caching of localkube images. It makes a best effort
to cache the essential images localkube needs as minikube starts up.
Currently, the list of cached images is hardcoded, but future work might
entail
1. Cached images as a property of the cluster bootstrapper - to allow
localkube and kubeadm to cache their respective images.
2. Addons contain image information. Then, we can selectively cache and
preload only the addon images that are enabled.
Theres currently no good way to run the integration tests for the none
driver locally. Now that we've added the e2e target, we can depend on
that. Running the e2e test binary locally requires the testdata folder
to be in a different path, since it is relative to where the code is
being ran. I added a testdata-dir flag to the integration tests so we
can set it appropriately for when we want to run the e2e binary by
itself.
I also made the e2e test binary a PHONY target, so we rebuild it each
time. I had trouble collecting the dependencies on the integration
test packages
I find myself referencing this documentation every time I make kernel
configuration changes. I've added a simple rule to open the kernel
configuration menu, and then save your changes to the right directory.
https://www.gnu.org/software/make/manual/make.html#Secondary-Expansion
This allows us to have conditional targets for our tar command. I also
simplified the makefile rule for `out/minikube-%-amd64` by not caring
to force uppercase on the variables, since the official makefile docs
seem to not care about it.
The cross build container we use for darwin needs two extra environment
variables to invoke specific C and CPP compilers. These aren't needed
and won't work natively on darwin, so only pass them in for docker
builds.