pixie-lab 0.4.2__tar.gz → 0.4.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.github/workflows/cicd.yaml +41 -279
  2. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/CHANGELOG.md +17 -0
  3. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/Makefile +18 -59
  4. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/PKG-INFO +1 -1
  5. pixie_lab-0.4.3/cijoe/configs/test-pxe-live-env-modes.toml +105 -0
  6. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pixie_wheel_stage.py +0 -1
  7. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pxe_run_chain_test.py +239 -132
  8. pixie_lab-0.4.3/cijoe/tasks/test-pxe-live-env-modes.yaml +35 -0
  9. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/README.md +13 -43
  10. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/auto/config +3 -18
  11. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pyproject.toml +1 -1
  12. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/_kinds.py +0 -20
  13. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pxe/_renderer.py +31 -64
  14. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_settings_store.py +8 -32
  15. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/dashboard.html +19 -41
  16. pixie_lab-0.4.3/src/pixie/web/_templates/live_env.html +122 -0
  17. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/main.py +28 -218
  18. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_pxe_plan_json.py +47 -140
  19. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_settings.py +7 -20
  20. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/uv.lock +1 -1
  21. pixie_lab-0.4.2/cijoe/configs/netboot-pc.toml +0 -31
  22. pixie_lab-0.4.2/cijoe/configs/test-pxe-flash-always.toml +0 -74
  23. pixie_lab-0.4.2/cijoe/configs/test-pxe-flash.toml +0 -99
  24. pixie_lab-0.4.2/cijoe/configs/test-pxe-inventory.toml +0 -95
  25. pixie_lab-0.4.2/cijoe/configs/test-pxe-tui.toml +0 -74
  26. pixie_lab-0.4.2/cijoe/scripts/live_build.py +0 -194
  27. pixie_lab-0.4.2/cijoe/scripts/pxe_flash_stage.py +0 -93
  28. pixie_lab-0.4.2/cijoe/scripts/pxe_inventory_stage.py +0 -111
  29. pixie_lab-0.4.2/cijoe/tasks/netboot-pc.yaml +0 -39
  30. pixie_lab-0.4.2/cijoe/tasks/test-pxe-flash-always.yaml +0 -30
  31. pixie_lab-0.4.2/cijoe/tasks/test-pxe-flash.yaml +0 -61
  32. pixie_lab-0.4.2/cijoe/tasks/test-pxe-inventory.yaml +0 -51
  33. pixie_lab-0.4.2/cijoe/tasks/test-pxe-tui.yaml +0 -47
  34. pixie_lab-0.4.2/src/pixie/catalog/_live_env.py +0 -128
  35. pixie_lab-0.4.2/src/pixie/web/_templates/ipxe/pixie-live-env.j2 +0 -55
  36. pixie_lab-0.4.2/src/pixie/web/_templates/live_env.html +0 -205
  37. pixie_lab-0.4.2/tests/test_live_env_fetch.py +0 -203
  38. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.dockerignore +0 -0
  39. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.github/workflows/docs.yml +0 -0
  40. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/.gitignore +0 -0
  41. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/Containerfile +0 -0
  42. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/LICENSE +0 -0
  43. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/PLAN.md +0 -0
  44. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/README.md +0 -0
  45. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/live-env-image.toml +0 -0
  46. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/test-pxe-nbdboot.toml +0 -0
  47. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/test-pxe.toml +0 -0
  48. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/test-usb-ventoy.toml +0 -0
  49. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/configs/usbboot-pc.toml +0 -0
  50. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/live_env_image.py +0 -0
  51. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/live_env_transform.sh +0 -0
  52. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pixie_ipxe_build.py +0 -0
  53. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/pxe_prepare.py +0 -0
  54. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_iso_build.py +0 -0
  55. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_iso_verify.py +0 -0
  56. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_ventoy_guest_start.py +0 -0
  57. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/scripts/usb_ventoy_stage.py +0 -0
  58. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/live-env-image.yaml +0 -0
  59. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/test-pxe-nbdboot.yaml +0 -0
  60. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/test-pxe.yaml +0 -0
  61. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/test-usb-ventoy.yaml +0 -0
  62. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/cijoe/tasks/usbboot-pc.yaml +0 -0
  63. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/audit.md +0 -0
  64. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/boot-modes.md +0 -0
  65. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/conf.py +0 -0
  66. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/deployment.md +0 -0
  67. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/hardware-quirks.md +0 -0
  68. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/index.md +0 -0
  69. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/src/quickstart.md +0 -0
  70. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/README.md +0 -0
  71. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/pyproject.toml +0 -0
  72. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/src/pixie_docs/__init__.py +0 -0
  73. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/docs/tooling/src/pixie_docs/cli.py +0 -0
  74. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/auxiliary/cloudinit-metadata.meta +0 -0
  75. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/auxiliary/ipxe-embed.ipxe +0 -0
  76. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/auxiliary/ipxe-local-general.h +0 -0
  77. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/archives/backports.list.binary +0 -0
  78. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/archives/backports.list.chroot +0 -0
  79. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/bootloaders/grub-efi/splash.png +0 -0
  80. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/bootloaders/syslinux/splash.png +0 -0
  81. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0500-pixie-install.hook.chroot +0 -0
  82. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0500-pixie-skip-bootloader-menu.hook.binary +0 -0
  83. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0600-pixie-r8125-dkms.hook.chroot +0 -0
  84. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0700-pixie-clock-from-http.hook.chroot +0 -0
  85. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0800-pixie-ssh-live.hook.chroot +0 -0
  86. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0900-pixie-enable-services.hook.chroot +0 -0
  87. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0980-pixie-apt-validate.hook.chroot +0 -0
  88. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/initramfs-tools/conf.d/pixie-modules-most +0 -0
  89. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/issue +0 -0
  90. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/modprobe.d/zz-pixie-blacklist-nouveau.conf +0 -0
  91. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/motd +0 -0
  92. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/profile.d/pixie-version.sh +0 -0
  93. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/getty@.service.d/zzz-pixie-autologin-root.conf +0 -0
  94. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-early.service +0 -0
  95. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-late.service +0 -0
  96. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-mid.service +0 -0
  97. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-clock-from-http.service +0 -0
  98. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-images-discover.service +0 -0
  99. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-on-tty1.service +0 -0
  100. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-usb-grow.service +0 -0
  101. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/var-lib-pixie-images.mount +0 -0
  102. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/udev/rules.d/70-pixie-realtek-2g5-offloads.rules +0 -0
  103. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/lib/systemd/system-generators/pixie-skip-usb-only-units-on-netboot +0 -0
  104. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-boot-banner +0 -0
  105. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-clock-from-http +0 -0
  106. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-images-discover +0 -0
  107. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-on-tty1 +0 -0
  108. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-trace +0 -0
  109. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-usb-grow +0 -0
  110. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/package-lists/pixie-base.list.chroot +0 -0
  111. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/package-lists/pixie-flash.list.chroot +0 -0
  112. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/preferences/backports.pref.binary +0 -0
  113. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/pixie-media/live-build/config/preferences/backports.pref.chroot +0 -0
  114. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/__init__.py +0 -0
  115. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/_partition.py +0 -0
  116. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/_util.py +0 -0
  117. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/__init__.py +0 -0
  118. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_fetcher.py +0 -0
  119. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_routes.py +0 -0
  120. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_schema.py +0 -0
  121. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/_store.py +0 -0
  122. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/catalog/catalog.toml +0 -0
  123. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/deploy/__init__.py +0 -0
  124. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/deploy/_main.py +0 -0
  125. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/deploy/_templates.py +0 -0
  126. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/disks.py +0 -0
  127. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/__init__.py +0 -0
  128. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/_log.py +0 -0
  129. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/events/_routes.py +0 -0
  130. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/__init__.py +0 -0
  131. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/_routes.py +0 -0
  132. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/_store.py +0 -0
  133. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/exports/_supervisor.py +0 -0
  134. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/flash.py +0 -0
  135. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/images.py +0 -0
  136. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/machines/__init__.py +0 -0
  137. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/machines/_routes.py +0 -0
  138. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/machines/_store.py +0 -0
  139. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/oras.py +0 -0
  140. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/oras_pull.py +0 -0
  141. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pivot/__init__.py +0 -0
  142. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pivot/nbdboot +0 -0
  143. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pxe/__init__.py +0 -0
  144. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/pxe/_routes.py +0 -0
  145. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tftp/__init__.py +0 -0
  146. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tftp/_supervisor.py +0 -0
  147. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tui/__init__.py +0 -0
  148. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tui/_app.py +0 -0
  149. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/tui_catalog.py +0 -0
  150. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/__init__.py +0 -0
  151. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_auth.py +0 -0
  152. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_bind_preview.py +0 -0
  153. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_fsutil.py +0 -0
  154. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_images.py +0 -0
  155. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_inventory.py +0 -0
  156. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_overlay_bind.py +0 -0
  157. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_overlays.py +0 -0
  158. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/.gitkeep +0 -0
  159. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/bootstrap-icons.min.css +0 -0
  160. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/bootstrap.min.css +0 -0
  161. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/fonts/bootstrap-icons.woff +0 -0
  162. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/fonts/bootstrap-icons.woff2 +0 -0
  163. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/htmx.min.js +0 -0
  164. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/pixie-favicon.png +0 -0
  165. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_static/sse.js +0 -0
  166. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_table_state.py +0 -0
  167. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/page_description.html +0 -0
  168. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/recent_events.html +0 -0
  169. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/table_helpers.html +0 -0
  170. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/catalog.html +0 -0
  171. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/catalog_detail.html +0 -0
  172. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/events.html +0 -0
  173. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/image_detail.html +0 -0
  174. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/images.html +0 -0
  175. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/bootstrap.j2 +0 -0
  176. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/exit.j2 +0 -0
  177. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/nbdboot.j2 +0 -0
  178. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/unavailable.j2 +0 -0
  179. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/layout.html +0 -0
  180. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/login.html +0 -0
  181. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/machine_detail.html +0 -0
  182. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/machines.html +0 -0
  183. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/overlays.html +0 -0
  184. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/src/pixie/web/_templates/settings.html +0 -0
  185. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/__init__.py +0 -0
  186. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/conftest.py +0 -0
  187. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/__init__.py +0 -0
  188. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/conftest.py +0 -0
  189. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_catalog_fetch.py +0 -0
  190. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_deploy.py +0 -0
  191. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_exports.py +0 -0
  192. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_inventory.py +0 -0
  193. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_pxe.py +0 -0
  194. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/integration/test_tftp.py +0 -0
  195. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_auth.py +0 -0
  196. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_catalog_api.py +0 -0
  197. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_catalog_seed.py +0 -0
  198. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_deploy_unit.py +0 -0
  199. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_event_kinds.py +0 -0
  200. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_events_unit.py +0 -0
  201. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_exports_unit.py +0 -0
  202. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_fetch_progress.py +0 -0
  203. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_healthz.py +0 -0
  204. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_images_ui.py +0 -0
  205. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_machines_unit.py +0 -0
  206. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_oras_pull.py +0 -0
  207. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_overlays_ui.py +0 -0
  208. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_partition_select.py +0 -0
  209. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_pivot.py +0 -0
  210. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_schema.py +0 -0
  211. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_ui_pages.py +0 -0
  212. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_web_bind_preview.py +0 -0
  213. {pixie_lab-0.4.2 → pixie_lab-0.4.3}/tests/test_web_inventory.py +0 -0
