Skip to content

Conversation

@alejandro-microsoft
Copy link
Contributor

@alejandro-microsoft alejandro-microsoft commented Oct 16, 2025

🔍 Description

  • ISO definition to produce the ISO for attended installation.
  • Make rule to generate the ISO.
  • Disabled the EULA view and requirement (this can be re-enabled when needed).

@alejandro-microsoft alejandro-microsoft marked this pull request as ready for review October 22, 2025 17:21
@alejandro-microsoft alejandro-microsoft requested a review from a team as a code owner October 22, 2025 17:21
Copilot AI review requested due to automatic review settings October 22, 2025 17:21
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces the infrastructure for creating an Azure Linux installer ISO for attended installations. It includes the MOS (Mariner Operating System) configuration for the installer environment, getty service customization for root autologin, installation scripts that mount and execute the installer from the ISO, and a comprehensive Makefile to orchestrate the build process.

Key changes:

  • MOS configuration defining the installer environment with necessary packages and filesystem layout
  • Shell scripts to automate the installation flow
  • Makefile targets to build the installer VHDX and generate the final ISO

Reviewed Changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
tests/images/azl-installer/mos/mos.yaml Defines the storage, OS, and package configuration for the installer environment
tests/images/azl-installer/mos/files/[email protected] Systemd service file for serial console with root autologin
tests/images/azl-installer/mos/files/[email protected] Systemd service file for virtual terminal with root autologin
tests/images/azl-installer/iso/scripts/startup-command.sh Script to configure root's shell to run the installation script
tests/images/azl-installer/iso/scripts/installation.sh Main installation script that mounts the ISO and executes liveinstaller
tests/images/azl-installer/iso/mos-iso.yaml ISO-specific configuration including kernel command line parameters
tests/images/azl-installer/iso/files/EULA.txt Microsoft software license agreement for Azure Linux ISO
tests/images/azl-installer/iso/.gitignore Excludes generated images and binaries from version control
Makefile Build targets for creating the installer VHDX and final ISO

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +481 to +484
$(eval TEMP_DIR := $(shell mktemp -d))
tar -xf bin/trident-rpms-azl3.tar.gz -C $(TEMP_DIR)
cp $(TEMP_DIR)/RPMS/*/*.rpm bin/trident_rpms/
rm -rf $(TEMP_DIR)
Copy link

Copilot AI Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The temporary directory cleanup should happen even if the previous commands fail. Consider using a trap or ensure this cleanup occurs in all code paths to prevent temporary directory accumulation.

Suggested change
$(eval TEMP_DIR := $(shell mktemp -d))
tar -xf bin/trident-rpms-azl3.tar.gz -C $(TEMP_DIR)
cp $(TEMP_DIR)/RPMS/*/*.rpm bin/trident_rpms/
rm -rf $(TEMP_DIR)
@TEMP_DIR=$$(mktemp -d) ; \
trap 'rm -rf "$$TEMP_DIR"' EXIT ; \
tar -xf bin/trident-rpms-azl3.tar.gz -C "$$TEMP_DIR" && \
cp "$$TEMP_DIR"/RPMS/*/*.rpm bin/trident_rpms/

Copilot uses AI. Check for mistakes.
@microsoft microsoft deleted a comment from Copilot AI Oct 24, 2025
@microsoft microsoft deleted a comment from Copilot AI Oct 24, 2025
- pcaudiolib
# Debug accessibility packages.
# Successfully installed, but failed to create ISO.
# - alsa-lib
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are these packages intentionally commented out?

mkdir -p $(AZL_INSTALLER_BIN_PATH)
cp bin/liveinstaller $(AZL_INSTALLER_BIN_PATH)/

mkdir -p artifacts/test-image/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: ./artifacts/test-image/

Comment on lines +469 to +475
@mkdir -p artifacts/test-image/
sudo rm -rf bin/trident_rpms
mkdir -p bin/trident_rpms
$(eval TEMP_DIR := $(shell mktemp -d))
tar -xf bin/trident-rpms-azl3.tar.gz -C $(TEMP_DIR)
cp $(TEMP_DIR)/RPMS/*/*.rpm bin/trident_rpms/
rm -rf $(TEMP_DIR)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to manually unpack bin/trident-rpms-azl3.tar.gz? I think the make target for this already places the RPMs at /bin/RPMS so we can just copy those over to bin/trident_rpms/?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants