diff --git a/tools-image/Dockerfile b/tools-image/Dockerfile index 77671f9..37d4e64 100644 --- a/tools-image/Dockerfile +++ b/tools-image/Dockerfile @@ -86,6 +86,7 @@ COPY ./arm /arm COPY ./gce.sh /gce.sh COPY ./raw-images.sh /raw-images.sh COPY ./azure.sh /azure.sh +COPY ./netboot.sh /netboot.sh COPY defaults.yaml /defaults.yaml diff --git a/tools-image/netboot.sh b/tools-image/netboot.sh new file mode 100755 index 0000000..4ef8163 --- /dev/null +++ b/tools-image/netboot.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# Extracts squashfs, kernel, initrd and generates a ipxe template script + +ISO=$1 +OUTPUT_NAME=$2 +VERSION=$3 + +isoinfo -x /rootfs.squashfs -R -i $ISO > $OUTPUT_NAME.squashfs +isoinfo -x /boot/kernel -R -i $ISO > $OUTPUT_NAME-kernel +isoinfo -x /boot/initrd -R -i $ISO > $OUTPUT_NAME-initrd + +RELEASE_URL=${RELEASE_URL:-https://github.com/kairos-io/kairos/releases/download} + +cat > $OUTPUT_NAME.ipxe << EOF +#!ipxe +set url ${RELEASE_URL}/ +set kernel $OUTPUT_NAME-kernel +set initrd $OUTPUT_NAME-initrd +set rootfs $OUTPUT_NAME.squashfs +# set config https://example.com/machine-config +# set cmdline extra.values=1 +kernel \${url}/\${kernel} initrd=\${initrd} ip=dhcp rd.cos.disable root=live:\${url}/\${rootfs} netboot nodepair.enable config_url=\${config} console=tty1 console=ttyS0 \${cmdline} +initrd \${url}/\${initrd} +boot +EOF \ No newline at end of file