@@ -7,9 +7,9 @@ name: cicd
7
7
  # (real nbdkit, real HTTP, real NBD wire).
8
8
  # * ``build-container``: separate smoke build kept for the "does
9
9
  # the Containerfile parse on a fresh runner" signal.
10
- # * ``build-media``: build the live-env media (netboot-pc + usbboot-pc
11
- # variants) via the cijoe pipelines under cijoe/tasks/. Requires
12
- # live-build + passwordless sudo; the runner has both.
10
+ # * ``build-media``: build the usbboot-pc bootable .iso via the cijoe
11
+ # live-build pipeline under cijoe/tasks/. Requires live-build +
12
+ # passwordless sudo; the runner has both.
13
13
  # * ``verify-usbboot``: structurally verify the usbboot-pc .iso
14
14
  # (hybrid ISO + El Torito BIOS & UEFI entries + sha256), then boot
15
15
  # it via a real Ventoy stick in QEMU and assert the pixie live env
@@ -27,9 +27,9 @@ name: cicd
27
27
  # only. Before this the image was smoke-built and thrown away, so
28
28
  # the documented ghcr image was never populated by CI.
29
29
  # * ``publish-release``: create the GitHub Release for the tag and
30
- # attach the media ``build-media`` produces -- the netboot-pc
31
- # live-env bake + the usbboot-pc bootable image + checksums. These
32
- # used to live only as ephemeral, login-gated workflow artifacts.
30
+ # attach the media -- the pixie-live-env nbdboot image + the
31
+ # usbboot-pc bootable .iso + checksums. These used to live only as
32
+ # ephemeral, login-gated workflow artifacts.
33
33
  #
