From 56fe83292b7499edfeb7d1fa22bd8dc4417f5a73 Mon Sep 17 00:00:00 2001 From: Justin Cormack Date: Wed, 9 Aug 2017 13:15:42 +0100 Subject: [PATCH] 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 --- projects/kubernetes/Makefile | 12 ++++++------ projects/kubernetes/boot.sh | 16 +++++++++++++--- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/projects/kubernetes/Makefile b/projects/kubernetes/Makefile index 74725f78b..189e7ca38 100644 --- a/projects/kubernetes/Makefile +++ b/projects/kubernetes/Makefile @@ -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 diff --git a/projects/kubernetes/boot.sh b/projects/kubernetes/boot.sh index fd595b69a..97f15aa89 100755 --- a/projects/kubernetes/boot.sh +++ b/projects/kubernetes/boot.sh @@ -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}"