kairos.ipxe.j2 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #!ipxe
  2. # Kairos
  3. # https://github.com/kairos-io/kairos/releases
  4. goto ${menu} ||
  5. :kairos
  6. #set os {{ releases.kairos.name }}
  7. set os Kairos
  8. set os_arch ${arch}
  9. iseq ${os_arch} x86_64 && set os_arch amd64 ||
  10. isset ${kairos_version} || set kairos_version {{ releases.kairos.version }}
  11. # isset ${kairos_mirror} || set kairos_mirror {{ releases.kairos.mirror }}
  12. isset ${kairos_mirror} || set kairos_mirror https://github.com/kairos-io/kairos/releases
  13. isset ${kairos_platform} || set kairos_platform {{ releases.kairos.platforms[0].key }}
  14. isset ${kairos_mode} || set kairos_mode install-mode-interactive
  15. isset ${kairos_flavor} || set kairos_flavor core
  16. menu ${os}
  17. item --gap Kairos:
  18. item kairos_boot ${space} Begin install ${os} ${kairos_version}
  19. item --gap Parameters:
  20. item kairos_version ${space} ${os} version: ${kairos_version}
  21. item kairos_mode ${space} Set install mode: ${kairos_mode}
  22. item kairos_config_url ${space} Set config file URL: ${kairos_config_url}
  23. item kairos_mirror ${space} Set mirror URL: ${kairos_mirror}
  24. item kairos_platform ${space} Set platform: ${kairos_platform}
  25. item kairos_flavor ${space} Set flavor: ${kairos_flavor}
  26. choose --default ${menu} menu || goto kairos_exit
  27. echo ${cls}
  28. goto ${menu} ||
  29. goto kairos_exit
  30. :kairos_version
  31. menu ${os} version
  32. item ${kairos_version} ${space} ${kairos_version}
  33. item custom ${space} Set custom version
  34. choose --default ${version} version || goto kairos_exit
  35. echo ${cls}
  36. goto kairos_version_${version} ||
  37. goto kairos_exit
  38. :kairos_mode
  39. menu ${os} Modes
  40. item --gap Set Boot Mode:
  41. item install-mode-interactive ${space} Interactive Install Mode
  42. item install-mode ${space} Regular Install Mode
  43. item kairos.remote_recovery_mode ${space} Remote Recovery Mode
  44. choose --default ${kairos_mode} kairos_mode || clear menu
  45. goto kairos
  46. :kairos_platform
  47. menu ${os} Platforms
  48. item --gap Set Platform:
  49. {% for item in releases.kairos.platforms %}
  50. item {{ item.key }} ${space} {{ item.name }}
  51. {% endfor %}
  52. choose --default ${kairos_platform} kairos_platform || clear menu
  53. goto kairos
  54. :kairos_flavor
  55. menu ${os} Flavor
  56. item --gap Set Flavor:
  57. {% for item in releases.kairos.flavors %}
  58. item {{ item.key }} ${space} {{ item.name }}
  59. {% endfor %}
  60. choose --default ${kairos_flavor} kairos_flavor || clear menu
  61. goto kairos
  62. :kairos_version_custom
  63. clear kairos_version
  64. echo -n Please set Kairos version manually (in format vX.Y.Z): && read kairos_version
  65. set kairos_base_url ${kairos_mirror}/download/${kairos_version}
  66. clear menu
  67. goto kairos
  68. :kairos_mirror
  69. echo -n Set mirror URL: && read kairos_mirror
  70. clear menu
  71. goto kairos
  72. :kairos_config_url
  73. echo -n Set config file URL: && read kairos_config_url
  74. clear menu
  75. goto kairos
  76. :kairos_boot
  77. imgfree
  78. iseq ${kairos_flavor} core && set kairos_flavor_family core || set kairos_flavor_family standard
  79. iseq ${kairos_flavor} core && set release_prefix ${kairos_mirror}/download/${kairos_version}/kairos-${kairos_platform}-${kairos_flavor_family}-${os_arch}-generic-${kairos_version} ||
  80. iseq ${kairos_flavor} core || set release_prefix ${kairos_mirror}/download/${kairos_version}/kairos-${kairos_platform}-${kairos_flavor_family}-${os_arch}-generic-${kairos_version}-${kairos_flavor}
  81. set kairos_kernel_args root=live:${release_prefix}.squashfs rd.neednet=1 ip=dhcp rd.cos.disable netboot ${kairos_mode} config_url=${kairos_config_url} selinux=0 console=tty1 console=ttyS0 ${cmdline} initrd=initrd.magic
  82. kernel ${release_prefix}-kernel root=live:${release_prefix}.squashfs ${kairos_kernel_args}
  83. initrd ${release_prefix}-initrd
  84. echo
  85. echo MD5sums:
  86. md5sum kairos-${kairos_platform}-${kairos_flavor_family}-${os_arch}-generic-${kairos_version}-${kairos_flavor}-kernel kairos-${kairos_platform}-${kairos_flavor_family}-${os_arch}-generic-${kairos_version}-${kairos_flavor}-initrd
  87. boot
  88. :kairos_exit
  89. clear menu
  90. exit 0