34
34
  # First publish (claiming the pixie-lab name) requires a one-time
35
35
  # PyPI setup: register a Pending Publisher on https://pypi.org
@@ -106,7 +106,7 @@ jobs:
106
106
  name: Build ${{ matrix.variant }} image
107
107
  needs: test
108
108
  runs-on: ubuntu-latest
109
- # A cold live-build (netboot-pc / usbboot-pc) finishes in
109
+ # A cold live-build (usbboot-pc .iso) finishes in
110
110
  # 25-40 min on a warm GHA runner. The dominant failure mode is
111
111
  # a HANG (in-chroot apt / debootstrap has no timeout), so a 60
112
112
  # min cap fails a stuck build fast; the cijoe-output artifact
@@ -116,7 +116,7 @@ jobs:
116
116
  strategy:
117
117
  fail-fast: false
118
118
  matrix:
119
- variant: [netboot-pc, usbboot-pc]
119
+ variant: [usbboot-pc]
120
120
  steps:
121
121
  - uses: actions/checkout@v6
122
122
 
@@ -171,17 +171,6 @@ jobs:
171
171
  path: cijoe/cijoe-output
172
172
  if-no-files-found: warn
173
173
 
174
- - name: Upload artifact (netboot-pc)
175
- if: matrix.variant == 'netboot-pc'
176
- uses: actions/upload-artifact@v7
177
- with:
178
- name: pixie-netboot-pc-x86_64
179
- path: |
180
- ~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.vmlinuz
181
- ~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.initrd
182
- ~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.squashfs
183
- ~/system_imaging/disk/pixie-netboot-pc-x86_64-v*.sha256
184
-
185
174
  - name: Upload artifact (usbboot-pc)
186
175
  if: matrix.variant == 'usbboot-pc'
187
176
  uses: actions/upload-artifact@v7
@@ -318,9 +307,8 @@ jobs:
318
307
  # netboot bundle, root disk from nosi's img.gz -- and asserts a
319
308
  # real Debian userspace comes up over NBD.
320
309
  #
321
- # 60 min timeout for the same reasons as test-pxe-flash: the real
322
- # oras pull (~2.6 GiB compressed) + img.gz decompression to
323
- # pixie's blob store dominates wall clock.
310
+ # 60 min timeout because the real oras pull (~2.6 GiB compressed) +
311
+ # img.gz decompression to pixie's blob store dominates wall clock.
324
312
  runs-on: ubuntu-latest
325
313
  timeout-minutes: 60
326
314
  steps:
@@ -365,83 +353,20 @@ jobs:
365
353
  path: cijoe/_build/test-pxe
366
354
  if-no-files-found: warn
367
355
 
