Use ISOs to boot in the Kubernetes example

Because Kubernetes is 1.5GB, ISO makes sense as the files do not
take up memory, so you can boot a 1GB machine rather than a 4GB one.

Signed-off-by: Justin Cormack <justin.cormack@docker.com>
This commit is contained in:
Justin Cormack 2017-08-09 13:15:42 +01:00
parent 431c8ebdd7
commit 56fe83292b
2 changed files with 19 additions and 9 deletions

View File

@ -10,15 +10,15 @@ push-container-images:
$(MAKE) -C kubernetes push
$(MAKE) -C image-cache push
build-vm-images: kube-master-initrd.img kube-node-initrd.img
build-vm-images: kube-master.iso kube-node.iso
kube-master-initrd.img: kube-master.yml
moby build -name kube-master kube-master.yml
kube-master.iso: kube-master.yml
moby build -name kube-master -output iso-efi -output iso-bios kube-master.yml
kube-node-initrd.img: kube-node.yml
moby build -name kube-node kube-node.yml
kube-node.iso: kube-node.yml
moby build -name kube-node -output iso-efi -output iso-bios kube-node.yml
clean:
rm -f -r \
kube-*-kernel kube-*-cmdline kube-*-state kube-*-initrd.img
kube-*-kernel kube-*-cmdline kube-*-state kube-*-initrd.img *.iso
$(MAKE) -C image-cache clean

View File

@ -1,10 +1,20 @@
#!/bin/bash -eu
#!/bin/sh
set -e
: ${KUBE_PORT_BASE:=2222}
: ${KUBE_VCPUS:=2}
: ${KUBE_MEM:=4096}
: ${KUBE_MEM:=1024}
: ${KUBE_DISK:=4G}
: ${KUBE_NETWORKING:=default}
: ${KUBE_RUN_ARGS:=}
: ${KUBE_EFI:=}
[ "$(uname -s)" = "Darwin" ] && KUBE_EFI=1
suffix=".iso"
[ -n "${KUBE_EFI}" ] && suffix="-efi.iso" && uefi="--uefi"
if [ $# -eq 0 ] ; then
img="kube-master"
data=""
@ -36,4 +46,4 @@ else
fi
set -x
rm -rf "${state}"
linuxkit run ${KUBE_RUN_ARGS} -networking ${KUBE_NETWORKING} -cpus ${KUBE_VCPUS} -mem ${KUBE_MEM} -state "${state}" -disk size=${KUBE_DISK} -data "${data}" "${img}"
linuxkit run ${KUBE_RUN_ARGS} -networking ${KUBE_NETWORKING} -cpus ${KUBE_VCPUS} -mem ${KUBE_MEM} -state "${state}" -disk size=${KUBE_DISK} -data "${data}" ${uefi} "${img}${suffix}"