Skip to content

Commit 5e263a0

Browse files
[scanner] fix: publish PXE boot artifacts (#23)
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1 parent e2cf85c commit 5e263a0

3 files changed

Lines changed: 34 additions & 3 deletions

File tree

Justfile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,12 +109,20 @@ cluster-build REF="main":
109109
export-installer: build-installer
110110
rm -rf dist/installer-checkout
111111
mkdir -p dist dist/installer-checkout
112-
rm -f dist/bluefin-server-installer-*.raw.zst dist/bluefin-server-*.efi dist/SHA256SUMS
112+
rm -f dist/bluefin-server-installer-*.raw.zst dist/bluefin-server-*.efi dist/bluefin-server-pxe-* dist/SHA256SUMS
113113
just bst artifact checkout oci/bluefin-server-installer.bst --directory /src/dist/installer-checkout
114114
mv dist/installer-checkout/* dist/
115115
rm -rf dist/installer-checkout
116116
@echo "==> wrote:" && ls -lh dist/
117117

118+
# Export standalone kernel and initrd for PXE boot. The DDI remains embedded
119+
# in the raw installer image; network DDI fetching is not enabled.
120+
[group('installer')]
121+
export-pxe: export-installer
122+
@test -n "$(find dist/ -maxdepth 1 -type f -name 'bluefin-server-pxe-vmlinuz-*' -print -quit)" || { echo "ERROR: PXE kernel was not exported." >&2; exit 1; }
123+
@test -n "$(find dist/ -maxdepth 1 -type f -name 'bluefin-server-pxe-initrd-*.cpio.gz' -print -quit)" || { echo "ERROR: PXE initrd was not exported." >&2; exit 1; }
124+
@echo "==> wrote PXE artifacts:" && ls -lh dist/bluefin-server-pxe-*
125+
118126
# -- k3s systemd-sysext -------------------------------------------------------
119127
# Produces a systemd-sysext extension image for k3s.
120128

docs/skills/ddi-installer.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ metadata:
2424
- OCI-only image work (no installer involvement).
2525
- Bootc-specific changes.
2626
- Desktop or nspawn machine image work.
27-
- Adding a network-pull installer — the design is offline; the DDI is embedded as
28-
a data partition.
27+
- Adding network DDI fetching — the DDI remains embedded as a data partition.
2928

3029
## Architecture
3130

@@ -135,6 +134,24 @@ This is the gist of the process:
135134
For the detailed build/export/flash/release workflow, see
136135
[ddi-installer-build.md](ddi-installer-build.md).
137136

137+
## PXE boot artifacts
138+
139+
The installer build also publishes standalone PXE inputs:
140+
141+
- `bluefin-server-pxe-vmlinuz-<ver>` — installer kernel.
142+
- `bluefin-server-pxe-initrd-<ver>.cpio.gz` — installer initrd.
143+
144+
Both files are included in the installer artifact `SHA256SUMS`. PXE clients can
145+
boot them with the same command line used by the installer UKI, for example:
146+
147+
```text
148+
systemd.unit=system-install.target console=tty0 console=ttyS0,115200 rw unattended
149+
```
150+
151+
The DDI is still required on `bluefin-installer-data`; standalone network DDI
152+
fetching is not supported yet. Use the raw installer image for complete,
153+
offline installation.
154+
138155
## Common Rationalizations
139156

140157
| Rationalization | Reality |

elements/oci/bluefin-server-installer.bst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,13 @@ config:
316316
317317
# Also export the target UKI (.efi) for GitHub Releases and systemd-sysupdate
318318
cp /layer/usr/lib/bluefin-server/bluefin-server.efi "bluefin-server-%{installer-version}.efi"
319+
# Export raw PXE inputs alongside the UKI. PXE users supply their own
320+
# kernel command line, so these remain separate from the fixed-cmdline UKI.
321+
cp /layer/boot/vmlinuz "bluefin-server-pxe-vmlinuz-%{installer-version}"
322+
cp /installer.cpio.gz "bluefin-server-pxe-initrd-%{installer-version}.cpio.gz"
319323
320324
sha256sum --binary "${FNAME}.zst" > SHA256SUMS
321325
sha256sum --binary "bluefin-server-%{installer-version}.efi" >> SHA256SUMS
326+
sha256sum --binary "bluefin-server-pxe-vmlinuz-%{installer-version}" >> SHA256SUMS
327+
sha256sum --binary "bluefin-server-pxe-initrd-%{installer-version}.cpio.gz" >> SHA256SUMS
322328
ls -lh

0 commit comments

Comments
 (0)