Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use ipset-go instead of calling the ipset binary #2447

Closed
wants to merge 1 commit into from

Conversation

skitt
Copy link
Member

@skitt skitt commented Apr 25, 2023

This reduces our requirements on the environment in which Submariner components run.

The ipset binaries are kept in the container images, for debugging purposes and because subctl gather relies on ipset in the route agent.

@submariner-bot
Copy link
Contributor

🤖 Created branch: z_pr2447/skitt/ipset-library
🚀 Full E2E won't run until the "ready-to-test" label is applied. I will add it automatically once the PR has 2 approvals, or you can add it manually.

@skitt skitt force-pushed the ipset-library branch 2 times, most recently from 3535bee to 75d5ae6 Compare April 25, 2023 10:03
@skitt
Copy link
Member Author

skitt commented Apr 25, 2023

The ipset-go library hasn’t produced any releases (yet), but it’s small, has tests, and responds to pull requests.

@dfarrell07
Copy link
Member

The ipset-go library hasn’t produced any releases (yet), but it’s small, has tests, and responds to pull requests.

Not necessary voting -1, but it also hasn't had any contributors other than you, doesn't have a great git history, and doesn't seem to be used by any consumers. 😅

Still looking..

@skitt
Copy link
Member Author

skitt commented Apr 26, 2023

There’s also https://github.com/nadoo/ipset, which has no dependencies and has produced releases, but it’s GPL-3-licensed (which I don’t mind, but probably won’t fly with the CNCF), and it has no tests.

@dfarrell07
Copy link
Member

dfarrell07 commented Apr 27, 2023

I was able to ask Stephen a bunch of questions about this on a recent call. Overall I think we don't have a great path either way and there isn't one choice that seems obviously best/worst.

  • Moving to only-nftables likely isn't going to happen as OpenShiftSDN is moving to focus on OVN.
  • The current solution adds a few os.exec calls that this would avoid.
  • It's not clear if this path would reduce the likelihood of concurrency issues we see with the current wrapped binary, as those seem to come from timing between userspace and the kernel (which both solutions could have).
  • The current library we're using was abandoned by Tencent and forked in to K8s. We're not using the latest version of that, so if we stick with the current design we should likely look into keeping that up-to-date.
  • We may want to move subctl gather to use this lib too, to drop the binary there, but that would be a more major change.

If we look through the code of this lib and feel safe about it, I think it's fine to move to it.

@stale
Copy link

stale bot commented May 20, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix This will not be worked on label May 20, 2023
@dfarrell07 dfarrell07 removed the wontfix This will not be worked on label May 30, 2023
@stale
Copy link

stale bot commented Jun 18, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix This will not be worked on label Jun 18, 2023
@dfarrell07 dfarrell07 removed the wontfix This will not be worked on label Jun 20, 2023
@nyechiel
Copy link
Member

nyechiel commented Jul 4, 2023

@skitt this one needs a rebase

@nyechiel
Copy link
Member

nyechiel commented Jul 6, 2023

@skitt this one needs a rebase

ping :)

@skitt skitt force-pushed the ipset-library branch 2 times, most recently from 2362ce7 to 3098c4b Compare July 7, 2023 11:41
This reduces our requirements on the environment in which Submariner
components run.

The ipset binaries are kept in the container images, for debugging
purposes and because subctl gather relies on ipset in the route
agent.

Signed-off-by: Stephen Kitt <[email protected]>
@stale
Copy link

stale bot commented Aug 12, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix This will not be worked on label Aug 12, 2023
@nyechiel
Copy link
Member

bump

@tpantelis tpantelis removed the wontfix This will not be worked on label Aug 13, 2023
@stale
Copy link

stale bot commented Sep 17, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the wontfix This will not be worked on label Sep 17, 2023
@nyechiel nyechiel removed the wontfix This will not be worked on label Sep 17, 2023
@tpantelis
Copy link
Contributor

Do we still need or want to do this?

Copy link
Contributor

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further
activity occurs. Thank you for your contributions.

@github-actions github-actions bot added the stale label Nov 18, 2023
@github-actions github-actions bot closed this Nov 26, 2023
@submariner-bot
Copy link
Contributor

🤖 Closed branches: [z_pr2447/skitt/ipset-library]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants