pixie-lab 0.4.1__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.
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/.github/workflows/cicd.yaml +117 -279
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/CHANGELOG.md +44 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/Makefile +30 -60
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/PKG-INFO +1 -1
- pixie_lab-0.4.3/cijoe/configs/live-env-image.toml +34 -0
- pixie_lab-0.4.3/cijoe/configs/test-pxe-live-env-modes.toml +105 -0
- pixie_lab-0.4.3/cijoe/scripts/live_env_image.py +307 -0
- pixie_lab-0.4.3/cijoe/scripts/live_env_transform.sh +293 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/pixie_wheel_stage.py +0 -1
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/pxe_run_chain_test.py +239 -132
- pixie_lab-0.4.3/cijoe/tasks/live-env-image.yaml +35 -0
- pixie_lab-0.4.3/cijoe/tasks/test-pxe-live-env-modes.yaml +35 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/README.md +13 -43
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/auto/config +3 -18
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pyproject.toml +1 -1
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/_partition.py +93 -9
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/catalog/_fetcher.py +15 -4
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/catalog/catalog.toml +24 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/events/_kinds.py +0 -20
- pixie_lab-0.4.3/src/pixie/oras_pull.py +85 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/pxe/_renderer.py +112 -77
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/pxe/_routes.py +14 -1
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_settings_store.py +37 -21
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/dashboard.html +19 -41
- pixie_lab-0.4.3/src/pixie/web/_templates/live_env.html +122 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/main.py +63 -194
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_catalog_seed.py +5 -3
- pixie_lab-0.4.3/tests/test_oras_pull.py +89 -0
- pixie_lab-0.4.3/tests/test_partition_select.py +107 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_pxe_plan_json.py +126 -93
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_settings.py +62 -20
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/uv.lock +1 -1
- pixie_lab-0.4.1/cijoe/configs/netboot-pc.toml +0 -31
- pixie_lab-0.4.1/cijoe/configs/test-pxe-flash-always.toml +0 -74
- pixie_lab-0.4.1/cijoe/configs/test-pxe-flash.toml +0 -99
- pixie_lab-0.4.1/cijoe/configs/test-pxe-inventory.toml +0 -95
- pixie_lab-0.4.1/cijoe/configs/test-pxe-tui.toml +0 -74
- pixie_lab-0.4.1/cijoe/scripts/live_build.py +0 -194
- pixie_lab-0.4.1/cijoe/scripts/pxe_flash_stage.py +0 -93
- pixie_lab-0.4.1/cijoe/scripts/pxe_inventory_stage.py +0 -111
- pixie_lab-0.4.1/cijoe/tasks/netboot-pc.yaml +0 -39
- pixie_lab-0.4.1/cijoe/tasks/test-pxe-flash-always.yaml +0 -30
- pixie_lab-0.4.1/cijoe/tasks/test-pxe-flash.yaml +0 -61
- pixie_lab-0.4.1/cijoe/tasks/test-pxe-inventory.yaml +0 -51
- pixie_lab-0.4.1/cijoe/tasks/test-pxe-tui.yaml +0 -47
- pixie_lab-0.4.1/src/pixie/catalog/_live_env.py +0 -128
- pixie_lab-0.4.1/src/pixie/web/_templates/ipxe/pixie-live-env.j2 +0 -55
- pixie_lab-0.4.1/src/pixie/web/_templates/live_env.html +0 -169
- pixie_lab-0.4.1/tests/test_live_env_fetch.py +0 -203
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/.dockerignore +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/.github/workflows/docs.yml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/.gitignore +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/Containerfile +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/LICENSE +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/PLAN.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/README.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/configs/test-pxe-nbdboot.toml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/configs/test-pxe.toml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/configs/test-usb-ventoy.toml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/configs/usbboot-pc.toml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/pixie_ipxe_build.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/pxe_prepare.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/usb_iso_build.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/usb_iso_verify.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/usb_ventoy_guest_start.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/scripts/usb_ventoy_stage.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/tasks/test-pxe-nbdboot.yaml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/tasks/test-pxe.yaml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/tasks/test-usb-ventoy.yaml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/cijoe/tasks/usbboot-pc.yaml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/audit.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/src/boot-modes.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/src/conf.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/src/deployment.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/src/hardware-quirks.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/src/index.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/src/quickstart.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/tooling/README.md +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/tooling/pyproject.toml +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/tooling/src/pixie_docs/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/docs/tooling/src/pixie_docs/cli.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/auxiliary/cloudinit-metadata.meta +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/auxiliary/ipxe-embed.ipxe +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/auxiliary/ipxe-local-general.h +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/archives/backports.list.binary +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/archives/backports.list.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/bootloaders/grub-efi/splash.png +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/bootloaders/syslinux/splash.png +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0500-pixie-install.hook.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0500-pixie-skip-bootloader-menu.hook.binary +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0600-pixie-r8125-dkms.hook.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0700-pixie-clock-from-http.hook.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0800-pixie-ssh-live.hook.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0900-pixie-enable-services.hook.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/hooks/normal/0980-pixie-apt-validate.hook.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/initramfs-tools/conf.d/pixie-modules-most +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/issue +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/modprobe.d/zz-pixie-blacklist-nouveau.conf +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/motd +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/profile.d/pixie-version.sh +0 -0
- {pixie_lab-0.4.1 → 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
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-early.service +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-late.service +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-banner-mid.service +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-clock-from-http.service +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-images-discover.service +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-on-tty1.service +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/pixie-usb-grow.service +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/systemd/system/var-lib-pixie-images.mount +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/etc/udev/rules.d/70-pixie-realtek-2g5-offloads.rules +0 -0
- {pixie_lab-0.4.1 → 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
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-boot-banner +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-clock-from-http +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-images-discover +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-on-tty1 +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-trace +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/includes.chroot/usr/local/sbin/pixie-usb-grow +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/package-lists/pixie-base.list.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/package-lists/pixie-flash.list.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/preferences/backports.pref.binary +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/pixie-media/live-build/config/preferences/backports.pref.chroot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/_util.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/catalog/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/catalog/_routes.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/catalog/_schema.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/catalog/_store.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/deploy/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/deploy/_main.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/deploy/_templates.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/disks.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/events/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/events/_log.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/events/_routes.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/exports/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/exports/_routes.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/exports/_store.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/exports/_supervisor.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/flash.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/images.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/machines/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/machines/_routes.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/machines/_store.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/oras.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/pivot/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/pivot/nbdboot +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/pxe/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/tftp/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/tftp/_supervisor.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/tui/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/tui/_app.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/tui_catalog.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_auth.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_bind_preview.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_fsutil.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_images.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_inventory.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_overlay_bind.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_overlays.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/.gitkeep +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/bootstrap-icons.min.css +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/bootstrap.min.css +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/fonts/bootstrap-icons.woff +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/fonts/bootstrap-icons.woff2 +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/htmx.min.js +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/pixie-favicon.png +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_static/sse.js +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_table_state.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/page_description.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/recent_events.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/_partials/table_helpers.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/catalog.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/catalog_detail.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/events.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/image_detail.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/images.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/bootstrap.j2 +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/exit.j2 +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/nbdboot.j2 +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/ipxe/unavailable.j2 +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/layout.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/login.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/machine_detail.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/machines.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/overlays.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/src/pixie/web/_templates/settings.html +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/conftest.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/__init__.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/conftest.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/test_catalog_fetch.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/test_deploy.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/test_exports.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/test_inventory.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/test_pxe.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/integration/test_tftp.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_auth.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_catalog_api.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_deploy_unit.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_event_kinds.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_events_unit.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_exports_unit.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_fetch_progress.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_healthz.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_images_ui.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_machines_unit.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_overlays_ui.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_pivot.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_schema.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_ui_pages.py +0 -0
- {pixie_lab-0.4.1 → pixie_lab-0.4.3}/tests/test_web_bind_preview.py +0 -0
- {pixie_lab-0.4.1 → 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
|
|
11
|
-
#
|
|
12
|
-
#
|
|
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
|
|
31
|
-
#
|
|
32
|
-
#
|
|
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 (
|
|
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: [
|
|
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
|
|
@@ -191,6 +180,67 @@ jobs:
|
|
|
191
180
|
~/system_imaging/disk/pixie-usbboot-pc-x86_64-v*.iso
|
|
192
181
|
~/system_imaging/disk/pixie-usbboot-pc-x86_64-v*.sha256
|
|
193
182
|
|
|
183
|
+
build-live-env-image:
|
|
184
|
+
name: Build pixie-live-env image
|
|
185
|
+
# The image the live-env boot modes nbdboot: the nosi arch-headless
|
|
186
|
+
# base disk image with the pixie CLI + pixie-on-tty1 service injected
|
|
187
|
+
# (cijoe/tasks/live-env-image.yaml). Unlike the live-build bakes this
|
|
188
|
+
# does NOT run debootstrap/mksquashfs; it qemu-nbd-mounts a copy of a
|
|
189
|
+
# pulled base image, injects userspace, slims, and gzips. Wired to
|
|
190
|
+
# ``test`` so we don't pay for the ORAS pull + qemu transform on a
|
|
191
|
+
# broken lint/typecheck.
|
|
192
|
+
needs: test
|
|
193
|
+
runs-on: ubuntu-latest
|
|
194
|
+
# 60 min cap for the same reason as build-media: the real ORAS pull
|
|
195
|
+
# of the arch-headless base (~1.6 GiB) + decompress + qemu transform
|
|
196
|
+
# + gzip dominate wall clock.
|
|
197
|
+
timeout-minutes: 60
|
|
198
|
+
steps:
|
|
199
|
+
- uses: actions/checkout@v6
|
|
200
|
+
|
|
201
|
+
- name: Install build dependencies (qemu-nbd, rsync, nbd module)
|
|
202
|
+
run: |
|
|
203
|
+
set -eu
|
|
204
|
+
sudo apt-get update
|
|
205
|
+
sudo apt-get install -y --no-install-recommends \
|
|
206
|
+
qemu-utils rsync gzip
|
|
207
|
+
# The transform attaches a copy of the base image to /dev/nbdX
|
|
208
|
+
# via qemu-nbd; load the module with partition scanning so the
|
|
209
|
+
# root partition shows up as nbdXp1.
|
|
210
|
+
sudo modprobe nbd max_part=16
|
|
211
|
+
ls -la /dev/nbd0
|
|
212
|
+
|
|
213
|
+
- name: Install cijoe
|
|
214
|
+
run: pipx install --force cijoe
|
|
215
|
+
|
|
216
|
+
- name: Install uv
|
|
217
|
+
uses: astral-sh/setup-uv@v8.1.0
|
|
218
|
+
|
|
219
|
+
- name: Build pixie-live-env image
|
|
220
|
+
run: make live-env-image
|
|
221
|
+
|
|
222
|
+
# cijoe captures the full run (per-command output + report.html)
|
|
223
|
+
# under cijoe/cijoe-output/. Upload it ALWAYS so a transform
|
|
224
|
+
# failure leaves a diagnosable artifact.
|
|
225
|
+
- name: Upload cijoe output
|
|
226
|
+
if: always()
|
|
227
|
+
uses: actions/upload-artifact@v7
|
|
228
|
+
with:
|
|
229
|
+
name: cijoe-output-live-env-image
|
|
230
|
+
path: cijoe/cijoe-output
|
|
231
|
+
if-no-files-found: warn
|
|
232
|
+
|
|
233
|
+
- name: Upload artifact (pixie-live-env-image)
|
|
234
|
+
uses: actions/upload-artifact@v7
|
|
235
|
+
with:
|
|
236
|
+
name: pixie-live-env-image-x86_64
|
|
237
|
+
path: |
|
|
238
|
+
~/system_imaging/disk/pixie-live-env-x86_64.img.gz
|
|
239
|
+
~/system_imaging/disk/pixie-live-env-x86_64.img.gz.sha256
|
|
240
|
+
~/system_imaging/disk/pixie-live-env-x86_64.content-sha256
|
|
241
|
+
~/system_imaging/disk/pixie-live-env-catalog.toml
|
|
242
|
+
if-no-files-found: error
|
|
243
|
+
|
|
194
244
|
test-pxe:
|
|
195
245
|
name: PXE bootstrap chain test (containerized pixie + client QEMU VM)
|
|
196
246
|
# Independent of the media bake: the chain test only needs the
|
|
@@ -257,9 +307,8 @@ jobs:
|
|
|
257
307
|
# netboot bundle, root disk from nosi's img.gz -- and asserts a
|
|
258
308
|
# real Debian userspace comes up over NBD.
|
|
259
309
|
#
|
|
260
|
-
# 60 min timeout
|
|
261
|
-
#
|
|
262
|
-
# 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.
|
|
263
312
|
runs-on: ubuntu-latest
|
|
264
313
|
timeout-minutes: 60
|
|
265
314
|
steps:
|
|
@@ -304,146 +353,20 @@ jobs:
|
|
|
304
353
|
path: cijoe/_build/test-pxe
|
|
305
354
|
if-no-files-found: warn
|
|
306
355
|
|
|
307
|
-
test-pxe-
|
|
308
|
-
name: PXE
|
|
309
|
-
#
|
|
310
|
-
# pixie
|
|
311
|
-
#
|
|
312
|
-
#
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
timeout-minutes: 30
|
|
316
|
-
steps:
|
|
317
|
-
- uses: actions/checkout@v6
|
|
318
|
-
|
|
319
|
-
- name: Install host tools (qemu, dnsmasq, ipxe, bridge)
|
|
320
|
-
run: |
|
|
321
|
-
set -eu
|
|
322
|
-
sudo apt-get update
|
|
323
|
-
sudo apt-get install -y --no-install-recommends \
|
|
324
|
-
qemu-system-x86 \
|
|
325
|
-
qemu-utils \
|
|
326
|
-
dnsmasq \
|
|
327
|
-
ipxe \
|
|
328
|
-
bridge-utils \
|
|
329
|
-
iproute2
|
|
330
|
-
sudo chmod a+rw /dev/kvm
|
|
331
|
-
ls -la /dev/kvm
|
|
332
|
-
|
|
333
|
-
- name: Install cijoe
|
|
334
|
-
run: pipx install --force cijoe
|
|
335
|
-
|
|
336
|
-
- name: Install uv
|
|
337
|
-
uses: astral-sh/setup-uv@v8.1.0
|
|
338
|
-
|
|
339
|
-
- name: Download netboot-pc bake artifacts
|
|
340
|
-
uses: actions/download-artifact@v7
|
|
341
|
-
with:
|
|
342
|
-
name: pixie-netboot-pc-x86_64
|
|
343
|
-
path: ~/system_imaging/disk/
|
|
344
|
-
|
|
345
|
-
- name: Show downloaded artifact contents
|
|
346
|
-
run: |
|
|
347
|
-
set -eu
|
|
348
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
349
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
350
|
-
|
|
351
|
-
- name: Run PXE inventory chain test
|
|
352
|
-
run: make test-pxe-inventory
|
|
353
|
-
|
|
354
|
-
- name: Upload cijoe output
|
|
355
|
-
if: always()
|
|
356
|
-
uses: actions/upload-artifact@v7
|
|
357
|
-
with:
|
|
358
|
-
name: cijoe-output-test-pxe-inventory
|
|
359
|
-
path: cijoe/cijoe-output
|
|
360
|
-
if-no-files-found: warn
|
|
361
|
-
|
|
362
|
-
- name: Upload PXE workspace (serial logs, dnsmasq.log)
|
|
363
|
-
if: always()
|
|
364
|
-
uses: actions/upload-artifact@v7
|
|
365
|
-
with:
|
|
366
|
-
name: test-pxe-inventory-workspace
|
|
367
|
-
path: cijoe/_build/test-pxe
|
|
368
|
-
if-no-files-found: warn
|
|
369
|
-
|
|
370
|
-
test-pxe-flash:
|
|
371
|
-
name: PXE flash chain test (containerized pixie + client QEMU VM)
|
|
372
|
-
# Same artifact dependency as test-pxe-inventory (the netboot-pc
|
|
373
|
-
# bake for the live-env media). qemu-utils lands qemu-img which
|
|
374
|
-
# we use to read the client disk's sector 0 for a boot-signature
|
|
375
|
-
# 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.
|
|
376
364
|
#
|
|
377
|
-
#
|
|
378
|
-
#
|
|
379
|
-
#
|
|
380
|
-
# 16 MiB marker file the earlier test-pxe-flash iterations used.
|
|
381
|
-
needs: build-media
|
|
382
|
-
runs-on: ubuntu-latest
|
|
383
|
-
timeout-minutes: 60
|
|
384
|
-
steps:
|
|
385
|
-
- uses: actions/checkout@v6
|
|
386
|
-
|
|
387
|
-
- name: Install host tools (qemu, dnsmasq, ipxe, bridge)
|
|
388
|
-
run: |
|
|
389
|
-
set -eu
|
|
390
|
-
sudo apt-get update
|
|
391
|
-
sudo apt-get install -y --no-install-recommends \
|
|
392
|
-
qemu-system-x86 \
|
|
393
|
-
qemu-utils \
|
|
394
|
-
dnsmasq \
|
|
395
|
-
ipxe \
|
|
396
|
-
bridge-utils \
|
|
397
|
-
iproute2
|
|
398
|
-
sudo chmod a+rw /dev/kvm
|
|
399
|
-
ls -la /dev/kvm
|
|
400
|
-
|
|
401
|
-
- name: Install cijoe
|
|
402
|
-
run: pipx install --force cijoe
|
|
403
|
-
|
|
404
|
-
- name: Install uv
|
|
405
|
-
uses: astral-sh/setup-uv@v8.1.0
|
|
406
|
-
|
|
407
|
-
- name: Download netboot-pc bake artifacts
|
|
408
|
-
uses: actions/download-artifact@v7
|
|
409
|
-
with:
|
|
410
|
-
name: pixie-netboot-pc-x86_64
|
|
411
|
-
path: ~/system_imaging/disk/
|
|
412
|
-
|
|
413
|
-
- name: Show downloaded artifact contents
|
|
414
|
-
run: |
|
|
415
|
-
set -eu
|
|
416
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
417
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
418
|
-
|
|
419
|
-
- name: Run PXE flash chain test
|
|
420
|
-
run: make test-pxe-flash
|
|
421
|
-
|
|
422
|
-
- name: Upload cijoe output
|
|
423
|
-
if: always()
|
|
424
|
-
uses: actions/upload-artifact@v7
|
|
425
|
-
with:
|
|
426
|
-
name: cijoe-output-test-pxe-flash
|
|
427
|
-
path: cijoe/cijoe-output
|
|
428
|
-
if-no-files-found: warn
|
|
429
|
-
|
|
430
|
-
- name: Upload PXE workspace (serial logs, dnsmasq.log)
|
|
431
|
-
if: always()
|
|
432
|
-
uses: actions/upload-artifact@v7
|
|
433
|
-
with:
|
|
434
|
-
name: test-pxe-flash-workspace
|
|
435
|
-
path: cijoe/_build/test-pxe
|
|
436
|
-
if-no-files-found: warn
|
|
437
|
-
|
|
438
|
-
test-pxe-flash-always:
|
|
439
|
-
name: PXE flash-always chain test (containerized pixie + client QEMU VM)
|
|
440
|
-
# Same dependencies + real-nosi pipeline as test-pxe-flash. The
|
|
441
|
-
# difference is a one-line config knob + an inverted assertion:
|
|
442
|
-
# pixie-flash-always must NOT flip its bind on the CLI's /done.
|
|
443
|
-
# 60 min for the same reasons -- real oras pull dominates.
|
|
444
|
-
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.
|
|
445
368
|
runs-on: ubuntu-latest
|
|
446
|
-
timeout-minutes:
|
|
369
|
+
timeout-minutes: 90
|
|
447
370
|
steps:
|
|
448
371
|
- uses: actions/checkout@v6
|
|
449
372
|
|
|
@@ -467,26 +390,14 @@ jobs:
|
|
|
467
390
|
- name: Install uv
|
|
468
391
|
uses: astral-sh/setup-uv@v8.1.0
|
|
469
392
|
|
|
470
|
-
- name:
|
|
471
|
-
|
|
472
|
-
with:
|
|
473
|
-
name: pixie-netboot-pc-x86_64
|
|
474
|
-
path: ~/system_imaging/disk/
|
|
475
|
-
|
|
476
|
-
- name: Show downloaded artifact contents
|
|
477
|
-
run: |
|
|
478
|
-
set -eu
|
|
479
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
480
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
481
|
-
|
|
482
|
-
- name: Run PXE flash-always chain test
|
|
483
|
-
run: make test-pxe-flash-always
|
|
393
|
+
- name: Run PXE live-env modes chain test
|
|
394
|
+
run: make test-pxe-live-env-modes
|
|
484
395
|
|
|
485
396
|
- name: Upload cijoe output
|
|
486
397
|
if: always()
|
|
487
398
|
uses: actions/upload-artifact@v7
|
|
488
399
|
with:
|
|
489
|
-
name: cijoe-output-test-pxe-
|
|
400
|
+
name: cijoe-output-test-pxe-live-env-modes
|
|
490
401
|
path: cijoe/cijoe-output
|
|
491
402
|
if-no-files-found: warn
|
|
492
403
|
|
|
@@ -494,70 +405,7 @@ jobs:
|
|
|
494
405
|
if: always()
|
|
495
406
|
uses: actions/upload-artifact@v7
|
|
496
407
|
with:
|
|
497
|
-
name: test-pxe-
|
|
498
|
-
path: cijoe/_build/test-pxe
|
|
499
|
-
if-no-files-found: warn
|
|
500
|
-
|
|
501
|
-
test-pxe-tui:
|
|
502
|
-
name: PXE tui chain test (containerized pixie + client QEMU VM)
|
|
503
|
-
# Same live-env media dependency as test-pxe-flash. No qemu-utils
|
|
504
|
-
# here -- the tui test does not read the target disk; it just
|
|
505
|
-
# asserts the wizard entered its picker screen (a serial marker
|
|
506
|
-
# coming out of pixie CLI's _screen_select_image).
|
|
507
|
-
needs: build-media
|
|
508
|
-
runs-on: ubuntu-latest
|
|
509
|
-
timeout-minutes: 30
|
|
510
|
-
steps:
|
|
511
|
-
- uses: actions/checkout@v6
|
|
512
|
-
|
|
513
|
-
- name: Install host tools (qemu, dnsmasq, ipxe, bridge)
|
|
514
|
-
run: |
|
|
515
|
-
set -eu
|
|
516
|
-
sudo apt-get update
|
|
517
|
-
sudo apt-get install -y --no-install-recommends \
|
|
518
|
-
qemu-system-x86 \
|
|
519
|
-
qemu-utils \
|
|
520
|
-
dnsmasq \
|
|
521
|
-
ipxe \
|
|
522
|
-
bridge-utils \
|
|
523
|
-
iproute2
|
|
524
|
-
sudo chmod a+rw /dev/kvm
|
|
525
|
-
ls -la /dev/kvm
|
|
526
|
-
|
|
527
|
-
- name: Install cijoe
|
|
528
|
-
run: pipx install --force cijoe
|
|
529
|
-
|
|
530
|
-
- name: Install uv
|
|
531
|
-
uses: astral-sh/setup-uv@v8.1.0
|
|
532
|
-
|
|
533
|
-
- name: Download netboot-pc bake artifacts
|
|
534
|
-
uses: actions/download-artifact@v7
|
|
535
|
-
with:
|
|
536
|
-
name: pixie-netboot-pc-x86_64
|
|
537
|
-
path: ~/system_imaging/disk/
|
|
538
|
-
|
|
539
|
-
- name: Show downloaded artifact contents
|
|
540
|
-
run: |
|
|
541
|
-
set -eu
|
|
542
|
-
echo "--- ~/system_imaging/disk (recursive) ---"
|
|
543
|
-
find ~/system_imaging/disk -maxdepth 5 -print
|
|
544
|
-
|
|
545
|
-
- name: Run PXE tui chain test
|
|
546
|
-
run: make test-pxe-tui
|
|
547
|
-
|
|
548
|
-
- name: Upload cijoe output
|
|
549
|
-
if: always()
|
|
550
|
-
uses: actions/upload-artifact@v7
|
|
551
|
-
with:
|
|
552
|
-
name: cijoe-output-test-pxe-tui
|
|
553
|
-
path: cijoe/cijoe-output
|
|
554
|
-
if-no-files-found: warn
|
|
555
|
-
|
|
556
|
-
- name: Upload PXE workspace (serial logs, dnsmasq.log)
|
|
557
|
-
if: always()
|
|
558
|
-
uses: actions/upload-artifact@v7
|
|
559
|
-
with:
|
|
560
|
-
name: test-pxe-tui-workspace
|
|
408
|
+
name: test-pxe-live-env-modes-workspace
|
|
561
409
|
path: cijoe/_build/test-pxe
|
|
562
410
|
if-no-files-found: warn
|
|
563
411
|
|
|
@@ -650,12 +498,10 @@ jobs:
|
|
|
650
498
|
- build-container
|
|
651
499
|
- build-wheel
|
|
652
500
|
- build-media
|
|
501
|
+
- build-live-env-image
|
|
653
502
|
- test-pxe
|
|
654
503
|
- test-pxe-nbdboot
|
|
655
|
-
- test-pxe-
|
|
656
|
-
- test-pxe-tui
|
|
657
|
-
- test-pxe-flash
|
|
658
|
-
- test-pxe-flash-always
|
|
504
|
+
- test-pxe-live-env-modes
|
|
659
505
|
- verify-usbboot
|
|
660
506
|
runs-on: ubuntu-latest
|
|
661
507
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
@@ -692,12 +538,10 @@ jobs:
|
|
|
692
538
|
- build-container
|
|
693
539
|
- build-wheel
|
|
694
540
|
- build-media
|
|
541
|
+
- build-live-env-image
|
|
695
542
|
- test-pxe
|
|
696
543
|
- test-pxe-nbdboot
|
|
697
|
-
- test-pxe-
|
|
698
|
-
- test-pxe-tui
|
|
699
|
-
- test-pxe-flash
|
|
700
|
-
- test-pxe-flash-always
|
|
544
|
+
- test-pxe-live-env-modes
|
|
701
545
|
- verify-usbboot
|
|
702
546
|
runs-on: ubuntu-latest
|
|
703
547
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
@@ -725,11 +569,11 @@ jobs:
|
|
|
725
569
|
|
|
726
570
|
publish-release:
|
|
727
571
|
name: Publish GitHub Release (media assets)
|
|
728
|
-
# Attach the media CI already builds -- the
|
|
729
|
-
#
|
|
730
|
-
#
|
|
731
|
-
#
|
|
732
|
-
#
|
|
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
|
|
733
577
|
# full-pipeline gate as the other publish jobs.
|
|
734
578
|
needs:
|
|
735
579
|
- test
|
|
@@ -737,12 +581,10 @@ jobs:
|
|
|
737
581
|
- build-container
|
|
738
582
|
- build-wheel
|
|
739
583
|
- build-media
|
|
584
|
+
- build-live-env-image
|
|
740
585
|
- test-pxe
|
|
741
586
|
- test-pxe-nbdboot
|
|
742
|
-
- test-pxe-
|
|
743
|
-
- test-pxe-tui
|
|
744
|
-
- test-pxe-flash
|
|
745
|
-
- test-pxe-flash-always
|
|
587
|
+
- test-pxe-live-env-modes
|
|
746
588
|
- verify-usbboot
|
|
747
589
|
runs-on: ubuntu-latest
|
|
748
590
|
if: startsWith(github.ref, 'refs/tags/v')
|
|
@@ -753,33 +595,28 @@ jobs:
|
|
|
753
595
|
- name: Download media artifacts
|
|
754
596
|
uses: actions/download-artifact@v8
|
|
755
597
|
with:
|
|
756
|
-
#
|
|
757
|
-
# ``pixie-netboot-pc-x86_64`` + ``pixie-usbboot-pc-x86_64``.
|
|
758
|
-
# merge-multiple flattens both into one directory.
|
|
598
|
+
# build-media uploads the usbboot-pc .iso under this shape.
|
|
759
599
|
pattern: pixie-*-pc-x86_64
|
|
760
600
|
merge-multiple: true
|
|
761
601
|
path: release-assets
|
|
602
|
+
- name: Download pixie-live-env image
|
|
603
|
+
# The nbdboot live-env image (arch-headless + injected pixie CLI
|
|
604
|
+
# / service): the gzipped disk image + its .sha256, the
|
|
605
|
+
# .content-sha256 sidecar (the value an operator sets
|
|
606
|
+
# PIXIE_LIVE_ENV_IMAGE_SHA to), and the catalog fragment.
|
|
607
|
+
uses: actions/download-artifact@v8
|
|
608
|
+
with:
|
|
609
|
+
name: pixie-live-env-image-x86_64
|
|
610
|
+
path: release-assets
|
|
762
611
|
- name: List release assets
|
|
763
612
|
run: ls -la release-assets
|
|
764
|
-
- name:
|
|
765
|
-
#
|
|
766
|
-
#
|
|
767
|
-
#
|
|
768
|
-
#
|
|
769
|
-
# -- 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.
|
|
770
618
|
run: |
|
|
771
619
|
set -eu
|
|
772
|
-
d=$(mktemp -d)
|
|
773
|
-
cp release-assets/pixie-netboot-pc-x86_64-*.vmlinuz "$d/vmlinuz"
|
|
774
|
-
cp release-assets/pixie-netboot-pc-x86_64-*.initrd "$d/initrd"
|
|
775
|
-
cp release-assets/pixie-netboot-pc-x86_64-*.squashfs "$d/live.squashfs"
|
|
776
|
-
tar -C "$d" -czf release-assets/pixie-live-env-x86_64.tar.gz \
|
|
777
|
-
vmlinuz initrd live.squashfs
|
|
778
|
-
( cd release-assets && sha256sum pixie-live-env-x86_64.tar.gz \
|
|
779
|
-
> pixie-live-env-x86_64.tar.gz.sha256 )
|
|
780
|
-
# Ship the curated catalog (the netboot-capable nosi subset)
|
|
781
|
-
# so DEFAULT_CATALOG_URL (.../releases/latest/download/catalog.toml)
|
|
782
|
-
# resolves and pixie's Import + live-env TUI default work.
|
|
783
620
|
cp src/pixie/catalog/catalog.toml release-assets/catalog.toml
|
|
784
621
|
ls -la release-assets
|
|
785
622
|
- name: Create / update GitHub Release
|
|
@@ -798,7 +635,8 @@ jobs:
|
|
|
798
635
|
|
|
799
636
|
## Media assets attached here
|
|
800
637
|
|
|
801
|
-
- `pixie-live-env-x86_64.
|
|
802
|
-
- `pixie-
|
|
803
|
-
- `pixie-
|
|
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.
|
|
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).
|
|
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.
|
|
641
|
+
- `pixie-usbboot-pc-x86_64-*.iso` — bootable USB / ISO media for ad-hoc flash-install of images (uncompressed; `dd` / Etcher / Ventoy ready).
|
|
804
642
|
- `*.sha256` — checksums for the above.
|
|
@@ -11,6 +11,50 @@ 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
|
+
|
|
31
|
+
## [0.4.2] - 2026-07-26
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
**The live-env boots as an ephemeral-nbdboot disk image, not a
|
|
36
|
+
live-boot squashfs.** The inventory / tui / flash boot modes now
|
|
37
|
+
nbdboot a normal disk image (nosi `arch-headless` with the pixie CLI +
|
|
38
|
+
`pixie-on-tty1` service injected) with a tmpfs overlay, instead of
|
|
39
|
+
fetching a live-boot squashfs. This fixes boxes whose NIC never came up
|
|
40
|
+
under the old Debian live-boot initramfs (dual-NIC Intel `igb` among
|
|
41
|
+
them): the image rides the same dracut ramboot path that nbdboot
|
|
42
|
+
already uses, which brings those NICs up. Point pixie at it by fetching
|
|
43
|
+
the `pixie-live-env` catalog entry and setting `PIXIE_LIVE_ENV_IMAGE_SHA`
|
|
44
|
+
(or the `live_env.image_sha` setting) to its content sha; the image ships
|
|
45
|
+
as a release asset (`pixie-live-env-x86_64.img.gz`, under 2 GB) built and
|
|
46
|
+
published by CI.
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
**Rootfs extraction picks the Linux root partition by GPT type.** The
|
|
51
|
+
fetcher extracted partition 1 as `rootfs.raw`, correct for the
|
|
52
|
+
ubuntu/debian cloud images (root at p1) but not for arch/fedora, whose
|
|
53
|
+
images place BIOS-boot + ESP first and root at p3 -- there it produced a
|
|
54
|
+
1 MiB stub that could not mount. It now selects by type (Linux-root GUID,
|
|
55
|
+
then the largest Linux filesystem, then the largest non-firmware/boot/swap
|
|
56
|
+
partition), so every nosi image extracts its real root.
|
|
57
|
+
|
|
14
58
|
## [0.4.1] - 2026-07-25
|
|
15
59
|
|
|
16
60
|
### Changed
|