minikube/docs/contributors/minikube_iso.md

80 lines
1.7 KiB
Markdown

# minikube ISO image
This includes the configuration for an alternative bootable ISO image meant to be used in conjunction with minikube.
It includes:
- systemd as the init system
- docker
- CRI-O
## Hacking
### Requirements
* Linux
```shell
sudo apt-get install build-essential gnupg2 p7zip-full git wget cpio python \
unzip bc gcc-multilib automake libtool locales
```
Either import your private key or generate a sign-only key using `gpg2 --gen-key`.
Also be sure to have an UTF-8 locale set up in order to build the ISO.
### Build instructions
```shell
$ git clone https://github.com/kubernetes/minikube
$ cd minikube
$ make buildroot-image
$ make out/minikube.iso
```
The build will occur inside a docker container. If you want to do this on
baremetal, replace `make out/minikube.iso` with `IN_DOCKER=1 make out/minikube.iso`.
The bootable ISO image will be available in `out/minikube.iso`.
### Testing local minikube-iso changes
```shell
$ ./out/minikube start \
--iso-url=file://$GOPATH/src/k8s.io/minikube/out/minikube.iso
```
### Buildroot configuration
To change the buildroot configuration, execute:
```shell
$ cd out/buildroot
$ make menuconfig
$ make
```
To save any buildroot configuration changes made with `make menuconfig`, execute:
```shell
$ cd out/buildroot
$ make savedefconfig
```
The changes will be reflected in the `minikube-iso/configs/minikube_defconfig` file.
```shell
$ git status
## master
M deploy/iso/minikube-iso/configs/minikube_defconfig
```
### Saving buildroot/kernel configuration changes
To make any 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.