talos.ipxe.j2 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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. isset ${talos_version} || set talos_version latest
  9. isset ${talos_mirror} || set talos_mirror {{ releases.talos.mirror }}
  10. isset ${talos_platform} || set talos_platform metal
  11. menu ${os} by Talos Systems
  12. menu ${os} install
  13. item --gap Talos:
  14. item talos_boot ${space} Begin install ${os} ${talos_version}
  15. item --gap Parameters:
  16. item talos_version ${space} ${os} version: ${talos_version}
  17. item talos_config_url ${space} Set userdata.yaml URL: ${talos_config_url}
  18. item talos_mirror ${space} Set mirror URL: ${talos_mirror}
  19. item talos_platform ${space} Set platform: ${talos_platform}
  20. choose --default ${menu} menu || goto talos_exit
  21. echo ${cls}
  22. goto ${menu} ||
  23. goto talos_exit
  24. :talos_version
  25. menu ${os} version
  26. item latest ${space} latest
  27. item custom ${space} Set custom version
  28. choose --default ${version} version || goto talos_exit
  29. echo ${cls}
  30. goto talos_version_${version} ||
  31. goto talos_exit
  32. :talos_version_latest
  33. set talos_version latest
  34. set talos_base_url ${talos_mirror}/latest/download
  35. goto talos
  36. :talos_version_custom
  37. clear talos_version
  38. echo -n Please set Talos version manually (in format vX.Y.Z): && read talos_version
  39. set talos_base_url ${talos_mirror}/download/${talos_version}
  40. clear menu
  41. goto talos
  42. :talos_mirror
  43. echo -n Set mirror URL: && read talos_mirror
  44. clear menu
  45. goto talos
  46. :talos_config_url
  47. echo -n Set userdata.yaml URL: && read talos_config_url
  48. clear menu
  49. goto talos
  50. :talos_platform
  51. menu ${os} platforms
  52. {% for item in releases.talos.platforms %}
  53. item {{ item.key }} ${space} {{ item.name }}
  54. {% endfor %}
  55. choose --default ${talos_platform} talos_platform
  56. goto talos
  57. :talos_boot
  58. isset ${talos_base_url} || set talos_base_url ${talos_mirror}/latest/download
  59. isset ${talos_config_url} && set talos_config talos.config=${talos_config_url} ||
  60. set boot_params page_poison=1 printk.devkmsg=on slab_nomerge slub_debug=P pti=on talos.platform=${talos_platform} ${talos_config} {{ kernel_params }}
  61. imgfree
  62. kernel ${talos_base_url}/vmlinuz ${boot_params}
  63. initrd ${talos_base_url}/initramfs.xz
  64. echo
  65. echo Booting with the following kernel args:
  66. echo ${boot_params}
  67. echo
  68. echo MD5sums:
  69. md5sum vmlinuz initramfs.xz
  70. boot
  71. :talos_exit
  72. clear menu
  73. exit 0