368
- test-pxe-inventory:
369
- name: PXE inventory chain test (containerized pixie + client QEMU VM)
370
- # Depends on the netboot-pc bake for the live-env media that
371
- # pixie serves at /boot/pixie-live-env/. No disk image assembly
372
- # here (unlike nbdboot), so the runner does not need
373
- # squashfs-tools / rsync / mkfs.ext4.
374
- needs: build-media
375
- runs-on: ubuntu-latest
376
- timeout-minutes: 30
377
- steps:
378
- - uses: actions/checkout@v6
379
-
380
- - name: Install host tools (qemu, dnsmasq, ipxe, bridge)
381
- run: |
382
- set -eu
383
- sudo apt-get update
384
- sudo apt-get install -y --no-install-recommends \
385
- qemu-system-x86 \
386
- qemu-utils \
387
- dnsmasq \
388
- ipxe \
389
- bridge-utils \
390
- iproute2
391
- sudo chmod a+rw /dev/kvm
392
- ls -la /dev/kvm
393
-
394
- - name: Install cijoe
395
- run: pipx install --force cijoe
396
-
397
- - name: Install uv
398
- uses: astral-sh/setup-uv@v8.1.0
399
-
400
- - name: Download netboot-pc bake artifacts
401
- uses: actions/download-artifact@v7
402
- with:
403
- name: pixie-netboot-pc-x86_64
404
- path: ~/system_imaging/disk/
405
-
406
- - name: Show downloaded artifact contents
407
- run: |
408
- set -eu
409
- echo "--- ~/system_imaging/disk (recursive) ---"
410
- find ~/system_imaging/disk -maxdepth 5 -print
411
-
412
- - name: Run PXE inventory chain test
413
- run: make test-pxe-inventory
414
-
415
- - name: Upload cijoe output
416
- if: always()
417
- uses: actions/upload-artifact@v7
418
- with:
419
- name: cijoe-output-test-pxe-inventory
420
- path: cijoe/cijoe-output
421
- if-no-files-found: warn
422
-
423
- - name: Upload PXE workspace (serial logs, dnsmasq.log)
424
- if: always()
425
- uses: actions/upload-artifact@v7
426
- with:
427
- name: test-pxe-inventory-workspace
428
- path: cijoe/_build/test-pxe
429
- if-no-files-found: warn
430
-
431
- test-pxe-flash:
432
- name: PXE flash chain test (containerized pixie + client QEMU VM)
433
- # Same artifact dependency as test-pxe-inventory (the netboot-pc
434
- # bake for the live-env media). qemu-utils lands qemu-img which
435
- # we use to read the client disk's sector 0 for a boot-signature
436
- # check without a full-disk convert.
356
+ test-pxe-live-env-modes:
357
+ name: PXE live-env modes chain test (containerized pixie + client QEMU VM)
358
+ # Consolidated: nbdboots the pixie-live-env image ONCE, then runs
359
+ # pixie-inventory / -tui / -flash-once against it in sequence (one
360
+ # heavy image fetch, three client boots, destructive flash last).
361
+ # Fetches the pinned pixie-live-env release image (https) + its
362
+ # arch-headless netboot bundle (oras) + the nosi flash target
363
+ # (oras). No build-media dependency.
437
364
  #
438
- # Wider timeout (60 min) because the pipeline pulls a real nosi
439
- # image via oras (~2.6 GiB compressed) + decompresses img.gz +
440
- # dds ~10 GiB sparsely to the client qcow2 -- not the synthetic
441
- # 16 MiB marker file the earlier test-pxe-flash iterations used.
442
- needs: build-media
365
+ # 90 min: the pixie-live-env img.gz fetch + the flash submode's
366
+ # ~2.6 GiB nosi image pull/decompress + three sequential QEMU boots
367
+ # dominate wall clock.
443
368
  runs-on: ubuntu-latest
444
- timeout-minutes: 60
369
+ timeout-minutes: 90
445
370
  steps:
446
371
  - uses: actions/checkout@v6
447
372
 
@@ -465,152 +390,14 @@ jobs:
465
390
  - name: Install uv
466
391
  uses: astral-sh/setup-uv@v8.1.0
467
392
 
