Skip to content

cks: set CDROM volume label when building the binaries ISO - #14182

Open
kiranchavala wants to merge 1 commit into
apache:4.20from
kiranchavala:cks-iso-volume-label
Open

kiranchavala wants to merge 1 commit into
apache:4.20from
kiranchavala:cks-iso-volume-label

Conversation

@kiranchavala

@kiranchavala kiranchavala commented Sep 16, 2026

Copy link
Copy Markdown
Member

Description

Fixes: #14180

How Has This Been Tested?

Reproduced on an Oracle Linux 8 build host (xorriso 1.4.8, no genisoimage available on EL8) building a CKS ISO for Kubernetes 1.36.0.

Before the change, the ISO is built successfully but carries the wrong label:

$ blkid /var/www/html/cks-v1.36.0-x86_64.iso


/var/www/html/setup-v1.37.0-x86_64.iso: BLOCK_SIZE="2048" UUID="2026-09-16-08-13-12-00" LABEL="ISOIMAGE" TYPE="iso9660"

after change


blkid /var/www/html/setup-v1.37.0-x86_64.iso
/var/www/html/setup-v1.37.0-x86_64.iso: BLOCK_SIZE="2048" UUID="2026-09-16-08-34-56-00" LABEL="CDROM" TYPE="iso9660"

The CKS nodes locate the binaries ISO purely by its ISO 9660 volume label:

  output=`blkid -o device -t LABEL=CDROM`   (conf/k8s-control-node.yml)

but create-kubernetes-binaries-iso.sh invoked mkisofs without -V, relying on
the tool's default volume ID. That default is not portable:

  genisoimage / cdrkit (Debian, Ubuntu)  -> CDROM
  xorriso mkisofs compat mode (EL8+)     -> ISOIMAGE

genisoimage has not been available since EL8, where mkisofs is provided by
xorriso, so an ISO built on EL8/EL9/EL10 gets LABEL="ISOIMAGE". The nodes then
never mount it, loop on "Waiting for Binaries directory /mnt/k8sdisk/ to be
available" until the offline install times out, and silently fall through to
installing from the Internet instead of using the pinned ISO contents.

Pass -V CDROM explicitly so the output no longer depends on which ISO tool the
build host happens to provide. This is a no-op on hosts where the script works
today, since CDROM is already the genisoimage default.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@codecov

codecov Bot commented Sep 16, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 16.38%. Comparing base (8eeccdb) to head (083cb78).

Additional details and impacted files
@@            Coverage Diff            @@
##               4.20   #14182   +/-   ##
=========================================
  Coverage     16.38%   16.38%           
- Complexity    13614    13616    +2     
=========================================
  Files          5669     5669           
  Lines        501532   501532           
  Branches      60922    60922           
=========================================
+ Hits          82153    82180   +27     
+ Misses       410172   410143   -29     
- Partials       9207     9209    +2     
Flag Coverage Δ
uitests 4.16% <ø> (ø)
unittests 17.24% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant