Skip to content

upgrade base image to debian 13#1557

Open
huww98 wants to merge 1 commit into
kubernetes-sigs:masterfrom
huww98:debian-13
Open

upgrade base image to debian 13#1557
huww98 wants to merge 1 commit into
kubernetes-sigs:masterfrom
huww98:debian-13

Conversation

@huww98

@huww98 huww98 commented Nov 12, 2025

Copy link
Copy Markdown
Contributor

What type of PR is this?

/kind cleanup

What this PR does / why we need it:

Which issue(s) this PR fixes:

Fixes #

Special notes for your reviewer:

Now all binaries are under /usr, we can remove the logic to search both.

Does this PR introduce a user-facing change?

Upgrade base image to debian 13

Additional documentation e.g., KEPs (Kubernetes Enhancement Proposals), usage docs, etc.:


/hold
For upstream distroless image is still preview. Released now

@k8s-ci-robot k8s-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Nov 12, 2025
@k8s-ci-robot

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: huww98
Once this PR has been reviewed and has the lgtm label, please assign mowangdk for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the size/L Denotes a PR that changes 100-499 lines, ignoring generated files. label Nov 12, 2025
@huww98
huww98 force-pushed the debian-13 branch 2 times, most recently from 14e9959 to c44dea3 Compare November 13, 2025 07:18
@huww98

huww98 commented Nov 14, 2025

Copy link
Copy Markdown
Contributor Author

XFS (nvme5n1): Superblock has unknown incompatible features (0x20) enabled.

Looks like mkfs.xfs is too new and enabled some features that is not supported by alinux3 kernel.

#define XFS_SB_FEAT_INCOMPAT_NREXT64	(1 << 5)  /* large extent counters */

Available at Linux v5.19 torvalds/linux@919819f

Comment thread pkg/utils/util.go
} else if fstype == "xfs" {
args = []string{
"-f",
"-i", "nrext64=0", // This requires kernel v5.19, so disable for now.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

another reason to hold this. We will need to replace ASI dockerfile before merge. Old mkfs.xfs will not understand this flag.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Dec 24, 2025
@k8s-ci-robot k8s-ci-robot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Feb 15, 2026
@k8s-ci-robot k8s-ci-robot added size/M Denotes a PR that changes 30-99 lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Mar 13, 2026
Now all binaries are under /usr, we can remove the logic to search both.

@mowangdk mowangdk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated Code Review

Summary: Upgrades the base container image from Debian 12 (Bookworm) to Debian 13 (Trixie), updating all dependent package versions and adjusting build scripts for filesystem layout changes (/sbin/usr/sbin).

Issues Found:

  • Path changes (/sbin//usr/sbin/) for fsck, mkfs, mount, umount, resize2fs — these must match the actual filesystem layout in Debian 13. The usrmerge in Debian 13 should have symlinks, but the explicit paths are safer.
  • The gcc package addition in the build stage is well-documented with the Debian bug reference — good.
  • The configure script now dumps config.log on failure — helpful for debugging cross-compilation issues.
  • New dependencies added: libzstd1, zlib1g — verify these are actually needed by the runtime binaries.
  • Package version pinning is very specific (e.g., libc6 2.41-12+deb13u1). This will need updates as Debian 13 receives security patches.

Suggestions:

  • Consider running the full test suite with the new base image in CI before merging to catch any subtle behavioral differences.
  • The libext2fs2t64 naming (with t64 suffix) is the time_t transition — this is expected for Debian 13 on 32-bit archs but verify it resolves correctly on amd64.

Overall: Straightforward base image upgrade with careful attention to Debian 13's filesystem changes. The explicit path adjustments and build toolchain fixes demonstrate good testing.

@mowangdk mowangdk left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Automated Code Review

Summary: Upgrades the base image from Debian 12 (bookworm) to Debian 13 (trixie), updates all dependency versions, and adjusts paths for binaries that moved from /sbin to /usr/sbin.

Overall: Thorough upgrade with appropriate adjustments for the new filesystem layout. One concern about the xfs flag.

Comment thread pkg/utils/util.go
} else if fstype == "xfs" {
args = []string{
"-f",
"-i", "nrext64=0", // This requires kernel v5.19, so disable for now.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The comment says nrext64=0 requires kernel v5.19 so it's disabled — but the flag is being explicitly set to 0, which disables the feature. The comment is correct but slightly confusing. Consider rewording to: nrext64=0: disable large extent counters for compatibility with kernels < v5.19.

Comment thread build/gather-node-deps.sh
DEPS=(
/etc/netconfig
/etc/mke2fs.conf /sbin/{fsck,mkfs,mount,umount}.{ext{2,3,4},xfs,nfs}
/etc/mke2fs.conf /usr/sbin/{fsck,mkfs,mount,umount}.{ext{2,3,4},xfs,nfs}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good catch updating paths from /sbin/ to /usr/sbin/ for Debian 13 (which no longer uses the /sbin symlink split). Verify that /usr/sbin/mount.nfs and /usr/sbin/umount.nfs actually exist in trixie — historically NFS mount helpers may be in different locations depending on the nfs-common package version.

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

Labels

cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. kind/cleanup Categorizes issue or PR as related to cleaning up code, process, or technical debt. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants