-
Notifications
You must be signed in to change notification settings - Fork 60
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
Update to podman 5, including netavark and pasta #87
Conversation
mattcen
commented
Apr 8, 2024
- Remove slirp4netns, and replace with pasta
- Build and install netavark
- Upgrade to podman 5.0.0
This reverts commit f1061c1.
Hi @mattcen, thanks for creating the PR!
Can we get rid of that dependency somehow? |
Heya! I created this PR just because I wanted to to upgrade to pasta and decided to share my work. I'm not sure how much capacity I'll have to fix these issues in the immediate future, but I'll try to book some time to look into them. Thanks for the feedback! |
I've pushed a fix to Dockerfile-remote. Apparently the tests all fail when I run them on my Mac, but I suspect that's because they make some Linux-specific assumptions. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now that you also updated the podman version within the remote Dockerfile, the podman remote tests are passing.
However, the netavark
binary is still dynamically linked to libgcc which makes the networking tests fail.
Given that the tests are not running on your machine, you could quickly verify that the netavark
build is producing a statically linked binary by running ! ldd /usr/local/lib/podman/netavark
within the podman container. The command should terminate successfully or list the (missing) dynamically linked library. You could as well add that command to the Dockerfile step that builds the binary to make sure it is really statically linked.
@@ -182,6 +205,7 @@ COPY conf/crun-containers.conf /etc/containers/containers.conf | |||
# Build podman image with rootless binaries and CNI plugins | |||
FROM rootlesspodmanrunc AS podmanall | |||
RUN apk add --no-cache iptables ip6tables | |||
COPY --from=slirp4netns /slirp4netns/slirp4netns /usr/local/bin/slirp4netns |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did you add slirp4netns back? Did it turn out to be required still?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Another commit I didn't mean to push that I can revert.
For completeness though, my reason for this change was that pasta and slirp4netns have different default network configurations it appears, such that when I tried to run a container that accessed a TCP port on the host with pasta, it failed (the default pasta config gave the container the same IP as the host, whereas the default slirp4netns config gave it a different IP from the private IP range). I didn't have time to dissect what was going on here and needed this particular container to work, so I wanted to re-build the latest versions of things, including slirp4netns, so I could fall back to it until I had time to configure pasta correctly for my purposes.
Thanks again @mattcen! I'll carry it from here... |
* Upgrade to podman 5 * Include netavark and pasta binaries (new podman network stack and CNI replacement) * Makefile: Don't access image dir directly for copy out
* Upgrade to podman 5 * Include netavark and pasta binaries (new podman network stack and CNI replacement) * Makefile: Don't access image dir directly for copy out