#!/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 \ "$@"