mirror of
https://github.com/siderolabs/talos.git
synced 2025-08-20 06:01:13 +02:00
This can serve as an example of providing the config via an ISO, and simplify local setups a bit. Signed-off-by: Andrew Rynhard <andrew@rynhard.io>
44 lines
1.1 KiB
Bash
Executable File
44 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
: ${TALOS_QEMU_ROOT:="/tmp"}
|
|
|
|
case $(uname -s) in
|
|
Linux*)
|
|
ACCEL=kvm
|
|
;;
|
|
|
|
Darwin*)
|
|
ACCEL=hvf
|
|
;;
|
|
*)
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
KERNEL="_out/vmlinuz-amd64"
|
|
INITRD="_out/initramfs-amd64.xz"
|
|
IMAGE="$TALOS_QEMU_ROOT/rootfs.qcow2"
|
|
ISO="$TALOS_QEMU_ROOT/iso/config.iso"
|
|
|
|
talosctl gen config -o ${TALOS_QEMU_ROOT}/iso qemu https://10.254.0.10
|
|
cp ${TALOS_QEMU_ROOT}/iso/init.yaml ${TALOS_QEMU_ROOT}/iso/config.yaml
|
|
mkisofs -joliet -rock -volid 'metal-iso' -output ${ISO} ${TALOS_QEMU_ROOT}/iso
|
|
qemu-img create -f qcow2 ${IMAGE} 8G
|
|
|
|
qemu-system-x86_64 \
|
|
-m 2048 \
|
|
-accel ${ACCEL} \
|
|
-cpu max \
|
|
-smp 2 \
|
|
-hda ${IMAGE} \
|
|
-netdev user,id=talos,ipv4=on,net=10.254.0.0/24,dhcpstart=10.254.0.10,hostfwd=tcp::50000-:50000,hostfwd=tcp::6443-:6443,hostname=master-1 \
|
|
-device virtio-net,netdev=talos \
|
|
-nographic \
|
|
-serial mon:stdio \
|
|
-cdrom ${ISO} \
|
|
-append "talos.platform=metal page_poison=1 slub_debug=P slab_nomerge pti=on printk.devkmsg=on earlyprintk=serial,tty0,keep console=tty0 talos.config=metal-iso" \
|
|
-kernel ${KERNEL} \
|
|
-initrd ${INITRD}
|