Skip to content

Commit 083cb78

Browse files
kiranchavalaclaude
andcommitted
cks: set CDROM volume label when building the binaries ISO
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>
1 parent 8eeccdb commit 083cb78

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

‎scripts/util/create-kubernetes-binaries-iso.sh‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ chmod ${kubeadm_file_permissions} "${working_dir}/k8s/kubeadm"
148148
echo "Updating imagePullPolicy to IfNotPresent in yaml files..."
149149
sed -i "s/imagePullPolicy:.*/imagePullPolicy: IfNotPresent/g" ${working_dir}/*.yaml
150150

151-
mkisofs -o "${output_dir}/${build_name}" -J -R -l "${iso_dir}"
151+
# The volume label must be CDROM: the CKS nodes locate this ISO with
152+
# "blkid -o device -t LABEL=CDROM" (see conf/k8s-control-node.yml). Do not rely on the
153+
# tool default -- genisoimage defaults to CDROM but xorriso's mkisofs compatibility mode
154+
# (the only mkisofs available on EL8+) defaults to ISOIMAGE, which the nodes never find.
155+
mkisofs -V CDROM -o "${output_dir}/${build_name}" -J -R -l "${iso_dir}"
152156

153157
rm -rf "${iso_dir}"

0 commit comments

Comments
 (0)