Skip to content

Use patched nftables binaries in distroless-iptables#4419

Open
danwinship wants to merge 1 commit into
kubernetes:masterfrom
danwinship:nftables-images
Open

Use patched nftables binaries in distroless-iptables#4419
danwinship wants to merge 1 commit into
kubernetes:masterfrom
danwinship:nftables-images

Conversation

@danwinship
Copy link
Copy Markdown
Contributor

@danwinship danwinship commented Jun 3, 2026

What type of PR is this?

/kind bug
?

What this PR does / why we need it:

Discussion in kubernetes/kubernetes#136786. We basically have to build our kube-proxy images with a patched old nft binary, to avoid the crash with kube-proxy nft 1.0.6 and system nft 1.1.3+. (Note that "use a newer version of nft" is not a suitable alternative because then we become a cause of the "mismatched nft versions cause crashes" problem rather than being a victim of it.)

Which issue(s) this PR fixes:

Fixes kubernetes/kubernetes#136786

Special notes for your reviewer:

See https://github.com/danwinship/debian-nftables/tree/bookworm-k8s/k8s for details of how the patched debs were produced. Building patched debs seemed like the simplest approach because the distroless-iptables build process uses the dpkg metadata to figure out which files it needs to copy to the final image.

Rather than trying to figure out how to sign the packages and then importing a key here and checking their integrity that way, I just recorded the sha256sums of the packages I had built, and had the build script here verify that it got the right ones. This may or may not have been a good idea. (Also, originally I forgot that I needed both nftables and libnftables1, so I ended up implementing the "array lookup" a little redundantly.)

Anyway, this seems to all work, but maybe we want to do things differently, either here or with the patched-deb build process...

/cc @aojea @BenTheElder

Does this PR introduce a user-facing change?

NONE

@k8s-ci-robot k8s-ci-robot requested a review from aojea June 3, 2026 17:15
@k8s-ci-robot k8s-ci-robot added the release-note-none Denotes a PR that doesn't merit a release note. label Jun 3, 2026
@k8s-ci-robot k8s-ci-robot requested a review from BenTheElder June 3, 2026 17:15
@k8s-ci-robot k8s-ci-robot added kind/bug Categorizes issue or PR as related to a bug. needs-priority labels Jun 3, 2026
@k8s-ci-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: danwinship

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

The pull request process is described 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 cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. area/release-eng Issues or PRs related to the Release Engineering subproject sig/release Categorizes an issue or PR as relevant to SIG Release. approved Indicates a PR has been approved by an approver from all required OWNERS files. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jun 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. area/release-eng Issues or PRs related to the Release Engineering subproject cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. kind/bug Categorizes issue or PR as related to a bug. needs-priority release-note-none Denotes a PR that doesn't merit a release note. sig/release Categorizes an issue or PR as relevant to SIG Release. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

kube-proxy fails to sync in nftables mode when newer nftables sets exist

2 participants