Alternatively, you may cross-compile to/from different operating systems:
## Compiling minikube using Docker
To cross-compile to/from different operating systems:
```shell
MINIKUBE_BUILD_IN_DOCKER=y make cross
...
...
@@ -51,71 +50,7 @@ Start the cluster using your built minikube with:
## Building the ISO
The minikube ISO is booted by each hypervisor to provide a stable minimal Linux environment to start Kubernetes from. It is based on coreboot, uses systemd, and includes all necessary container runtimes and hypervisor guest drivers.
### Prerequisites
See the above requirements for building the minikube binary. Additionally, you will need:
To change which Linux userland components are included by the guest VM, use this to modify the buildroot configuration:
```shell
cd out/buildroot
make menuconfig
make
```
To save these configuration changes, execute:
```shell
make savedefconfig
```
The changes will be reflected in the `minikube-iso/configs/minikube_defconfig` file.
### Adding kernel modules
To make kernel configuration changes and save them, execute:
```shell
$ make linux-menuconfig
```
This will open the kernel configuration menu, and then save your changes to our
iso directory after they've been selected.
### Adding third-party packages
To add your own package to the minikube ISO, create a package directory under `iso/minikube-iso/package`. This directory will require at least 3 files:
`<package name>.mk` - A Makefile describing how to download the source code and build the program
`<package name>.hash` - Checksums to verify the downloaded source code
`Config.in` - buildroot configuration.
For a relatively simple example to start with, you may want to reference the `podman` package.
The minikube ISO is booted by each hypervisor to provide a stable minimal Linux environment to start Kubernetes from. It is based on coreboot, uses systemd, and includes all necessary container runtimes and hypervisor guest drivers.
## Prerequisites
* A recent Go distribution (>=1.12)
* If you are on Windows, you'll need Docker to be installed.
To change which Linux userland components are included by the guest VM, use this to modify the buildroot configuration:
```shell
cd out/buildroot
make menuconfig
make
```
To save these configuration changes, execute:
```shell
make savedefconfig
```
The changes will be reflected in the `minikube-iso/configs/minikube_defconfig` file.
### Adding kernel modules
To make kernel configuration changes and save them, execute:
```shell
$ make linux-menuconfig
```
This will open the kernel configuration menu, and then save your changes to our
iso directory after they've been selected.
### Adding third-party packages
To add your own package to the minikube ISO, create a package directory under `iso/minikube-iso/package`. This directory will require at least 3 files:
`<package name>.mk` - A Makefile describing how to download the source code and build the program
`<package name>.hash` - Checksums to verify the downloaded source code
`Config.in` - buildroot configuration.
For a relatively simple example to start with, you may want to reference the `podman` package.
## Continuous Integration Builds
We publish CI builds of minikube, built at every Pull Request. Builds are available at (substitute in the relevant PR number):