468
- - name: Download netboot-pc bake artifacts
469
- uses: actions/download-artifact@v7
470
- with:
471
- name: pixie-netboot-pc-x86_64
472
- path: ~/system_imaging/disk/
473
-
474
- - name: Show downloaded artifact contents
475
- run: |
476
- set -eu
477
- echo "--- ~/system_imaging/disk (recursive) ---"
478
- find ~/system_imaging/disk -maxdepth 5 -print
479
-
480
- - name: Run PXE flash chain test
481
- run: make test-pxe-flash
482
-
483
- - name: Upload cijoe output
484
- if: always()
485
- uses: actions/upload-artifact@v7
486
- with:
487
- name: cijoe-output-test-pxe-flash
488
- path: cijoe/cijoe-output
489
- if-no-files-found: warn
490
-
491
- - name: Upload PXE workspace (serial logs, dnsmasq.log)
492
- if: always()
493
- uses: actions/upload-artifact@v7
494
- with:
495
- name: test-pxe-flash-workspace
496
- path: cijoe/_build/test-pxe
497
- if-no-files-found: warn
498
-
499
- test-pxe-flash-always:
500
- name: PXE flash-always chain test (containerized pixie + client QEMU VM)
501
- # Same dependencies + real-nosi pipeline as test-pxe-flash. The
502
- # difference is a one-line config knob + an inverted assertion:
503
- # pixie-flash-always must NOT flip its bind on the CLI's /done.
504
- # 60 min for the same reasons -- real oras pull dominates.
505
- needs: build-media
506
- runs-on: ubuntu-latest
507
- timeout-minutes: 60
508
- steps:
509
- - uses: actions/checkout@v6
510
-
511
- - name: Install host tools (qemu, dnsmasq, ipxe, bridge)
512
- run: |
513
- set -eu
514
- sudo apt-get update
515
- sudo apt-get install -y --no-install-recommends \
516
- qemu-system-x86 \
517
- qemu-utils \
518
- dnsmasq \
519
- ipxe \
520
- bridge-utils \
521
- iproute2
522
- sudo chmod a+rw /dev/kvm
523
- ls -la /dev/kvm
524
-
525
- - name: Install cijoe
526
- run: pipx install --force cijoe
527
-
528
- - name: Install uv
529
- uses: astral-sh/setup-uv@v8.1.0
530
-
531
- - name: Download netboot-pc bake artifacts
532
- uses: actions/download-artifact@v7
533
- with:
534
- name: pixie-netboot-pc-x86_64
535
- path: ~/system_imaging/disk/
536
-
537
- - name: Show downloaded artifact contents
538
- run: |
539
- set -eu
540
- echo "--- ~/system_imaging/disk (recursive) ---"
541
- find ~/system_imaging/disk -maxdepth 5 -print
542
-
543
- - name: Run PXE flash-always chain test
544
- run: make test-pxe-flash-always
545
-
546
- - name: Upload cijoe output
547
- if: always()
548
- uses: actions/upload-artifact@v7
549
- with:
550
- name: cijoe-output-test-pxe-flash-always
551
- path: cijoe/cijoe-output
552
- if-no-files-found: warn
553
-
554
- - name: Upload PXE workspace (serial logs, dnsmasq.log)
555
- if: always()
556
- uses: actions/upload-artifact@v7
557
- with:
558
- name: test-pxe-flash-always-workspace
559
- path: cijoe/_build/test-pxe
560
- if-no-files-found: warn
561
-
562
- test-pxe-tui:
563
- name: PXE tui chain test (containerized pixie + client QEMU VM)
564
- # Same live-env media dependency as test-pxe-flash. No qemu-utils
565
- # here -- the tui test does not read the target disk; it just
566
- # asserts the wizard entered its picker screen (a serial marker
567
- # coming out of pixie CLI's _screen_select_image).
568
- needs: build-media
569
- runs-on: ubuntu-latest
570
- timeout-minutes: 30
571
- steps:
572
- - uses: actions/checkout@v6
573
-
574
- - name: Install host tools (qemu, dnsmasq, ipxe, bridge)
575
- run: |
576
- set -eu
577
- sudo apt-get update
578
- sudo apt-get install -y --no-install-recommends \
579
- qemu-system-x86 \
580
- qemu-utils \
581
- dnsmasq \
582
- ipxe \
583
- bridge-utils \
584
- iproute2
585
- sudo chmod a+rw /dev/kvm
586
- ls -la /dev/kvm
587
-
588
- - name: Install cijoe
589
- run: pipx install --force cijoe
590
-
591
- - name: Install uv
592
- uses: astral-sh/setup-uv@v8.1.0
593
-
594
- - name: Download netboot-pc bake artifacts
595
- uses: actions/download-artifact@v7
596
- with:
597
- name: pixie-netboot-pc-x86_64
598
- path: ~/system_imaging/disk/
599
-
600
- - name: Show downloaded artifact contents
601
- run: |
602
- set -eu
603
- echo "--- ~/system_imaging/disk (recursive) ---"
604
- find ~/system_imaging/disk -maxdepth 5 -print
605
-
606
- - name: Run PXE tui chain test
607
- run: make test-pxe-tui
393
+ - name: Run PXE live-env modes chain test
394
+ run: make test-pxe-live-env-modes
608
395
 
609
396
  - name: Upload cijoe output
610
397
  if: always()
611
398
  uses: actions/upload-artifact@v7
612
399
  with:
613
- name: cijoe-output-test-pxe-tui
400
+ name: cijoe-output-test-pxe-live-env-modes
614
401
  path: cijoe/cijoe-output
615
402
  if-no-files-found: warn
616
403
 
@@ -618,7 +405,7 @@ jobs:
618
405
  if: always()
619
406
  uses: actions/upload-artifact@v7
620
407
  with:
621
- name: test-pxe-tui-workspace
408
+ name: test-pxe-live-env-modes-workspace
622
409
  path: cijoe/_build/test-pxe
623
410
  if-no-files-found: warn
624
411
 
@@ -714,10 +501,7 @@ jobs:
714
501
  - build-live-env-image
715
502
  - test-pxe
716
503
  - test-pxe-nbdboot
717
- - test-pxe-inventory
718
- - test-pxe-tui
719
- - test-pxe-flash
720
- - test-pxe-flash-always
504
+ - test-pxe-live-env-modes
721
505
  - verify-usbboot
722
506
  runs-on: ubuntu-latest
723
507
  if: startsWith(github.ref, 'refs/tags/v')
@@ -757,10 +541,7 @@ jobs:
757
541
  - build-live-env-image
758
542
  - test-pxe
759
543
  - test-pxe-nbdboot
760
- - test-pxe-inventory
761
- - test-pxe-tui
762
- - test-pxe-flash
763
- - test-pxe-flash-always
544
+ - test-pxe-live-env-modes
764
545
  - verify-usbboot
765
546
  runs-on: ubuntu-latest
766
547
  if: startsWith(github.ref, 'refs/tags/v')
@@ -788,11 +569,11 @@ jobs:
788
569
 
789
570
  publish-release:
790
571
  name: Publish GitHub Release (media assets)
791
- # Attach the media CI already builds -- the netboot-pc live-env
792
- # bake (vmlinuz + initrd + squashfs) and the usbboot-pc bootable
793
- # image -- to a GitHub Release on v* tags. Before this they only
794
- # existed as ephemeral, login-gated workflow artifacts, so an
795
- # operator had no released live-env or USB image to download. Same
572
+ # Attach the media CI already builds -- the pixie-live-env nbdboot
573
+ # image and the usbboot-pc bootable .iso -- to a GitHub Release on
574
+ # v* tags. Before this they only existed as ephemeral, login-gated
575
+ # workflow artifacts, so an operator had no released live-env or
576
+ # USB image to download. Same
796
577
  # full-pipeline gate as the other publish jobs.
797
578
  needs:
798
579
  - test
@@ -803,10 +584,7 @@ jobs:
803
584
  - build-live-env-image
804
585
  - test-pxe
805
586
  - test-pxe-nbdboot
806
- - test-pxe-inventory
807
- - test-pxe-tui
808
- - test-pxe-flash
809
- - test-pxe-flash-always
587
+ - test-pxe-live-env-modes
810
588
  - verify-usbboot
811
589
  runs-on: ubuntu-latest
812
590
  if: startsWith(github.ref, 'refs/tags/v')
@@ -817,9 +595,7 @@ jobs:
817
595
  - name: Download media artifacts
818
596
  uses: actions/download-artifact@v8
819
597
  with:
820
- # Both build-media matrix legs upload under this shape:
821
- # ``pixie-netboot-pc-x86_64`` + ``pixie-usbboot-pc-x86_64``.
822
- # merge-multiple flattens both into one directory.
598
+ # build-media uploads the usbboot-pc .iso under this shape.
823
599
  pattern: pixie-*-pc-x86_64
824
600
  merge-multiple: true
825
601
  path: release-assets
@@ -834,25 +610,13 @@ jobs:
834
610
  path: release-assets
835
611
  - name: List release assets
836
612
  run: ls -la release-assets
837
- - name: Assemble live-env fetch tarball
838
- # pixie's in-app "Fetch live-env" pulls ONE tarball that unpacks
839
- # to vmlinuz + initrd + live.squashfs (see catalog/_live_env.py).
840
- # Repackage the netboot-pc trio under those stable names so
841
- # ``.../releases/latest/download/pixie-live-env-x86_64.tar.gz``
842
- # -- the default PIXIE_LIVE_ENV_SRC -- resolves.
613
+ - name: Stage curated catalog
614
+ # Ship the curated catalog (the nosi subset + the pixie-live-env
615
+ # image) so DEFAULT_CATALOG_URL
616
+ # (.../releases/latest/download/catalog.toml) resolves and
617
+ # pixie's Import + live-env TUI default work.
843
618
  run: |
844
619
  set -eu
845
- d=$(mktemp -d)
846
- cp release-assets/pixie-netboot-pc-x86_64-*.vmlinuz "$d/vmlinuz"
847
- cp release-assets/pixie-netboot-pc-x86_64-*.initrd "$d/initrd"
848
- cp release-assets/pixie-netboot-pc-x86_64-*.squashfs "$d/live.squashfs"
849
- tar -C "$d" -czf release-assets/pixie-live-env-x86_64.tar.gz \
850
- vmlinuz initrd live.squashfs
851
- ( cd release-assets && sha256sum pixie-live-env-x86_64.tar.gz \
852
- > pixie-live-env-x86_64.tar.gz.sha256 )
853
- # Ship the curated catalog (the netboot-capable nosi subset)
854
- # so DEFAULT_CATALOG_URL (.../releases/latest/download/catalog.toml)
855
- # resolves and pixie's Import + live-env TUI default work.
856
620
  cp src/pixie/catalog/catalog.toml release-assets/catalog.toml
857
621
  ls -la release-assets
858
622
  - name: Create / update GitHub Release
@@ -874,7 +638,5 @@ jobs:
874
638
  - `pixie-live-env-x86_64.img.gz` — the **nbdboot** live-env image: the nosi `arch-headless` base disk image with the pixie CLI + `pixie-on-tty1` service injected. Fetch it from the **Catalog** tab (it seeds into a fresh catalog), then set `PIXIE_LIVE_ENV_IMAGE_SHA` to select it for the `pixie-flash-once` / `pixie-flash-always` / `pixie-inventory` / `pixie-tui` boot modes so they nbdboot this image ephemerally.
875
639
  - `pixie-live-env-x86_64.content-sha256` — the raw-image sha256 to set `PIXIE_LIVE_ENV_IMAGE_SHA` to (identical to the `content_sha256` pixie assigns after fetching the `pixie-live-env` catalog entry).
