k8s-kvm/start
2017-06-05 20:18:03 -07:00

49 lines
1.6 KiB
Bash
Executable file

#!/usr/bin/env bash
set -eox pipefail
VM_NAME="${VM_NAME:-coreos-kvm}"
VM_MEMORY="${VM_MEMORY:-4G}"
VM_DISK_SIZE="${VM_DISK_SIZE:-12G}"
# hostfwd=[tcp|udp]:[hostaddr]:hostport-[guestaddr]:guestport
HOSTFWD="${HOSTFWD:-hostfwd=tcp::2222-:22}"
if [ -n "${CLOUD_CONFIG_FILE}" ]; then
echo "Setting cloud config file: ${CLOUD_CONFIG_FILE}"
mkdir -p "${PWD}/openstack/latest"
cp "${CLOUD_CONFIG_FILE}" "${PWD}/openstack/latest/user_data"
cat "${PWD}/openstack/latest/user_data"
set -- \
-fsdev local,id=conf,security_model=none,readonly,path="${PWD}" \
-device virtio-9p-pci,fsdev=conf,mount_tag=config-2 "$@"
fi
if [ -n "${IGNITION_CONFIG_FILE}" ]; then
echo "Setting ignition config file: ${IGNITION_CONFIG_FILE}"
cat "${IGNITION_CONFIG_FILE}"
set -- -fw_cfg name=opt/com.coreos/config,file="${IGNITION_CONFIG_FILE}" "$@"
fi
if [ -n "$CONFIG_FILE" ]; then
echo "Transpiling config file: ${CONFIG_FILE}"
cat "${CONFIG_FILE}"
./ct -in-file $CONFIG_FILE -out-file ${PWD}/ignition.json
echo "Setting ignition config file ${PWD}/ignition.json"
cat "${PWD}/ignition.json"
set -- -fw_cfg name=opt/com.coreos/config,file="${PWD}/ignition.json" "$@"
fi
qemu-img resize ./coreos_production_qemu_image.img "${VM_DISK_SIZE}"
# https://alpha.release.core-os.net/amd64-usr/current/coreos_production_qemu.sh
qemu-system-x86_64 \
-name "${VM_NAME}" \
-enable-kvm \
-cpu host \
-m "${VM_MEMORY}" \
-net nic,model=virtio \
-net user,"${HOSTFWD}",hostname="${VM_NAME}" \
-drive if=virtio,file=./coreos_production_qemu_image.img \
-nographic \
-machine accel=kvm \
-smp 2 \
"$@"