Skip to content

ISO fix and update.#52

Merged
mergify[bot] merged 3 commits intotinkerbell:mainfrom
jacobweinstock:iso-update
Mar 9, 2026
Merged

ISO fix and update.#52
mergify[bot] merged 3 commits intotinkerbell:mainfrom
jacobweinstock:iso-update

Conversation

@jacobweinstock
Copy link
Copy Markdown
Member

Description

move iso-staging under iso/ directory. Reduces top-level clutter in mkosi.output/ by nesting the staging directory inside iso/{ver}/{arch}/staging instead of maintaining a separate iso-staging/ tree.

restore execute permissions on tool binaries. GitHub Actions artifact upload/download strips file permissions, causing containerd, runc, nerdctl, and CNI plugin binaries to lose their execute bit. This results in 'Permission denied' errors when systemd tries to start containerd.service inside the booted ISO.

Fixes: #

How Has This Been Tested?

How are existing users impacted? What migration steps/scripts do we need?

Checklist:

I have:

  • updated the documentation and/or roadmap (if required)
  • added unit or e2e tests
  • provided instructions on how to upgrade

GitHub Actions artifact upload/download strips file permissions,
causing containerd, runc, nerdctl, and CNI plugin binaries to lose
their execute bit. This results in 'Permission denied' errors when
systemd tries to start containerd.service inside the booted ISO.

Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
Reduces top-level clutter in mkosi.output/ by nesting the staging
directory inside iso/{ver}/{arch}/staging instead of maintaining a
separate iso-staging/ tree.

Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
Copy link
Copy Markdown

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 updates the build output layout by nesting ISO staging under the ISO output directory, and addresses CI/tooling issues where downloaded tool artifacts lose executable permissions—leading to runtime failures in the built initramfs/ISO.

Changes:

  • Move ISO staging from a top-level mkosi.output/iso-staging/... tree to mkosi.output/iso/{version}/{arch}/staging/.
  • Restore execute permissions on tool binaries during mkosi finalize (and additionally in CI after artifact download).
  • Remove references to iso-staging from Docker ownership fixes and cleanup commands.

Reviewed changes

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

Show a summary per file
File Description
mkosi.finalize Re-applies executable bits for tool binaries inside the mkosi buildroot.
captain/iso.py Updates ISO layout documentation to reflect nested staging directory.
captain/config.py Changes iso_staging path to be under iso_output/staging.
captain/cli/_stages.py Stops fixing ownership of the removed top-level iso-staging path.
captain/cli/_commands.py Removes iso-staging from clean targets/patterns.
.github/workflows/ci.yml Adds a step to restore tool binary execute permissions after downloading artifacts.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Signed-off-by: Jacob Weinstock <jakobweinstock@gmail.com>
@jacobweinstock jacobweinstock added the ready-to-merge Signal Mergify to merge the PR label Mar 9, 2026
@mergify mergify bot added the queued label Mar 9, 2026
mergify bot added a commit that referenced this pull request Mar 9, 2026
@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Mar 9, 2026

Merge Queue Status

This pull request spent 11 minutes 57 seconds in the queue, including 11 minutes 43 seconds running CI.

Required conditions to merge
  • #changes-requested-reviews-by=0
  • base=main
  • check-success=DCO
  • check-success=build-initramfs (amd64)
  • check-success=build-initramfs (arm64)
  • check-success=build-iso (amd64)
  • check-success=build-iso (arm64)
  • check-success=build-kernel (amd64)
  • check-success=build-kernel (arm64)
  • check-success=download-tools (amd64)
  • check-success=download-tools (arm64)
  • label!=do-not-merge
  • label=ready-to-merge
  • queue-position>=0
  • any of:
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-initramfs (amd64)
    • check-neutral = build-initramfs (amd64)
    • check-skipped = build-initramfs (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-initramfs (arm64)
    • check-neutral = build-initramfs (arm64)
    • check-skipped = build-initramfs (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-kernel (amd64)
    • check-neutral = build-kernel (amd64)
    • check-skipped = build-kernel (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-kernel (arm64)
    • check-neutral = build-kernel (arm64)
    • check-skipped = build-kernel (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = download-tools (amd64)
    • check-neutral = download-tools (amd64)
    • check-skipped = download-tools (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = download-tools (arm64)
    • check-neutral = download-tools (arm64)
    • check-skipped = download-tools (arm64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-iso (amd64)
    • check-neutral = build-iso (amd64)
    • check-skipped = build-iso (amd64)
  • any of [🛡 GitHub repository ruleset rule main]:
    • check-success = build-iso (arm64)
    • check-neutral = build-iso (arm64)
    • check-skipped = build-iso (arm64)

@mergify mergify bot merged commit 8ffc693 into tinkerbell:main Mar 9, 2026
16 checks passed
@mergify mergify bot removed the queued label Mar 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge Signal Mergify to merge the PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants