talos.ipxe.j2 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!ipxe
  2. # Talos
  3. # https://github.com/talos-systems/talos/releases
  4. # https://www.talos.dev/docs/v0.5/en/guides/metal/matchbox
  5. goto ${menu} ||
  6. :talos
  7. set os {{ releases.talos.name }}
  8. set console_arg console=tty0 console=ttyS0
  9. iseq ${ipxe_cloud_config} packet && set console_arg console=ttyS1,115200n8 ||
  10. isset ${talos_version} || set talos_version latest
  11. isset ${talos_mirror} || set talos_mirror {{ releases.talos.mirror }}
  12. isset ${talos_platform} || set talos_platform metal
  13. menu ${os} by Talos Systems
  14. menu ${os} install
  15. item --gap Talos:
  16. item talos_boot ${space} Begin install ${os} ${talos_version}
  17. item --gap Parameters:
  18. item talos_version ${space} ${os} version: ${talos_version}
  19. item talos_config_url ${space} Set userdata.yaml URL: ${talos_config_url}
  20. item talos_mirror ${space} Set mirror URL: ${talos_mirror}
  21. item talos_platform ${space} Set platform: ${talos_platform}
  22. choose --default ${menu} menu || goto talos_exit
  23. echo ${cls}
  24. goto ${menu} ||
  25. goto talos_exit
  26. :talos_version
  27. menu ${os} version
  28. item latest ${space} latest
  29. item custom ${space} Set custom version
  30. choose --default ${version} version || goto talos_exit
  31. echo ${cls}
  32. goto talos_version_${version} ||
  33. goto talos_exit
  34. :talos_version_latest
  35. set talos_version latest
  36. set talos_base_url ${talos_mirror}/latest/download
  37. goto talos
  38. :talos_version_custom
  39. clear talos_version
  40. echo -n Please set Talos version manually (in format vX.Y.Z): && read talos_version
  41. set talos_base_url ${talos_mirror}/download/${talos_version}
  42. clear menu
  43. goto talos
  44. :talos_mirror
  45. echo -n Set mirror URL: && read talos_mirror
  46. clear menu
  47. goto talos
  48. :talos_config_url
  49. echo -n Set userdata.yaml URL: && read talos_config_url
  50. clear menu
  51. goto talos
  52. :talos_platform
  53. menu ${os} platforms
  54. {% for item in releases.talos.platforms %}
  55. item {{ item.key }} ${space} {{ item.name }}
  56. {% endfor %}
  57. choose --default ${talos_platform} talos_platform
  58. goto talos
  59. :talos_boot
  60. isset ${talos_base_url} || set talos_base_url ${talos_mirror}/latest/download
  61. isset ${talos_config_url} && set talos_config talos.config=${talos_config_url} ||
  62. set boot_params initrd=initramfs.xz page_poison=1 printk.devkmsg=on slab_nomerge slub_debug=P pti=on talos.platform=${talos_platform} ${console_arg} ${talos_config}
  63. kernel ${talos_base_url}/vmlinuz ${boot_params}
  64. initrd ${talos_base_url}/initramfs.xz
  65. echo
  66. echo Booting with the following kernel args:
  67. echo ${boot_params}
  68. echo
  69. echo MD5sums:
  70. md5sum vmlinuz initramfs.xz
  71. boot
  72. :talos_exit
  73. clear menu
  74. exit 0