azurelinux icon indicating copy to clipboard operation
azurelinux copied to clipboard

[mic][iso] generate PXE-bootable ISO images.

Open gmileka opened this issue 1 year ago • 0 comments

Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • [x] The toolchain has been rebuilt successfully (or no changes were made to it)
  • [x] The toolchain/worker package manifests are up-to-date
  • [x] Any updated packages successfully build (or no packages were changed)
  • [x] Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • [x] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • [x] All package sources are available
  • [x] cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • [x] LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • [x] All source files have up-to-date hashes in the *.signatures.json files
  • [x] sudo make go-tidy-all and sudo make go-test-coverage pass
  • [x] Documentation has been updated to match any changes to the build system
  • [x] Ready to merge

Summary

This changes updates the Azures Linux Image Customizer to emit iso images that are PXE-ready. The changes include:

  • interface:
    • configuration: new configuration to specify the download url for the iso.
    • command-line: new parameter to export the iso image contents into a folder for easier deployment unto a pxe server.
  • implementation:
  • implemented the above interface changes.
  • extended the set of parameters that must be saved between runs to include the new pxe parameters.
  • updated the code to emit a pxe grub.cfg and a pxe dracut config.
  • update the dracut package to include an additional download script that will be triggered in the pxe scenario.
Change Log
Does this affect the toolchain?

NO

Associated issues
  • #9293
Links to CVEs
  • n/a
Test Methodology
  • Deploy a PXE server on the network.
  • Create an iso and specify the new --output-pxe-artifacts-dir
  • Deploy the iso to the pxe server and boot a PXE client.
  • Deploy the artifacts folder contents to a the pxe server and boot a PXE client.
  • Tested iso-to-iso customization and ensured kernel parameters are augmented.

gmileka avatar Oct 01 '24 21:10 gmileka