kubevirt icon indicating copy to clipboard operation
kubevirt copied to clipboard

masquerade: enable iptables masquerade working on low kernel

Open tgfree7 opened this issue 2 years ago • 9 comments

What this PR does / why we need it: The PR is try to fix nft masquerade mode not work on low kernel < 3.18, on kernel < 3.18 will try to set rules with iptables. Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged): Fixes #6620,#7006

Special notes for your reviewer: using masquerade mode on kernel < 3.18 is not work. Release note:

NONE

tgfree7 avatar May 20 '22 03:05 tgfree7

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: To complete the pull request process, please assign alonakaplan after the PR has been reviewed. You can assign the PR to them by writing /assign @alonakaplan in a comment when ready.

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

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

kubevirt-bot avatar May 20 '22 03:05 kubevirt-bot

Hi @tgfree7. Thanks for your PR.

I'm waiting for a kubevirt member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

kubevirt-bot avatar May 20 '22 03:05 kubevirt-bot

@tgfree7 , I am unsure if we as a project want to support such old nodes. It seems to me like a heavy maintenance burden to take.

There was also a motion towards announcing the deprecation of iptables for the same reason (reduce maintenance), especially after most distributions have moved to nftables.

/cc @AlonaKaplan

EdDev avatar May 23 '22 05:05 EdDev

@tgfree7 , I am unsure if we as a project want to support such old nodes. It seems to me like a heavy maintenance burden to take.

There was also a motion towards announcing the deprecation of iptables for the same reason (reduce maintenance), especially after most distributions have moved to nftables.

/cc @AlonaKaplan

I totally agree with @EdDev. We are planning to declare iptables as deprecated. @davidvossel what is the oldest kernel version we should support?

AlonaKaplan avatar May 23 '22 08:05 AlonaKaplan

@tgfree7 , I am unsure if we as a project want to support such old nodes. It seems to me like a heavy maintenance burden to take.

There was also a motion towards announcing the deprecation of iptables for the same reason (reduce maintenance), especially after most distributions have moved to nftables.

/cc @AlonaKaplan

@EdDev Thanks for reply, if kubevirt not supprt old nodes, may add a requirement for Kernel version on docs or somewhere?

tgfree7 avatar May 23 '22 08:05 tgfree7

@davidvossel what is the oldest kernel version we should support?

Practically, we only guarantee support for whatever kernel our CI tests use. Everything else is best effort simply because we are only testing one kernel release series in CI. That doesn't mean we shouldn't continue to accept bug fixes that impact older or newer kernels.

For this iptables issue, as long as we have the code in the code base we should accept fixes. If people are encountering issues here, that means these code paths are actually being used.

We should have a discussion about how we approach deprecating features so we can begin planning how to properly transition away from maintaining untested features like this long term.

davidvossel avatar May 23 '22 16:05 davidvossel

@davidvossel what is the oldest kernel version we should support?

Practically, we only guarantee support for whatever kernel our CI tests use. Everything else is best effort simply because we are only testing one kernel release series in CI. That doesn't mean we shouldn't continue to accept bug fixes that impact older or newer kernels.

For this iptables issue, as long as we have the code in the code base we should accept fixes. If people are encountering issues here, that means these code paths are actually being used.

Our CI is not using iptables for at least a year. Our first choice is always nft and only if it doesn't exist iptables are used. In the specific case of this PR the iptable code path wasn't invoked (if it was we wouldn't need the fix:)). Network team will send a mail to the community notifying iptables is going to be deprecated and then a PR to remove iptables from the code base.

We should have a discussion about how we approach deprecating features so we can begin planning how to properly transition away from maintaining untested features like this long term.

AlonaKaplan avatar May 29 '22 13:05 AlonaKaplan

@tgfree7: PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

kubevirt-bot avatar Jun 15 '22 21:06 kubevirt-bot

Issues go stale after 90d of inactivity. Mark the issue as fresh with /remove-lifecycle stale. Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

/lifecycle stale

kubevirt-bot avatar Sep 13 '22 21:09 kubevirt-bot

Stale issues rot after 30d of inactivity. Mark the issue as fresh with /remove-lifecycle rotten. Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle rotten

kubevirt-bot avatar Oct 13 '22 22:10 kubevirt-bot

Rotten issues close after 30d of inactivity. Reopen the issue with /reopen. Mark the issue as fresh with /remove-lifecycle rotten.

/close

kubevirt-bot avatar Nov 12 '22 22:11 kubevirt-bot

@kubevirt-bot: Closed this PR.

In response to this:

Rotten issues close after 30d of inactivity. Reopen the issue with /reopen. Mark the issue as fresh with /remove-lifecycle rotten.

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

kubevirt-bot avatar Nov 12 '22 22:11 kubevirt-bot