876
640
  - `pixie-live-env-catalog.toml` — the catalog fragment (the `pixie-live-env` disk image + its arch-headless netboot bundle) with `content_sha256` filled in; the shipped `catalog.toml` also lists these entries.
877
- - `pixie-live-env-x86_64.tar.gz` — the older squashfs live-env trio for pixie's in-app **Fetch live-env** action (the default `PIXIE_LIVE_ENV_SRC`) and the `PIXIE_LIVE_ENV_DIR` staging path.
878
- - `pixie-netboot-pc-x86_64-*.{vmlinuz,initrd,squashfs}` — the squashfs live-env (netboot-pc bake) as loose files, if you prefer to stage `PIXIE_LIVE_ENV_DIR` (`data/live-env/`) by hand.
879
- - `pixie-usbboot-pc-x86_64-*.iso` — bootable USB / ISO media for the pixie live env (uncompressed; `dd` / Etcher / Ventoy ready).
641
+ - `pixie-usbboot-pc-x86_64-*.iso` — bootable USB / ISO media for ad-hoc flash-install of images (uncompressed; `dd` / Etcher / Ventoy ready).
880
642
  - `*.sha256` — checksums for the above.
@@ -11,6 +11,23 @@ operator-facing summary.
11
11
 
12
12
  ## [Unreleased]
13
13
 
14
+ ## [0.4.3] - 2026-07-26
15
+
16
+ ### Removed
17
+
18
+ **The squashfs live-env path is retired.** The live-env boot modes
19
+ (`pixie-inventory` / `pixie-tui` / `pixie-flash-once` / `pixie-flash-always`)
20
+ now boot the disk image selected by `PIXIE_LIVE_ENV_IMAGE_SHA` over
21
+ ephemeral nbdboot, full stop -- the old Debian live-boot squashfs
22
+ delivery is gone. Removed: the `boot=live fetch=<squashfs>` render
23
+ fallback (an unset image sha now degrades to the unavailable plan, so
24
+ select an image on the Live env page), the in-app "Fetch live-env"
25
+ action and `/ui/live-env/src/edit` route, the `PIXIE_LIVE_ENV_SRC` /
26
+ `PIXIE_LIVE_ENV_DIR` settings and the `/boot/pixie-live-env` mount, and
27
+ the `netboot-pc` live-build bake (with its `pixie-live-env-x86_64.tar.gz`
28
+ release asset). The `usbboot-pc` bootable `.iso` -- for ad-hoc
29
+ flash-install of images -- is unchanged.
30
+
14
31
  ## [0.4.2] - 2026-07-26
15
32
 
16
33
  ### Added
@@ -9,15 +9,11 @@ VARIANT ?= usbboot-pc
9
9
 
10
10
  # Per-variant cijoe workflow file under cijoe/tasks/. The variant
11
11
  # string carries the hardware family (``pc`` for generic x86 BIOS /
12
- # UEFI boxes) and the boot source (``netboot`` for PXE-chain clients,
13
- # ``usbboot`` for direct disk media). arm64 / RPi is out of the
14
- # initial pixie port; when it lands it will follow bty's precedent of
15
- # customising Raspberry Pi OS in place on a native arm64 host.
16
- ifeq ($(VARIANT),netboot-pc)
17
- MEDIA_TASK := tasks/netboot-pc.yaml
18
- else
12
+ # UEFI boxes) and the boot source (``usbboot`` for direct disk media,
13
+ # the bootable .iso for ad-hoc flash-install). arm64 / RPi is out of
14
+ # the initial pixie port; when it lands it will follow bty's precedent
15
+ # of customising Raspberry Pi OS in place on a native arm64 host.
19
16
  MEDIA_TASK := tasks/usbboot-pc.yaml
20
- endif
21
17
 
22
18
  .DEFAULT_GOAL := help
23
19
 
@@ -49,21 +45,12 @@ help:
49
45
  @echo " test-pxe end-to-end PXE bootstrap chain test"
50
46
  @echo " (needs podman + QEMU + KVM + dnsmasq; a few min wall clock)"
51
47
  @echo " test-pxe-nbdboot end-to-end PXE nbdboot chain test"
52
- @echo " (same deps as test-pxe + a prior VARIANT=netboot-pc bake)"
53
- @echo " test-pxe-inventory end-to-end PXE pixie-inventory chain test"
54
- @echo " (same deps as test-pxe-nbdboot; no catalog seed)"
55
- @echo " test-pxe-flash end-to-end PXE pixie-flash-once chain test"
56
- @echo " (same deps as test-pxe-inventory; small synthetic image)"
57
- @echo " test-pxe-flash-always end-to-end PXE pixie-flash-always chain test"
58
- @echo " (same deps as test-pxe-flash; asserts no /done flip)"
59
- @echo " test-pxe-tui end-to-end PXE pixie-tui chain test"
60
- @echo " (same deps as test-pxe-flash; asserts wizard entry)"
48
+ @echo " (same deps as test-pxe + internet for the real nosi oras pulls)"
61
49
  @echo " test-usb-ventoy structural + Ventoy-boot verify of the usbboot .iso"
62
50
  @echo " (needs a prior VARIANT=usbboot-pc bake + qemu/KVM/OVMF + ventoy deps)"
63
51
  @echo ""
64
- @echo "Variant: $(VARIANT) (override with VARIANT=netboot-pc, ...)"
52
+ @echo "Variant: $(VARIANT)"
65
53
  @echo " usbboot-pc - bootable USB live ISO via live-build (.iso, x86_64)"
66
- @echo " netboot-pc - kernel + initrd + squashfs trio for PXE-flash clients (x86_64)"
67
54
  @echo ""
68
55
  @echo "Cleanup:"
69
56
  @echo " clean remove build artifacts (dist/, cijoe-output, _build, caches)"
@@ -135,49 +122,21 @@ ipxe:
135
122
  test-pxe:
136
123
  cd cijoe && cijoe tasks/test-pxe.yaml --monitor -c configs/test-pxe.toml
137
124
 
138
- # Ramboot chain test: bring up pixie, seed the catalog with a bundle
139
- # assembled from the netboot-pc bake artifacts + a synthetic disk
140
- # image, bind the client MAC to boot_mode=nbdboot, PXE-boot QEMU, and
141
- # assert every marker in cijoe/configs/test-pxe-nbdboot.toml shows up
142
- # through the initramfs.s nbdboot script. Depends on a prior
143
- # ``pixie-netboot-pc-x86_64`` bake staged under
144
- # ``~/system_imaging/disk/`` (or PIXIE_NETBOOT_ARTIFACT_DIR).
125
+ # Nbdboot chain test: bring up pixie, POST /ui/catalog/import with a
126
+ # pinned nosi catalog, fetch the real nosi debian-13-headless-netboot
127
+ # bundle + disk image over oras, bind the client MAC to
128
+ # boot_mode=nbdboot, PXE-boot QEMU, and assert every marker in
129
+ # cijoe/configs/test-pxe-nbdboot.toml shows up through the initramfs
130
+ # nbdboot script. Needs internet to ghcr.io + github.com/safl/nosi.
145
131
  test-pxe-nbdboot:
146
132
  cd cijoe && cijoe tasks/test-pxe-nbdboot.yaml --monitor -c configs/test-pxe-nbdboot.toml
147
133
 
148
- # Inventory chain test: bring up pixie with the netboot-pc bake
149
- # bind-mounted as its live-env dir, bind the client MAC to
150
- # boot_mode=pixie-inventory, PXE-boot QEMU, and assert the live-env
151
- # actually boots + posts an inventory blob back to pixie. Same
152
- # artifact dependency as test-pxe-nbdboot (needs the netboot-pc
153
- # bake).
154
- test-pxe-inventory:
155
- cd cijoe && cijoe tasks/test-pxe-inventory.yaml --monitor -c configs/test-pxe-inventory.toml
156
-
157
- # Flash chain test: bring up pixie with the netboot-pc bake bind-mounted
158
- # as its live-env dir, seed the catalog with a small (16 MiB) synthetic
159
- # image whose first bytes carry a marker, bind the client MAC to
160
- # boot_mode=pixie-flash-once + target_disk_serial=PIXIETEST, PXE-boot
161
- # QEMU, and assert the live-env's pixie CLI auto-flashes the image +
162
- # POSTs status=done. Same artifact dependency as test-pxe-inventory
163
- # (needs the netboot-pc bake).
164
- test-pxe-flash:
165
- cd cijoe && cijoe tasks/test-pxe-flash.yaml --monitor -c configs/test-pxe-flash.toml
166
-
167
- # Flash-always chain test: mirrors test-pxe-flash but binds
168
- # boot_mode=pixie-flash-always. Same wire; the post-chain assertion
169
- # inverts (mode must NOT flip to ipxe-exit on the CLI's /done POST).
170
- test-pxe-flash-always:
171
- cd cijoe && cijoe tasks/test-pxe-flash-always.yaml --monitor -c configs/test-pxe-flash-always.toml
172
-
173
- # TUI chain test: binds boot_mode=pixie-tui, asserts the CLI reaches
174
- # the interactive wizard's SELECT_IMAGE screen (proves the plan
175
- # dispatch AND the /catalog.toml catalog wire between server + CLI).
176
- # Does not drive the wizard's inputs; that would need QMP send-key
177
- # and the flash pipeline past the pick is already covered by
178
- # test-pxe-flash.
179
- test-pxe-tui:
180
- cd cijoe && cijoe tasks/test-pxe-tui.yaml --monitor -c configs/test-pxe-tui.toml
134
+ # Consolidated live-env-modes chain: nbdboots the pixie-live-env image
135
+ # once, then exercises pixie-inventory / -tui / -flash-once against it
136
+ # in sequence. Needs the same host tools as test-pxe + internet for the
137
+ # pixie-live-env release image + arch bundle + nosi flash target.
138
+ test-pxe-live-env-modes:
139
+ cd cijoe && cijoe tasks/test-pxe-live-env-modes.yaml --monitor -c configs/test-pxe-live-env-modes.toml
181
140
 
182
141
  # Structural + Ventoy-boot verification of the usbboot .iso. Needs a
183
142
  # prior VARIANT=usbboot-pc bake staged under ~/system_imaging/disk/ (or
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pixie-lab
3
- Version: 0.4.2
3
+ Version: 0.4.3
4
4
  Summary: Bare-metal netboot appliance: catalog + fetch + NBD + PXE + TFTP + operator TUI in one container
5
5
  Project-URL: Homepage, https://github.com/safl/pixie
6
6
  Project-URL: Repository, https://github.com/safl/pixie